@@ 15,7 15,13 @@
This protocol only defines the interface for scheme handlers and
renderers to connect and facilitate the rendering of windows. The
mechanism by which such clients are started, routed, or otherwise
- configured is out-of-scope for this protocol.</description>
+ configured is out-of-scope for this protocol. Similarly, client
+ enumeration, surface enumeration, and other forms of generic IPC
+ are out-of-scope.
+
+ This document is currently unstable, and should be used with the
+ assumption of breaking protocol changes without version bumps.
+ </description>
<interface name="urish_wm_base" version="1">
<request name="register_scheme">
@@ 24,19 30,36 @@
uses to inform the WM that it will do so. Only one of these may
exist for any scheme, in all clients. Creating a new one
for a given scheme invalidates all others.</description>
- <arg name="id" type="new_id" interface="urish_scheme" />
+ <arg name="handle" type="new_id" interface="urish_scheme" />
<arg name="scheme" type="string" />
- <arg name="flags" type="uint" enum="urish_scheme.flags" />
+ <arg name="flags" type="uint" enum="ctor_flags" />
</request>
<request name="register_renderer">
<description summary="Used by all renderers.">
This is what any renderer uses to advertise to the WM. Slugs
must be globally unique, and attempting to reregister one
should error.</description>
- <arg name="id" type="new_id" interface="urish_renderer" />
+ <arg name="handle" type="new_id" interface="urish_renderer" />
<arg name="slug" type="string" />
- <arg name="flags" type="uint" enum="urish_renderer.flags" />
+ <arg name="flags" type="uint" enum="ctor_flags" />
+ </request>
+
+ <request name="open_read">
+ <arg name="url" type="string" />
+ </request>
+ <request name="open_write">
+ <arg name="url" type="string" />
+ <arg name="mime_type" type="string" />
+ <arg name="data" type="fd" />
</request>
+
+ <enum name="ctor_flags" bitfield="true">
+ <entry name="supercedable" value="1" />
+ </enum>
+
+ <enum name="error">
+ <entry name="cannot_supercede" value="1" />
+ </enum>
</interface>
<interface name="urish_scheme" version="1">
@@ 45,37 68,37 @@
<event name="read_request">
<arg name="response" type="new_id" interface="urish_response" />
<arg name="url" type="string" />
- <arg name="metadata" type="string" />
+ <arg name="flags" type="uint" enum="request_flags" />
</event>
<event name="write_request">
<arg name="response" type="new_id" interface="urish_response" />
<arg name="url" type="string" />
- <arg name="metadata" type="string" />
+ <arg name="flags" type="uint" enum="request_flags" />
+ <arg name="mime_type" type="string" />
<arg name="data" type="fd" />
</event>
- <event name="superceded" type="destructor" />
-
- <enum name="flags" bitfield="true">
- <entry name="supercedable" value="1" />
+ <enum name="request_flags" bitfield="true">
+ <entry name="skip_cache" value="1" />
</enum>
+
+ <event name="superceded" type="destructor" />
</interface>
<interface name="urish_renderer" version="1">
<event name="render">
<arg name="response" type="new_id" interface="urish_response" />
<arg name="url" type="string" />
- <arg name="was_write" type="uint" />
+ <arg name="flags" type="uint" enum="render_flags" />
<arg name="mime_type" type="string" />
- <arg name="metadata" type="string" />
<arg name="data" type="fd" />
</event>
- <event name="superceded" type="destructor" />
-
- <enum name="flags" bitfield="true">
- <entry name="supercedable" value="1" />
+ <enum name="render_flags" bitfield="true">
+ <entry name="was_write" value="1" />
</enum>
+
+ <event name="superceded" type="destructor" />
</interface>
<interface name="urish_response" version="1">
@@ 84,11 107,8 @@
<arg name="surface" type="new_id" interface="urish_surface" />
<arg name="raw_surface" type="object" interface="wl_surface" />
</request>
- <request name="data" type="destructor">
- <arg name="page" type="new_id" interface="urish_page" />
- <arg name="mime_type" type="string" />
- <arg name="metadata" type="string" />
- <arg name="data" type="fd" />
+ <request name="chain" type="destructor">
+ <arg name="chain" type="new_id" interface="urish_chain" />
</request>
<request name="error" type="destructor">
<arg name="page" type="new_id" interface="urish_page" />
@@ 96,14 116,96 @@
<arg name="message" type="string" />
</request>
+ <event name="metadata_int">
+ <arg name="field" type="string" />
+ <arg name="value" type="int" />
+ </event>
+ <event name="metadata_uint">
+ <arg name="field" type="string" />
+ <arg name="value" type="uint" />
+ </event>
+ <event name="metadata_fd">
+ <arg name="field" type="string" />
+ <arg name="value" type="fd" />
+ </event>
+ <event name="metadata_string">
+ <arg name="field" type="string" />
+ <arg name="value" type="string" />
+ </event>
+ <event name="metadata_fixed">
+ <arg name="field" type="string" />
+ <arg name="value" type="fixed" />
+ </event>
+ <event name="metadata_array">
+ <arg name="field" type="string" />
+ <arg name="value" type="array" />
+ </event>
+
+ <event name="cancel" type="destructor" />
+ </interface>
+
+ <interface name="urish_chain" version="1">
+ <request name="finish" type="destructor">
+ <arg name="page" type="new_id" interface="urish_page" />
+ <arg name="mime_type" type="string" />
+ <arg name="data" type="fd" />
+ </request>
+
+ <event name="metadata_int">
+ <arg name="field" type="string" />
+ <arg name="value" type="int" />
+ </event>
+ <event name="metadata_uint">
+ <arg name="field" type="string" />
+ <arg name="value" type="uint" />
+ </event>
+ <event name="metadata_fd">
+ <arg name="field" type="string" />
+ <arg name="value" type="fd" />
+ </event>
+ <event name="metadata_string">
+ <arg name="field" type="string" />
+ <arg name="value" type="string" />
+ </event>
+ <event name="metadata_fixed">
+ <arg name="field" type="string" />
+ <arg name="value" type="fixed" />
+ </event>
+ <event name="metadata_array">
+ <arg name="field" type="string" />
+ <arg name="value" type="array" />
+ </event>
+
<event name="cancel" type="destructor" />
</interface>
<interface name="urish_page" version="1">
-
+ <request name="close" type="destructor" />
+ <event name="closed" type="destructor" />
+
+ <request name="refresh" type="destructor" />
+ <request name="hard_refresh" type="destructor" />
+
+ <request name="navigate_read" type="destructor">
+ <arg name="url" type="string" />
+ </request>
+ <request name="navigate_write" type="destructor">
+ <arg name="url" type="string" />
+ <arg name="mime_type" type="string" />
+ <arg name="data" type="fd" />
+ </request>
+
+ <request name="open_read">
+ <arg name="url" type="string" />
+ </request>
+ <request name="open_write">
+ <arg name="url" type="string" />
+ <arg name="mime_type" type="string" />
+ <arg name="data" type="fd" />
+ </request>
</interface>
<interface name="urish_surface" version="1">
-
+ <!-- TODO: steal from https://wayland.app/protocols/xdg-shell#xdg_toplevel -->
</interface>
</protocol>