summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLloyd Pique <lpique@google.com>2021-09-22 17:01:51 -0700
committerLloyd Pique <lpique@google.com>2021-09-24 21:41:08 +0000
commit2851a546acca2827af8956b460ee46e73324b7cd (patch)
tree99b8f48bb33e0ee6a0f5e263782f5d6a38e08751
parent9a136557f4d6540c9b049394942e0fab44b48146 (diff)
downloadwayland-protocols-android12-qpr3-s4-release.tar.gz
State as of Chromium sha1 39a3224 Bug: 200316779 Test: m libcuttlefish_wayland_server libcuttlefish_webrtc vnc_server Change-Id: I736e62dac342c8a89ab4401d85af47cfe714507f Merged-In: I736e62dac342c8a89ab4401d85af47cfe714507f
-rw-r--r--chromium.org/unstable/aura-shell/aura-shell.xml114
-rw-r--r--chromium.org/unstable/color-space/README4
-rw-r--r--chromium.org/unstable/color-space/color-space-unstable-v1.xml192
-rw-r--r--chromium.org/unstable/extended-drag/README4
-rw-r--r--chromium.org/unstable/extended-drag/extended-drag-unstable-v1.xml201
-rw-r--r--chromium.org/unstable/keyboard/keyboard-extension-unstable-v1.xml21
-rw-r--r--chromium.org/unstable/remote-shell/remote-shell-unstable-v1.xml2
-rw-r--r--chromium.org/unstable/remote-shell/remote-shell-unstable-v2.xml978
-rw-r--r--chromium.org/unstable/stylus/stylus-unstable-v2.xml1
-rw-r--r--chromium.org/unstable/text-input/README4
-rw-r--r--chromium.org/unstable/text-input/text-input-extension-unstable-v1.xml86
11 files changed, 1601 insertions, 6 deletions
diff --git a/chromium.org/unstable/aura-shell/aura-shell.xml b/chromium.org/unstable/aura-shell/aura-shell.xml
index bbc81a3..51d652b 100644
--- a/chromium.org/unstable/aura-shell/aura-shell.xml
+++ b/chromium.org/unstable/aura-shell/aura-shell.xml
@@ -24,7 +24,7 @@
DEALINGS IN THE SOFTWARE.
</copyright>
- <interface name="zaura_shell" version="18">
+ <interface name="zaura_shell" version="24">
<description summary="aura_shell">
The global interface exposing aura shell capabilities is used to
instantiate an interface extension for a wl_surface object.
@@ -93,9 +93,32 @@
</description>
<arg name="id" type="uint" summary="ID of a single bug fix"/>
</event>
+
+ <event name="desks_changed" since="22">
+ <description summary="sends names of desks">
+ Notifies when there is a change in global desks state. This is emitted on
+ desk name changes, desk addition/removal or desks are reordered.
+ "desk_names" argument contains the set of null terminated strings as names of desks.
+ </description>
+ <arg name="desk_names" type="array" summary="an array of existing desks' names"/>
+ </event>
+ <event name="desk_activation_changed" since="22">
+ <description summary="sends the index of the active desk">
+ Notifies when there is a change of the active desk.
+ </description>
+ <arg name="active_desk_index" type="int" summary="index of the active desk"/>
+ </event>
+ <!-- Version 24 additions -->
+ <event name="activated" since="24">
+ <description summary="activated surface changed">
+ Notifies client that the activated surface changed.
+ </description>
+ <arg name="gained_active" type="object" interface="wl_surface" allow-null="true"/>
+ <arg name="lost_active" type="object" interface="wl_surface" allow-null="true"/>
+ </event>
</interface>
- <interface name="zaura_surface" version="18">
+ <interface name="zaura_surface" version="23">
<description summary="aura shell interface to a wl_surface">
An additional interface to a wl_surface object, which allows the
client to access aura shell specific functionality for surface.
@@ -334,6 +357,93 @@
</description>
<arg name="id" type="int" summary="window session id"/>
</request>
+
+ <!-- Version 19 additions -->
+ <request name="set_can_go_back" since="19">
+ <description summary="Set the minimize-on-back-gesture behavior.">
+ Sets that the surface can go back as per its navigation list.
+ This allows the server to react to by minimizing the window upon a
+ system wide back gesture.
+ </description>
+ </request>
+
+ <request name="unset_can_go_back" since="19">
+ <description summary="Unset the minimize-on-back-gesture behavior.">
+ Unsets that the surface can go back as per its navigation list.
+ See above.
+ </description>
+ </request>
+
+ <!-- Version 20 additions -->
+ <request name="set_pip" since="20">
+ <description summary="Set pip for the surface.">
+ Requests that the surface is set to Picture-in-Picture (PIP).
+ </description>
+ </request>
+
+ <request name="unset_pip" since="20">
+ <description summary="Unset pip for the surface.">
+ Requests that the surface is unset from Picture-in-Picture (PIP).
+ </description>
+ </request>
+
+ <request name="set_aspect_ratio" since="20">
+ <description summary="Set aspect ratio for the surface.">
+ Sets the aspect ratio of the surface.
+ </description>
+ <arg name="width" type="int"/>
+ <arg name="height" type="int"/>
+ </request>
+
+ <!-- Version 21 additions -->
+ <enum name="occlusion_state">
+ <description summary="surface occlusion state">
+ Describes the occlusion state of a surface.
+ </description>
+ <entry name="unknown" value="0" summary="The surface's occlusion state isn't tracked"/>
+ <entry name="visible" value="1" summary="The surface is visible"/>
+ <entry name="occluded" value="2" summary="The surface is occluded"/>
+ <entry name="hidden" value="3" summary="The surface is not visible"/>
+ </enum>
+
+ <event name="occlusion_state_changed" since="21">
+ <description summary="Notify the client that the occlusion state changed">
+ Notifies the client that the occlusion state of a window has changed. Clients
+ will only receive these messages if they previously request occlusion tracking
+ via set_occlusion_tracking for a particular surface.
+ </description>
+ <arg name="mode" type="uint" enum="occlusion_state"/>
+ </event>
+
+ <!-- Version 22 additions -->
+ <request name="move_to_desk" since="22">
+ <description summary="move to desk">
+ If |index| equals -1, requests that the server toggles whether client
+ is visible on all workspaces.
+ If |index| is not -1, requests that the server moves the client to the desk at
+ |index|.
+ </description>
+ <arg name="index" type="int"/>
+ </request>
+
+ <event name="desk_changed" since="22">
+ <description summary="window desk state changed">
+ Notifies when there is a change in the desk state of a window.
+ This is emitted when a window is moved to another desk or
+ when its assigned-to-all-desks state changes.
+ </description>
+ <arg name="state" type="int" summary="index of desk or -1 for a window assigned to all desks"/>
+ </event>
+
+ <!-- Version 23 additions -->
+ <request name="set_initial_workspace" since="23">
+ <description summary="initial workspace for restore">
+ If |initial_workspace| equals '-1', a window is restored and visible on all workspaces,
+ Otherwise, set the initial workspace to restore the window to the corresponding workspace.
+ This is not double buffered and must be set before attaching a buffer.
+ </description>
+ <arg name="initial_workspace" type="string" summary="intial workspace for restoring or '-1' for visible on all workspaces"/>
+ </request>
</interface>
<interface name="zaura_output" version="6">
diff --git a/chromium.org/unstable/color-space/README b/chromium.org/unstable/color-space/README
new file mode 100644
index 0000000..eca7471
--- /dev/null
+++ b/chromium.org/unstable/color-space/README
@@ -0,0 +1,4 @@
+Color space protocol
+
+Maintainers:
+Jeffrey Kardatzke <jkardatzke@chromium.org>
diff --git a/chromium.org/unstable/color-space/color-space-unstable-v1.xml b/chromium.org/unstable/color-space/color-space-unstable-v1.xml
new file mode 100644
index 0000000..4663556
--- /dev/null
+++ b/chromium.org/unstable/color-space/color-space-unstable-v1.xml
@@ -0,0 +1,192 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<protocol name="color_space_unstable_v1">
+
+ <copyright>
+ Copyright 2019 The Chromium Authors.
+
+ Permission is hereby granted, free of charge, to any person obtaining a
+ copy of this software and associated documentation files (the "Software"),
+ to deal in the Software without restriction, including without limitation
+ the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ and/or sell copies of the Software, and to permit persons to whom the
+ Software is furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice (including the next
+ paragraph) shall be included in all copies or substantial portions of the
+ Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ DEALINGS IN THE SOFTWARE.
+ </copyright>
+
+ <interface name="zcr_color_space_v1" version="1">
+ <description summary="Protocol for setting the color space of a wl_surface">
+ This protocol specifies a an interface used to set the color space
+ information (primaries, transfer function, range, matrix) for a wl_surface
+ to enable correct color output for non-sRGB content.
+
+ Warning! The protocol described in this file is experimental and backward
+ incompatible changes may be made. Backward compatible changes may be added
+ together with the corresponding interface version bump. Backward
+ incompatible changes are done by bumping the version number in the
+ protocol and interface names and resetting the interface version. Once the
+ protocol is to be declared stable, the 'z' prefix and the version number
+ in the protocol and interface names are removed and the interface version
+ number is reset.
+ </description>
+
+ <request name="destroy" type="destructor">
+ <description summary="unbinds the color space interface">
+ Informs the server this interface will no longer be used. This does not
+ have any effect on wl_surface objects that have been modified through
+ this interface.
+ </description>
+ </request>
+
+ <enum name="error">
+ <entry name="invalid_primaries" value="0"
+ summary="the specified primaries are invalid"/>
+ <entry name="invalid_transfer_function" value="1"
+ summary="the specified transfer function is invalid"/>
+ <entry name="invalid_range" value="2"
+ summary="the specified range is invalid"/>
+ <entry name="invalid_matrix" value="3"
+ summary="the specified matrix is invalid"/>
+ </enum>
+
+ <enum name="primaries">
+ <entry name="bt709" value="0"
+ summary="BT.709, sRGB (HDTV)"/>
+ <entry name="bt470m" value="1"
+ summary="NTSC (Original, replaced by smpte170m)"/>
+ <entry name="bt470bg" value="2"
+ summary="PAL/SECAM (Original, replaced by smpte170m)"/>
+ <entry name="smpte170m" value="3"
+ summary="NTSC/PAL (SDTV)"/>
+ <entry name="smpte240m" value="4"
+ summary="HDTV (Original, replaced by bt709)"/>
+ <entry name="film" value="5"
+ summary="Generic film (color filters using Illuminant C)"/>
+ <entry name="bt2020" value="6"
+ summary="UHDTV"/>
+ <entry name="smptest428_1" value="7"
+ summary="D-Cinema"/>
+ <entry name="smptest431_2" value="8"
+ summary="DCI-P3"/>
+ <entry name="smptest432_1" value="9"
+ summary="Display P3"/>
+ <entry name="xyz_d50" value="10"
+ summary="XYZ color space with D50 white point"/>
+ <entry name="adobe_rgb" value="11"
+ summary="Adobe RGB"/>
+ </enum>
+
+ <enum name="transfer_function">
+ <entry name="bt709" value="0"
+ summary="BT.709, sRGB (HDTV)"/>
+ <entry name="gamma18" value="1"
+ summary="Gamma curve 1.8"/>
+ <entry name="gamma22" value="2"
+ summary="Gamma curve 2.2"/>
+ <entry name="gamma24" value="3"
+ summary="Gamma curve 2.4"/>
+ <entry name="gamma28" value="4"
+ summary="Gamma curve 2.8"/>
+ <entry name="smpte170m" value="5"
+ summary="NTSC/PAL (SDTV)"/>
+ <entry name="smpte240m" value="6"
+ summary="HDTV (Original, replaced by bt709)"/>
+ <entry name="linear" value="7"
+ summary="Linear transfer function"/>
+ <entry name="log" value="8"
+ summary="Logarithmic transfer function"/>
+ <entry name="log_sqrt" value="9"
+ summary="Logarithmic square root transfer function"/>
+ <entry name="iec61966_2_4" value="10"
+ summary="IEC 61966-2-4 transfer function"/>
+ <entry name="bt1361_ecg" value="11"
+ summary="ITU-BT.1361 ECG"/>
+ <entry name="iec61966_2_1" value="12"
+ summary="sRGB, IEC 61966-2-1 transfer function"/>
+ <entry name="bt2020_10" value="13"
+ summary="BT.2020 10 bit transfer function"/>
+ <entry name="bt2020_12" value="14"
+ summary="BT.2020 12 bit transfer function"/>
+ <entry name="smptest2084" value="15"
+ summary="SMPTE ST 2084 (PQ)"/>
+ <entry name="smptest428_1" value="16"
+ summary="D-Cinema transfer function"/>
+ <entry name="arib_std_b67" value="17"
+ summary="HLG transfer function"/>
+ <entry name="smptest2084_non_hdr" value="18"
+ summary="This is an ad-hoc transfer function that decodes SMPTE
+ 2084 content into a [0, 1] range more or less suitable for
+ viewing on a non-hdr display"/>
+ <entry name="iec61966_2_1_hdr" value="19"
+ summary="The same as IEC61966_2_1 on the interval [0, 1], with the
+ nonlinear segment continuing beyond 1 and point symmetry
+ defining values below 0"/>
+ <entry name="linear_hdr" value="20"
+ summary="The same as linear but is defined for all real values"/>
+ </enum>
+
+ <enum name="matrix">
+ <entry name="rgb" value="0"
+ summary="Standard RGB components"/>
+ <entry name="bt709" value="1"
+ summary="BT.709 (HDTV) YUV"/>
+ <entry name="fcc" value="2"
+ summary="NTSC (Original, replaced by smpte170m) YUV"/>
+ <entry name="bt470bg" value="3"
+ summary="PAL/SECAM (Original, replaced by smpte170m) YUV"/>
+ <entry name="smpte170m" value="4"
+ summary="NTSC/PAL (SDTV) YUV"/>
+ <entry name="smpte240m" value="5"
+ summary="HDTV (Original, replaced by bt709) YUV"/>
+ <entry name="ycocg" value="6"
+ summary="YCoCg components"/>
+ <entry name="bt2020_ncl" value="7"
+ summary="BT.2020 YUV"/>
+ <entry name="bt2020_cl" value="8"
+ summary="BT.2020 RYB"/>
+ <entry name="ydzdx" value="9"
+ summary="YDZDX components"/>
+ <entry name="gbr" value="10"
+ summary="GBR component layout"/>
+ </enum>
+
+ <enum name="range">
+ <entry name="limited" value="0"
+ summary="Limited (16-235 for 8-bit)"/>
+ <entry name="full" value="1"
+ summary="Full (0-255 for 8-bit)"/>
+ </enum>
+
+ <request name="set_color_space">
+ <description summary="sets the color space for a surface">
+ This sets the full set of color space properties for a surface to enable
+ proper color conversion for compositing. If any of these are invalid
+ then an error is raised. This is double-buffered and takes effect on
+ the next commit of the surface. It's the responsibility of the
+ compositor to do the necessary color conversions.
+ </description>
+ <arg name="surface" type="object" interface="wl_surface"
+ summary="surface"/>
+ <arg name="primaries" type="uint"
+ summary="primaries and white point"/>
+ <arg name="transfer_function" type="uint"
+ summary="electro-optical transfer function"/>
+ <arg name="matrix" type="uint"
+ summary="matrix for conversion to rgb" />
+ <arg name="range" type="uint"
+ summary="value range used by the pixels"/>
+ </request>
+
+ </interface>
+
+</protocol>
diff --git a/chromium.org/unstable/extended-drag/README b/chromium.org/unstable/extended-drag/README
new file mode 100644
index 0000000..a194b3a
--- /dev/null
+++ b/chromium.org/unstable/extended-drag/README
@@ -0,0 +1,4 @@
+Extended Drag protocol
+
+Maintainers:
+Nick Yamane <nickdiego@igalia.com>
diff --git a/chromium.org/unstable/extended-drag/extended-drag-unstable-v1.xml b/chromium.org/unstable/extended-drag/extended-drag-unstable-v1.xml
new file mode 100644
index 0000000..cb4c1dc
--- /dev/null
+++ b/chromium.org/unstable/extended-drag/extended-drag-unstable-v1.xml
@@ -0,0 +1,201 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<protocol name="extended_drag_unstable_v1">
+
+ <copyright>
+ Copyright 2020 The Chromium Authors.
+
+ Permission is hereby granted, free of charge, to any person obtaining a
+ copy of this software and associated documentation files (the "Software"),
+ to deal in the Software without restriction, including without limitation
+ the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ and/or sell copies of the Software, and to permit persons to whom the
+ Software is furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice (including the next
+ paragraph) shall be included in all copies or substantial portions of the
+ Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ DEALINGS IN THE SOFTWARE.
+ </copyright>
+
+ <interface name="zcr_extended_drag_v1" version="1">
+ <description summary="extends DnD protocol with some advanced features">
+ The zcr_extended_drag_v1 interface extends the Wayland drag-and-drop with
+ features unsurpported by the core protocol. Such as, making toplevel shell
+ surfaces "draggable", as well as making them "snappable" into and out of
+ other surfaces as they are dragged around.
+
+ A common use case for this is a Chromium-like tab/window dragging UX,
+ where the user is able to drag a tab (or any other kind of UI piece) out
+ of its original window, into a new surface anchored to the pointer cursor,
+ similar to a regular drag icon but with enhanced and more configurable
+ capabilities.
+
+ Warning! The protocol described in this file is experimental and
+ backward incompatible changes may be made. Backward compatible changes
+ may be added together with the corresponding uinterface version bump.
+ Backward incompatible changes are done by bumping the version number in
+ the protocol and uinterface names and resetting the interface version.
+ Once the protocol is to be declared stable, the 'z' prefix and the
+ version number in the protocol and interface names are removed and the
+ interface version number is reset.
+ </description>
+
+ <enum name="options" bitfield="true">
+ <description summary="extended drag configuration flags.">
+ Bitmask flags that can be used to configure how the drag session will
+ operate. By default no additional option is set.
+
+ Source client might set allow_swallow option to tell the compositor that
+ the dragged UI item can be snapped out and into other surfaces
+ (swallowed/unswallowed), eg: Chromium's tab dragging UX.
+
+ allow_drop_no_target controls how source and destination clients are
+ notified when the drop happens, if it is set the DnD operation is
+ considered successfully finished regardless the drop location (eg:
+ outside any shell surface or there is no target that can accept it).
+
+ lock_cursor might be used to keep the cursor shape locked during the
+ extended drag session, regardless current the mime types, dnd action
+ negotiation status.
+ </description>
+ <entry name="default" value="0"/>
+ <entry name="allow_swallow" value="1"/>
+ <entry name="allow_drop_no_target" value="2"/>
+ <entry name="lock_cursor" value="4"/>
+ </enum>
+
+ <request name="get_extended_drag_source">
+ <description summary="get an extended_drag_source for a wl_data_source">
+ Create an extended drag source object. See zcr_extended_drag_source_v1
+ interface for details.
+ </description>
+ <arg name="id" type="new_id" interface="zcr_extended_drag_source_v1"/>
+ <arg name="data_source" type="object" interface="wl_data_source"/>
+ <arg name="options" type="uint" enum="zcr_extended_drag_v1.options"/>
+ </request>
+
+ <request name="get_extended_drag_offer">
+ <description summary="get an extended_drag_offer for a wl_data_offer">
+ Create an extended drag offer object. See zcr_extended_drag_offer_v1
+ interface for details.
+ </description>
+ <arg name="id" type="new_id" interface="zcr_extended_drag_offer_v1"/>
+ <arg name="data_offer" type="object" interface="wl_data_offer"/>
+ </request>
+ </interface>
+
+ <interface name="zcr_extended_drag_source_v1" version="1">
+ <description summary="extensions for the standard drag data source">
+ The zcr_extended_drag_source_v1 interface extends the wl_data_source with
+ features unsurpported by the standard drag-and-drop protocol.
+ </description>
+
+ <request name="destroy" type="destructor">
+ <description summary="destroy the extended drag source object"/>
+ </request>
+
+ <request name="drag">
+ <description summary="Update the dragged surface">
+ Update the dragged surface. If null is passed, the dragged surface gets
+ unset, making it to not being moved anymore under the pointer cursor.
+ Otherwise, it will be set as the dragged surface, making it to be visually
+ anchored to the pointer cursor. surface is expected to have a toplevel
+ shell surface role assigned, which allows it to be dropped smoothly into
+ an arbitrary location of the shell, so turning it instantly into a
+ regular toplevel window, which not possible with the standard DND
+ protocol.
+
+ x and y offsets are described in surface-local coordinates, with no
+ scale applied, that determine how the surface must be positioned
+ relative to the cursor location, similar to drag icon offsets in
+ standard DND operations.
+ </description>
+ <arg name="surface" type="object" interface="wl_surface" allow-null="true" summary="drag icon surface"/>
+ <arg name="x_offset" type="int" summary="dragged surface x offset"/>
+ <arg name="y_offset" type="int" summary="dragged surface y offset"/>
+ </request>
+
+ <event name="swallow">
+ <description summary="the receiving client requested to swallow the drag.">
+ The receiving client has requested to swallow the dragged surface.
+ Which, in a drag operation involving 2 or more clients, can be used to
+ negotiate when the dragged surface is incorporated (aka: merged) into
+ its UI. See zcr_extended_drag_offer_v1::swallow request for more
+ details.
+ </description>
+ <arg name="mime_type" type="string" summary="mime type to be swallowed by the client"/>
+ </event>
+
+ <event name="unswallow">
+ <description summary="the receiving client requested to unswallow the drag.">
+ The receiving client has requested to unswallow the dragged surface.
+ Which, in a drag operation involving more than a single client, can be
+ used to negotiate when the dragged surface is snapped out of the
+ receiving client's UI.
+
+ X and Y offsets are expressed in surface-local coordinates, with no
+ scale applied, and describe how the surface must be positioned relative
+ to the cursor location, similar to drag icon offsets in standard DND
+ operations. Note that these coordinates are local to the unswallowed
+ surface, created and owned by the source client, so it can be used
+ rightaway to call drag(surface, x_offset, y_offset) in response to
+ receiving client's request.
+ </description>
+ <arg name="mime_type" type="string" allow-null="true" summary="mime type accepted by the client"/>
+ <arg name="x_offset" type="int" summary="dragged surface x offset"/>
+ <arg name="y_offset" type="int" summary="dragged surface y offset"/>
+ </event>
+ </interface>
+
+ <interface name="zcr_extended_drag_offer_v1" version="1">
+ <description summary="extensions for the standard drag data offer.">
+ The zcr_extended_drag_offer_v1 interface extends the wl_data_offer with
+ features unsurpported by the standard drag-and-drop protocol.
+ </description>
+
+ <request name="destroy" type="destructor">
+ <description summary="destroy the extended drag offer object"/>
+ </request>
+
+ <request name="swallow">
+ <description summary="Requests the drag source to swallow the drag.">
+ Requests the drag source to swallow the dragged surface. This means the
+ receiving client accepts and will incorporate the dragged surface into
+ its UI. For example, a browser tab is dragged and snapped to an icon\
+ grid.
+ </description>
+ <arg name="serial" type="uint" summary="serial number of the swallow request"/>
+ <arg name="mime_type" type="string" allow-null="true" summary="mime type being swallowed"/>
+ </request>
+
+ <request name="unswallow">
+ <description summary="Requests the drag source to unswallow the drag.">
+ Requests the drag source to unswallow the dragged surface. Which means
+ that the receiving client wants to undo a previously swallowed dragged
+ surface, i.e: detach it from its UI.
+
+ X and Y offsets are expressed in surface-local coordinates, with no
+ scale applied and describe how the surface must be positioned relative
+ to the cursor location, similar to drag icon offsets in standard DND
+ operations. Note that these coordinates are local to the currently
+ focused surface, owned by the receiving client, which may differ from
+ corresponding offsets at source side (which owns the unswallowed
+ surface), for instance, when the receiving surface is on a wl_output
+ with different scale value. Compositor handles such conversion before
+ delivering the zcr_extended_drag_source_v1::swallow event counterpart
+ to the source client.
+ </description>
+ <arg name="serial" type="uint" summary="serial number of the unswallow request"/>
+ <arg name="mime_type" type="string" summary="mime type being unswallowed"/>
+ <arg name="x_offset" type="int" summary="dragged surface x offset"/>
+ <arg name="y_offset" type="int" summary="dragged surface y offset"/>
+ </request>
+ </interface>
+</protocol>
diff --git a/chromium.org/unstable/keyboard/keyboard-extension-unstable-v1.xml b/chromium.org/unstable/keyboard/keyboard-extension-unstable-v1.xml
index 9527678..a42ee7d 100644
--- a/chromium.org/unstable/keyboard/keyboard-extension-unstable-v1.xml
+++ b/chromium.org/unstable/keyboard/keyboard-extension-unstable-v1.xml
@@ -24,7 +24,7 @@
DEALINGS IN THE SOFTWARE.
</copyright>
- <interface name="zcr_keyboard_extension_v1" version="1">
+ <interface name="zcr_keyboard_extension_v1" version="2">
<description summary="extends wl_keyboard with ack_key events">
Allows a wl_keyboard to send ack_key requests for each key event of
the keyboard to the server.
@@ -56,7 +56,7 @@
</request>
</interface>
- <interface name="zcr_extended_keyboard_v1" version="1">
+ <interface name="zcr_extended_keyboard_v1" version="2">
<description summary="extension of wl_keyboard protocol">
The zcr_extended_keyboard_v1 interface extends the wl_keyboard interface
with requests to notify whether sent key events are handled or not by
@@ -79,5 +79,22 @@
<arg name="serial" type="uint"/>
<arg name="handled" type="uint" enum="handled_state"/>
</request>
+
+ <event name="peek_key" since="2">
+ <description summary="peek a key event">
+ A key event which will be soon delivered to the application via
+ wl_keyboard::key. If text_input consumes the key event,
+ wl_keyboard::key is not delivered, but this event is still delivered
+ to the application.
+ All arguments are the exactly same one of the following wl_keyboard::key,
+ including serial.
+ </description>
+ <arg name="serial" type="uint" summary="serial number of the key event"/>
+ <arg name="time" type="uint" summary="timestamp with millisecond granularity"/>
+ <arg name="key" type="uint" summary="key that produced the event"/>
+ <!-- Dropped enum="key_state" from state for the workaround of crbug.com/1194855. -->
+ <arg name="state" type="uint" summary="physical state of the key"/>
+ </event>
+
</interface>
</protocol>
diff --git a/chromium.org/unstable/remote-shell/remote-shell-unstable-v1.xml b/chromium.org/unstable/remote-shell/remote-shell-unstable-v1.xml
index 58478d4..cfc9c85 100644
--- a/chromium.org/unstable/remote-shell/remote-shell-unstable-v1.xml
+++ b/chromium.org/unstable/remote-shell/remote-shell-unstable-v1.xml
@@ -946,7 +946,7 @@
<entry name="zoom" value="32"
summary="a mask to turn the maximize_restore button to zoom button"/>
<entry name="center" value="64"
- summary="a customizable, center-aligned button"/>
+ summary="a customizable, center-aligned button"/>
</enum>
<request name="set_frame_buttons" since="13">
diff --git a/chromium.org/unstable/remote-shell/remote-shell-unstable-v2.xml b/chromium.org/unstable/remote-shell/remote-shell-unstable-v2.xml
new file mode 100644
index 0000000..622ebea
--- /dev/null
+++ b/chromium.org/unstable/remote-shell/remote-shell-unstable-v2.xml
@@ -0,0 +1,978 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<protocol name="remote_shell_unstable_v2">
+
+ <copyright>
+ Copyright 2021 The Chromium Authors.
+
+ Permission is hereby granted, free of charge, to any person obtaining a
+ copy of this software and associated documentation files (the "Software"),
+ to deal in the Software without restriction, including without limitation
+ the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ and/or sell copies of the Software, and to permit persons to whom the
+ Software is furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice (including the next
+ paragraph) shall be included in all copies or substantial portions of the
+ Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ DEALINGS IN THE SOFTWARE.
+ </copyright>
+
+ <description summary="Create remote desktop-style surfaces">
+ remote_shell allows clients to turn a wl_surface into a "real window"
+ which can be stacked and activated by the user.
+
+ Warning! The protocol described in this file is experimental and backward
+ incompatible changes may be made. Backward compatible changes may be added
+ together with the corresponding interface version bump. Backward
+ incompatible changes are done by bumping the version number in the protocol
+ and interface names and resetting the interface version. Once the protocol
+ is to be declared stable, the 'z' prefix and the version number in the
+ protocol and interface names are removed and the interface version number is
+ reset.
+ </description>
+
+ <interface name="zcr_remote_shell_v2" version="1">
+ <description summary="remote_shell">
+ The global interface that allows clients to turn a wl_surface into a
+ "real window" which is remotely managed but can be stacked, activated
+ and made fullscreen by the user.
+ </description>
+
+ <enum name="error">
+ <entry name="role" value="0" summary="given wl_surface has another role"/>
+ <entry name="invalid_notification_key" value="1" summary="invalid notification key"/>
+ </enum>
+
+ <request name="destroy" type="destructor">
+ <description summary="destroy remote_shell">
+ Destroy this remote_shell object.
+
+ Destroying a bound remote_shell object while there are surfaces
+ still alive created by this remote_shell object instance is illegal
+ and will result in a protocol error.
+ </description>
+ </request>
+
+ <enum name="container">
+ <description summary="containers for remote surfaces">
+ Determine how a remote surface should be stacked relative to other
+ shell surfaces.
+ </description>
+ <entry name="default" value="1" summary="default container"/>
+ <entry name="overlay" value="2" summary="system modal container"/>
+ </enum>
+
+ <request name="get_remote_surface">
+ <description summary="create a remote shell surface from a surface">
+ This creates an remote_surface for the given surface and gives it the
+ remote_surface role. A wl_surface can only be given a remote_surface
+ role once. If get_remote_surface is called with a wl_surface that
+ already has an active remote_surface associated with it, or if it had
+ any other role, an error is raised.
+
+ See the documentation of remote_surface for more details about what an
+ remote_surface is and how it is used.
+ </description>
+ <arg name="id" type="new_id" interface="zcr_remote_surface_v2"/>
+ <arg name="surface" type="object" interface="wl_surface"/>
+ <arg name="container" type="uint" enum="container"/>
+ </request>
+
+ <request name="get_notification_surface">
+ <description summary="create a notification surface from a surface">
+ Creates a notification_surface for the given surface, gives it the
+ notification_surface role and associated it with a notification id.
+ </description>
+ <arg name="id" type="new_id" interface="zcr_notification_surface_v2"/>
+ <arg name="surface" type="object" interface="wl_surface"/>
+ <arg name="notification_key" type="string"/>
+ </request>
+
+ <event name="default_device_scale_factor" since="1">
+ <description summary="initialize scale configuration">
+ Sends the default device scale factor.
+ </description>
+ <arg name="scale" type="int" summary="DP to pixels ratio, in 8.24 fixed point format"/>
+ </event>
+
+ <request name="get_input_method_surface" since="1">
+ <description summary="Create a input method surface from a surface">
+ Creates an input_method_surface for the given surface, gives it
+ the input_method_surface role.
+ </description>
+ <arg name="id" type="new_id" interface="zcr_input_method_surface_v2"/>
+ <arg name="surface" type="object" interface="wl_surface"/>
+ </request>
+
+ <request name="get_toast_surface" since="1">
+ <description summary="Create a toast surface from a surface">
+ Creates an toast_surface for the given surface, gives it
+ the toast_surface role.
+ </description>
+ <arg name="id" type="new_id" interface="zcr_toast_surface_v2"/>
+ <arg name="surface" type="object" interface="wl_surface"/>
+ </request>
+
+ <enum name="layout_mode">
+ <description summary="the layout mode">
+ Determine how a client should layout surfaces.
+ </description>
+ <entry name="windowed" value="1" summary="multiple windows"/>
+ <entry name="tablet" value="2" summary="restricted mode for tablet"/>
+ </enum>
+
+ <event name="layout_mode" since="1">
+ <description summary="sends the layout_mode">
+ Sends the layout_mode used by the server.
+ </description>
+ <arg name="layout_mode" type="uint" enum="layout_mode"/>
+ </event>
+
+ <request name="get_remote_output" since="1">
+ <description summary="extend output interface for remote shell">
+ Instantiate an interface extension for the given wl_output to
+ provide remote shell functionality.
+ </description>
+ <arg name="id" type="new_id" interface="zcr_remote_output_v2" summary="the new remote output interface id"/>
+ <arg name="output" type="object" interface="wl_output"/>
+ </request>
+
+ <enum name="desktop_focus_state">
+ <description summary="desktop foucs state">
+ Desktop client window focus state.
+ </description>
+ <entry name="no_focus" value="1" summary="no window get focused"/>
+ <entry name="client_focused" value="2" summary="client window get focused"/>
+ <entry name="other_client_focused" value="3" summary="other client window get focused"/>
+ </enum>
+
+ <event name="desktop_focus_state_changed" since="1">
+ <description summary="desktop window focus state change">
+ Notifies client that the window focus state change.
+ </description>
+ <arg name="focus_state" type="uint" enum="desktop_focus_state"/>
+ </event>
+
+ </interface>
+
+ <interface name="zcr_remote_surface_v2" version="1">
+ <description summary="A desktop window">
+ An interface that may be implemented by a wl_surface, for
+ implementations that provide a desktop-style user interface
+ and allows for remotely managed windows.
+
+ It provides requests to treat surfaces like windows, allowing to set
+ properties like app id and geometry.
+
+ The client must call wl_surface.commit on the corresponding wl_surface
+ for the remote_surface state to take effect.
+
+ For a surface to be mapped by the compositor the client must have
+ committed both an remote_surface state and a buffer.
+ </description>
+
+ <enum name="systemui_visibility_state">
+ <description summary="systemui visibility behavior">
+ Determine the visibility behavior of the system UI.
+ </description>
+ <entry name="visible" value="1" summary="system ui is visible"/>
+ <entry name="autohide_non_sticky" value="2" summary="system ui autohides and is not sticky"/>
+ <entry name="autohide_sticky" value="3" summary="system ui autohides and is sticky"/>
+ </enum>
+
+ <request name="destroy" type="destructor">
+ <description summary="Destroy the remote_surface">
+ Unmap and destroy the window. The window will be effectively
+ hidden from the user's point of view, and all state will be lost.
+ </description>
+ </request>
+
+ <request name="set_app_id">
+ <description summary="set application ID">
+ Set an application identifier for the surface.
+ </description>
+ <arg name="app_id" type="string"/>
+ </request>
+
+ <request name="set_title">
+ <description summary="set surface title">
+ Set a short title for the surface.
+
+ This string may be used to identify the surface in a task bar,
+ window list, or other user interface elements provided by the
+ compositor.
+
+ The string must be encoded in UTF-8.
+ </description>
+ <arg name="title" type="string"/>
+ </request>
+
+ <request name="set_top_inset">
+ <description summary="set top inset for surface">
+ Set distance from the top of the surface to the contents.
+
+ This distance typically represents the size of the window caption.
+ </description>
+ <arg name="height" type="int"/>
+ </request>
+
+ <request name="maximize">
+ <description summary="maximize">
+ Request that surface is maximized. The window geometry will be updated
+ to whatever the compositor finds appropriate for a maximized window.
+
+ This is only a request that the window should be maximized. The
+ compositor may choose to ignore this request. The client should
+ listen to state_type_changed events to determine if the window was
+ maximized or not.
+ </description>
+ </request>
+
+ <request name="minimize">
+ <description summary="minimize">
+ Request that surface is minimized.
+
+ This is only a request that the window should be minimized. The
+ compositor may choose to ignore this request. The client should
+ listen to state_type_changed events to determine if the window was
+ minimized or not.
+ </description>
+ </request>
+
+ <request name="restore">
+ <description summary="restore">
+ Request that surface is restored. This restores the window geometry
+ to what it was before the window was minimized, maximized or made
+ fullscreen.
+
+ This is only a request that the window should be restored. The
+ compositor may choose to ignore this request. The client should
+ listen to state_type_changed events to determine if the window was restored
+ or not.
+ </description>
+ </request>
+
+ <request name="fullscreen">
+ <description summary="fullscreen">
+ Request that surface is made fullscreen.
+
+ This is only a request that the window should be made fullscreen.
+ The compositor may choose to ignore this request. The client should
+ listen to set_fullscreen events to determine if the window was
+ made fullscreen or not.
+ </description>
+ </request>
+
+ <request name="pin">
+ <description summary="pin">
+ Request that surface is pinned.
+
+ This is only a request that the window should be pinned.
+ The compositor may choose to ignore this request. The client should
+ listen to state_type_changed events to determine if the window was
+ pinned or not. If trusted flag is non-zero, the app can prevent users
+ from exiting the pinned mode.
+ </description>
+ <arg name="trusted" type="int"/>
+ </request>
+
+ <request name="unpin">
+ <description summary="unpin">
+ Request that surface is unpinned.
+
+ This is only a request that the window should be unpinned.
+ The compositor may choose to ignore this request. The client should
+ listen to state_type_changed events to determine if the window was
+ unpinned or not.
+ </description>
+ </request>
+
+ <request name="set_system_modal">
+ <description summary="suggests a re-layout of remote shell input area">
+ Suggests a surface should become system modal.
+ </description>
+ </request>
+
+ <request name="unset_system_modal">
+ <description summary="suggests a re-layout of remote shell input area">
+ Suggests a surface should become non system modal.
+ </description>
+ </request>
+
+ <event name="close">
+ <description summary="surface wants to be closed">
+ The close event is sent by the compositor when the user
+ wants the surface to be closed. This should be equivalent to
+ the user clicking the close button in client-side decorations,
+ if your application has any...
+
+ This is only a request that the user intends to close your
+ window. The client may choose to ignore this request, or show
+ a dialog to ask the user to save their data...
+ </description>
+ </event>
+
+ <enum name="state_type">
+ <description summary="state types for remote surfaces">
+ Defines common show states for shell surfaces.
+ </description>
+ <entry name="normal" value="1" summary="normal window state"/>
+ <entry name="minimized" value="2" summary="minimized window state"/>
+ <entry name="maximized" value="3" summary="maximized window state"/>
+ <entry name="fullscreen" value="4" summary="fullscreen window state"/>
+ <entry name="pinned" value="5" summary="pinned window state"/>
+ <entry name="trusted_pinned" value="6" summary="trusted pinned window state"/>
+ <entry name="moving" value="7" summary="moving window state"/>
+ <entry name="resizing" value="8" summary="resizing window state"/>
+ <entry name="left_snapped" value="9" summary="left snapped window state"/>
+ <entry name="right_snapped" value="10" summary="right snapped window state"/>
+ <entry name="pip" value="11" summary="pip window state"/>
+ </enum>
+
+ <event name="state_type_changed">
+ <description summary="surface state type changed">
+ The state_type_changed event is sent by the compositor when
+ the surface state changed.
+
+ This is an event to notify that the window state changed in compositor.
+ The state change may be triggered by a client's request, or some user
+ action directly handled by the compositor. The client may choose to
+ ignore this event.
+ </description>
+ <arg name="state_type" type="uint" enum="state_type"/>
+ </event>
+
+ <request name="set_rectangular_surface_shadow" since="1">
+ <description summary="set a rectangular shadow">
+ Request that surface needs a rectangular shadow.
+
+ This is only a request that the surface should have a rectangular
+ shadow. The compositor may choose to ignore this request.
+
+ The arguments are given in the remote surface coordinate space and
+ specifies inner bounds of the shadow. Specifying zero width and height
+ will disable the shadow.
+ </description>
+ <arg name="x" type="int"/>
+ <arg name="y" type="int"/>
+ <arg name="width" type="int"/>
+ <arg name="height" type="int"/>
+ </request>
+
+ <request name="set_systemui_visibility" since="1">
+ <description summary="requests the system ui visibility behavior for the surface">
+ Requests how the surface will change the visibility of the system UI when it is made active.
+ </description>
+ <arg name="visibility" type="uint" enum="systemui_visibility_state"/>
+ </request>
+
+ <request name="set_always_on_top" since="1">
+ <description summary="set always on top">
+ Request that surface is made to be always on top.
+
+ This is only a request that the window should be always on top.
+ The compositor may choose to ignore this request.
+
+ </description>
+ </request>
+
+ <request name="unset_always_on_top" since="1">
+ <description summary="unset always on top">
+ Request that surface is made to be not always on top.
+
+ This is only a request that the window should be not always on top.
+ The compositor may choose to ignore this request.
+ </description>
+ </request>
+
+ <enum name="orientation">
+ <description summary="window orientation">
+ The orientation of the window.
+ </description>
+ <entry name="portrait" value="1" summary="portrait"/>
+ <entry name="landscape" value="2" summary="landscape"/>
+ </enum>
+
+ <request name="set_orientation" since="1">
+ <description summary="set orientation">
+ Set an orientation for the surface.
+ </description>
+ <arg name="orientation" type="int" enum="orientation"/>
+ </request>
+
+ <event name="window_geometry_changed" since="1">
+ <description summary="announce window geometry commit">
+ Notify the client of committed window geometry.
+
+ The compositor sends this event when it commits window geometry. The
+ client may use this information to convert coordinates of input events
+ using the latest committed geometry.
+ </description>
+ <arg name="x" type="int"/>
+ <arg name="y" type="int"/>
+ <arg name="width" type="int"/>
+ <arg name="height" type="int"/>
+ </event>
+
+ <enum name="bounds_change_reason">
+ <description summary="bounds_change_reason">
+ Specifies the cause of the window bounds change event.
+ </description>
+ <entry name="drag_move" value="1" summary="the window is being moved by drag operation"/>
+ <entry name="drag_resize" value="2" summary="the window is being resized by drag operation."/>
+ <entry name="snap_to_left" value="3" summary="the window is resized to left snapped state"/>
+ <entry name="snap_to_right" value="4" summary="the window is resized to right snapped state"/>
+ <entry name="move" value="5" summary="the window bounds is moved due to other WM operations"/>
+ <entry name="resize" value="6" summary="the window bounds is reiszed due to other WM operations"/>
+ <entry name="pip" value="7" summary="the window bounds is resized or moved for PIP"/>
+ </enum>
+
+ <event name="bounds_changed" since="1">
+ <description summary="The compositor requested to change the bounds">
+ The compositor requested to change its
+ bounds. "bounds_change_reason" specifies the cause of the
+ bounds change. The client may apply the different move/resize
+ strategy depending on the reason.
+
+ "display_id_hi", "display_id_lo" specifies in which workspace
+ the surface should live in.
+
+ The client responds with set_bounds_in_output request, with the
+ bounds it is resized to (this may be different from the bounds
+ requested).
+
+ The client may ignore move request depending on the state,
+ e.g, if it becomes resizable or other constrants.
+ </description>
+ <arg name="display_id_hi" type="uint"/>
+ <arg name="display_id_lo" type="uint"/>
+ <arg name="x" type="int"/>
+ <arg name="y" type="int"/>
+ <arg name="width" type="int"/>
+ <arg name="height" type="int"/>
+ <arg name="bounds_change_reason" type="uint" enum="bounds_change_reason"/>
+ </event>
+
+ <request name="start_move" since="1">
+ <description summary="start an interactive move">
+ Request an interactive, user-driven move of the surface. "x"
+ and "y" specifies the starting point of the pointer device
+ that initiated the move.
+
+ The compositor responds to this request with a drag_started
+ event with "none" direction. Please see drag_started event
+ for more details.
+
+ The compositor may ignore move requests depending on the state of the
+ surface, e.g. fullscreen or maximized.
+ </description>
+ <arg name="x" type="int"/>
+ <arg name="y" type="int"/>
+ </request>
+
+ <enum name="resize_direction">
+ <description summary="resize direction">
+ The resize direction for drag operation
+ </description>
+ <entry name="none" value="0" summary="move only, no resize"/>
+ <entry name="left" value="1" summary="resize to the left"/>
+ <entry name="topleft" value="2" summary="resize to the top left"/>
+ <entry name="top" value="3" summary="resize to the top"/>
+ <entry name="topright" value="4" summary="resize to the top right"/>
+ <entry name="right" value="5" summary="resize to the right"/>
+ <entry name="bottomright" value="6" summary="resize to the buttom right"/>
+ <entry name="bottom" value="7" summary="resize to the bottom"/>
+ <entry name="bottomleft" value="8" summary="resize to the bottom left"/>
+ </enum>
+
+ <event name="drag_started" since="1">
+ <description summary="Notifies that a drag to move/resize started.">
+ Notifies a client that the compositor started drag
+ operation. "direction" specifies which direction it is being
+ resized. "none" direction means just move but not resize.
+
+ This will be followed by series of the "bounds_changed" event
+ with "drag_resize" or "drag_move" reasons to update the window
+ bounds druing the drag operation.
+ </description>
+ <arg name="direction" type="uint" enum="resize_direction"/>
+ </event>
+
+ <event name="drag_finished" since="1">
+ <description summary="Notifies that a drag operation has finished.">
+ Called when the drag operation is finished. "x" and "y"
+ specifies the position of the pointer device used to drag.
+ "canceled" is true if the drag operation is aborted during
+ drag (e.g. by capture change or user action.)
+ </description>
+ <arg name="x" type="int"/>
+ <arg name="y" type="int"/>
+ <arg name="canceled" type="int" summary="true if the operation was canceled"/>
+ </event>
+
+ <request name="set_can_maximize" since="1">
+ <description summary="set can_maximize">
+ Request that surface can be in maximzied state.
+ </description>
+ </request>
+
+ <request name="unset_can_maximize" since="1">
+ <description summary="unset can_maximize">
+ Request that surface can not be in maximzied state.
+ </description>
+ </request>
+
+ <request name="set_min_size" since="1">
+ <description summary="set the minimum size">
+ Set a minimum size of the surface.
+
+ Values set in this way are double-buffered. They will get
+ applied on the next commit.
+ </description>
+ <arg name="width" type="int"/>
+ <arg name="height" type="int"/>
+ </request>
+
+ <request name="set_max_size" since="1">
+ <description summary="set the maximum size">
+ Set a maximum size of the surface.
+
+ Values set in this way are double-buffered. They will get
+ applied on the next commit.
+
+ Setting the same size as minimum size makes the surface
+ unresizable.
+ </description>
+ <arg name="width" type="int"/>
+ <arg name="height" type="int"/>
+ </request>
+
+ <request name="set_snapped_to_left" since="1">
+ <description summary="set the surface to left snapped">
+ Request that surface is snapped to left.
+ </description>
+ </request>
+
+ <request name="set_snapped_to_right" since="1">
+ <description summary="set the surface to right snapped">
+ Request that surface is snapped to right.
+ </description>
+ </request>
+
+ <request name="start_resize" since="1">
+ <description summary="start an interactive resize">
+ Request to start an interactive, user-driven resize of the surface.
+ "x" and "y" specifies the starting point of the pointer device
+ that initiated the reize.
+
+ The compositor responds to this request with a "drag_started"
+ event, followed by "bounds_changed" events, and ends the
+ resize operation with a "drag_finhsed" event. The compositor
+ determines the new bounds using the resize_direction and the
+ pointer event location.
+
+ The compositor may ignore resize requests depending on the state of the
+ surface, e.g. fullscreen or maximized, or no drag event is in pregress.
+ </description>
+ <arg name="resize_direction" type="uint" enum="resize_direction"/>
+ <arg name="x" type="int"/>
+ <arg name="y" type="int"/>
+ </request>
+
+ <enum name="frame_type">
+ <description summary="frame types">
+ Frame type that can be used to decorate a surface.
+ </description>
+ <entry name="none" value="0" summary="no frame"/>
+ <entry name="normal" value="1" summary="caption with shadow"/>
+ <entry name="shadow" value="2" summary="shadow only"/>
+ <entry name="autohide" value="3" summary="autohide frame with shadow"/>
+ <entry name="overlay" value="4" summary="overlay frame with shadow"/>
+ </enum>
+
+ <request name="set_frame" since="1">
+ <description summary="request a frame for surface">
+ Enables compositor side frame decoration. |type|
+ specifies the type of frame to use for the surface.
+ </description>
+ <arg name="type" type="uint" enum="frame_type"/>
+ </request>
+
+ <enum name="frame_button_type" bitfield="true">
+ <description summary="frame button types">
+ The mask that represents buttons on frame.
+ </description>
+ <entry name="back" value="1" summary="a button to naviate backwards"/>
+ <entry name="minimize" value="2" summary="a button to minimize the window"/>
+ <entry name="maximize_restore" value="4"
+ summary="a button to maximize or restore"/>
+ <entry name="menu" value="8"
+ summary="a button to activate application's menu"/>
+ <entry name="close" value="16" summary="a button to close the window"/>
+ <entry name="zoom" value="32"
+ summary="a mask to turn the maximize_restore button to zoom button"/>
+ <entry name="center" value="64"
+ summary="a customizable, center-aligned button"/>
+ </enum>
+
+ <request name="set_frame_buttons" since="1">
+ <description summary="updates buttons' state on frame">
+ Updates the frame's button state. |visible_buttons| and |enabled_buttons|
+ are the union of button mask defined in |frame_button_type| enum.
+
+ The mask present in |enabled_buttons| but not in |visible_buttons| will
+ be ignored.
+ </description>
+ <arg name="visible_buttons" type="uint"/>
+ <arg name="enabled_buttons" type="uint"/>
+ </request>
+
+ <request name="set_extra_title" since="1">
+ <description summary="set extra title string">
+ The extra informational string about the surface. This can be
+ used to show the debug information in the title bar, or log
+ messages.
+
+ This is different from "set_title" which is used to identify
+ the surface.
+
+ The string must be encoded in UTF-8.
+ </description>
+ <arg name="extra_title" type="string"/>
+ </request>
+
+ <enum name="orientation_lock">
+ <description summary="orientation lock request for remote surfaces">
+ Defines orientation request when a remote surface is in foreground.
+ </description>
+ <entry name="none" value="1" summary="no orientation lock"/>
+ <entry name="portrait" value="2" summary="primary or secondary portrait"/>
+ <entry name="landscape" value="3" summary="primary or secondary landscape"/>
+ <entry name="current" value="4" summary="keep current orientation"/>
+ <entry name="portrait_primary" value="5" summary="primary portrait"/>
+ <entry name="landscape_primary" value="6" summary="primary landscape"/>
+ <entry name="portrait_secondary" value="7" summary="secondary portrait"/>
+ <entry name="landscape_secondary" value="8" summary="secondary landscape"/>
+ </enum>
+
+ <request name="set_orientation_lock" since="1">
+ <description summary="set orientation lock for a remote surface">
+ Request a specific orientation behavior when this surface is in foreground.
+ </description>
+ <arg name="orientation_lock" type="uint" enum="orientation_lock"/>
+ </request>
+
+ <request name="pip" since="1">
+ <description summary="set pip for a remote surface">
+ Request that surface is set to Picture-in-Picture (PIP).
+ </description>
+ </request>
+
+ <request name="set_aspect_ratio" since="1">
+ <description summary="set the maximum size">
+ Set an aspect ratio of the surface.
+
+ Values set in this way are double-buffered. They will get
+ applied on the next commit.
+
+ The ratio of the values is used for the ratio of width to height of the
+ surface. The size of surface is restricted to the ratio. If any value is
+ zero, the restriction on aspect ratio is unset.
+ </description>
+ <arg name="width" type="int"/>
+ <arg name="height" type="int"/>
+ </request>
+
+ <enum name="zoom_change">
+ <description summary="zoom level change">
+ Zoom level change.
+ </description>
+ <entry name="in" value="0" summary="zoom in"/>
+ <entry name="out" value="1" summary="zoom out"/>
+ <entry name="reset" value="2" summary="reset zoom level"/>
+ </enum>
+
+ <event name="change_zoom_level" since="1">
+ <description summary="change zoom level">
+ Request application zoom level change.
+ </description>
+ <arg name="change" type="int" enum="zoom_change"/>
+ </event>
+
+ <request name="set_accessibility_id" since="1">
+ <description summary="set accessibility ID to the surface">
+ Set accessibility window ID to the surface. A negative number removes
+ the existing accessibility ID from the surface.
+ </description>
+ <arg name="id" type="int" summary="Accessibility ID. Negative number removes existing accessibility ID from the surface."/>
+ </request>
+
+ <request name="set_pip_original_window" since="1">
+ <description summary="set the pip original window">
+ Set this surface the original window for the current PIP window.
+ </description>
+ </request>
+
+ <request name="unset_pip_original_window" since="1">
+ <description summary="unset the pip original window">
+ Unset this surface the original window for the current PIP window.
+ </description>
+ </request>
+
+ <request name="set_system_gesture_exclusion" since="1">
+ <description summary="set system gesture exclusion">
+ Set system gesture exclusion region in which system gestures e.g. back
+ gesture should not be triggered.
+ </description>
+ <arg name="region" type="object" interface="wl_region" allow-null="true"/>
+ </request>
+
+ <request name="set_resize_lock" since="1">
+ <description summary="set resize lock state">
+ Enable the resize lock and put restrictions related to resizing on
+ the shell surface.
+
+ The resize lock state is double buffered, and will be applied at the
+ time wl_surface.commit of the corresponding wl_surface is called.
+ </description>
+ </request>
+
+ <request name="unset_resize_lock" since="1">
+ <description summary="unset resize lock state">
+ Disable the resize lock and allow the shell surface to be resized
+ freely.
+
+ The resize lock state is double buffered, and will be applied at the
+ time wl_surface.commit of the corresponding wl_surface is called.
+ </description>
+ </request>
+
+ <event name="bounds_changed_in_output" since="1">
+ <description summary="The compositor requested to change the bounds">
+ The compositor requested to change its
+ bounds. "bounds_change_reason" specifies the cause of the
+ bounds change. The client may apply the different move/resize
+ strategy depending on the reason.
+
+ The "output" specifies the wayland output in which the suface should live.
+
+ The client responds with set_bounds_in_output request, with the
+ bounds it is resized to (this may be different from the bounds
+ requested).
+
+ The client may ignore move request depending on the state,
+ e.g, if it becomes resizable or other constrants.
+ </description>
+ <arg name="output" type="object" interface="wl_output"/>
+ <arg name="x" type="int"/>
+ <arg name="y" type="int"/>
+ <arg name="width" type="int"/>
+ <arg name="height" type="int"/>
+ <arg name="bounds_change_reason" type="uint" enum="bounds_change_reason"/>
+ </event>
+
+ <request name="set_bounds_in_output" since="1">
+ <description summary="set window bounds">
+ Set the "visible bounds" of a window from the user's perspective.
+ Client-side decorations often have invisible portions like drop shadows
+ which should be ignored for the purposes of aligning, placing and
+ constraining windows.
+
+ The bounds are double buffered, and will be applied at the
+ time wl_surface.commit of the corresponding wl_surface is called.
+
+ Once the bounds are set, it is not possible to unset them, and they will
+ remain the same until set_bounds_in_output is called again, even if a new sub-
+ surface or buffer is attached.
+
+ If never set, the value is the surface content bounds. This updates
+ dynamically on every commit.
+
+ The bounds are relative to the given display. If the display is invalid,
+ they are assumed to be relative to the primary display.
+
+ The width and height must be greater than zero.
+ </description>
+ <arg name="output" type="object" interface="wl_output"/>
+ <arg name="x" type="int"/>
+ <arg name="y" type="int"/>
+ <arg name="width" type="int"/>
+ <arg name="height" type="int"/>
+ </request>
+ </interface>
+
+ <interface name="zcr_notification_surface_v2" version="1">
+ <description summary="A notification window">
+ An interface that may be implemented by a wl_surface to host
+ notification contents.
+ </description>
+
+ <request name="destroy" type="destructor">
+ <description summary="Destroy the notification_surface">
+ Unmap and destroy the notification surface.
+ </description>
+ </request>
+
+ <request name="set_app_id" since="1">
+ <description summary="set application ID">
+ Set an application identifier for the notification surface.
+ </description>
+ <arg name="app_id" type="string"/>
+ </request>
+ </interface>
+
+ <interface name="zcr_input_method_surface_v2" version="1">
+ <description summary="An input method window">
+ An interface that may be implemented by a wl_surface to host IME contents.
+ </description>
+
+ <request name="destroy" type="destructor">
+ <description summary="Destroy the ime_surface">
+ Unmap and destroy the input mtehod surface.
+ </description>
+ </request>
+
+ <request name="set_bounds_in_output" since="1">
+ <description summary="set window bounds">
+ Set the "visible bounds" of a window from the user's perspective.
+
+ The bounds are double buffered, and will be applied at the
+ time wl_surface.commit of the corresponding wl_surface is called.
+
+ Once the bounds are set, it is not possible to unset them, and they will
+ remain the same until set_bounds_in_output is called again, even if a new sub-
+ surface or buffer is attached.
+
+ If never set, the value is the surface content bounds. This updates
+ dynamically on every commit.
+
+ The bounds are relative to the given display. If the display is invalid,
+ they are assumed to be relative to the primary display.
+
+ The width and height must be greater than zero.
+ </description>
+ <arg name="output" type="object" interface="wl_output"/>
+ <arg name="x" type="int"/>
+ <arg name="y" type="int"/>
+ <arg name="width" type="int"/>
+ <arg name="height" type="int"/>
+ </request>
+ </interface>
+
+ <interface name="zcr_toast_surface_v2" version="1">
+ <description summary="A toast window">
+ An interface that may be implemented by a wl_surface to host
+ toast contents.
+ </description>
+
+ <request name="destroy" type="destructor">
+ <description summary="Destroy the toast_surface">
+ Unmap and destroy the toast surface.
+ </description>
+ </request>
+
+ <request name="set_bounds_in_output" since="1">
+ <description summary="set toast bounds position">
+ Set the bounds of a toast window from the user's perspective.
+
+ The bounds are double buffered, and will be applied at the
+ time wl_surface.commit of the corresponding wl_surface is called.
+
+ Once the bounds are set, it is not possible to unset them, and they will
+ remain the same until set_bounds is called again, even if a new sub-
+ surface or buffer is attached.
+
+ If never set, the compositor will determine the toast position.
+
+ The bounds are relative to the given display. If the display is invalid,
+ they are assumed to be relative to the primary display.
+ </description>
+ <arg name="output" type="object" interface="wl_output"/>
+ <arg name="x" type="int"/>
+ <arg name="y" type="int"/>
+ <arg name="width" type="int"/>
+ <arg name="height" type="int"/>
+ </request>
+ </interface>
+
+ <interface name="zcr_remote_output_v2" version="1">
+ <description summary="remote shell interface to a wl_output">
+ An additional interface to a wl_output object, which allows the
+ client to access additional functionality for output.
+ </description>
+
+ <request name="destroy" type="destructor" since="1">
+ <description summary="destroy remote_output">
+ Destroy this remote_output object.
+ </description>
+ </request>
+
+ <event name="display_id" since="1">
+ <description summary="the identifier for the display">
+ [Deprecated] Sends the display identifier used by the server for the display.
+ </description>
+ <arg name="display_id_hi" type="uint"/>
+ <arg name="display_id_lo" type="uint"/>
+ </event>
+
+ <event name="port" since="1">
+ <description summary="the port of the display">
+ Sends the port to which the display is connected for the server.
+ </description>
+ <arg name="port" type="uint"/>
+ </event>
+
+ <event name="identification_data" since="1">
+ <description summary="the identification data for the display">
+ Sends the identification data for the display, typically in the EDID format.
+ </description>
+ <arg name="identification_data" type="array"/>
+ </event>
+
+ <event name="insets" since="1">
+ <description summary="insets for the display in pixels">
+ Sends inset information about a particular display in the display's native coordinates.
+ </description>
+ <arg name="inset_left" type="int"/>
+ <arg name="inset_top" type="int"/>
+ <arg name="inset_right" type="int"/>
+ <arg name="inset_bottom" type="int"/>
+ </event>
+
+ <event name="stable_insets" since="1">
+ <description summary="stable insets for a display in pixels">
+ Sends stable inset information about a particular display in the display's native
+ coordinates.
+ </description>
+ <arg name="stable_inset_left" type="int"/>
+ <arg name="stable_inset_top" type="int"/>
+ <arg name="stable_inset_right" type="int"/>
+ <arg name="stable_inset_bottom" type="int"/>
+ </event>
+
+ <enum name="systemui_behavior">
+ <description summary="systemui behavior">
+ Determine the behavior of the system UI.
+ </description>
+ <entry name="visible" value="1" summary="system ui is visible"/>
+ <entry name="hidden" value="2" summary="system ui is autohide or hidden"/>
+ </enum>
+
+ <event name="systemui_behavior" since="1">
+ <description summary="systemui_behavior_state for a display">
+ Sends information about whether the systemui behavior is auto hide.
+ The "systemui_behavior" value is of enum type "systemui_behavior".
+ </description>
+ <arg name="systemui_behavior" type="int" enum="systemui_behavior"/>
+ </event>
+
+ </interface>
+
+</protocol>
diff --git a/chromium.org/unstable/stylus/stylus-unstable-v2.xml b/chromium.org/unstable/stylus/stylus-unstable-v2.xml
index 9bb5022..cb3ca24 100644
--- a/chromium.org/unstable/stylus/stylus-unstable-v2.xml
+++ b/chromium.org/unstable/stylus/stylus-unstable-v2.xml
@@ -198,4 +198,3 @@
</interface>
</protocol>
-
diff --git a/chromium.org/unstable/text-input/README b/chromium.org/unstable/text-input/README
new file mode 100644
index 0000000..8f290f6
--- /dev/null
+++ b/chromium.org/unstable/text-input/README
@@ -0,0 +1,4 @@
+Extensions of text_input protocol.
+
+Maintainers:
+Hidehiko Abe <hidehiko@chromium.org>
diff --git a/chromium.org/unstable/text-input/text-input-extension-unstable-v1.xml b/chromium.org/unstable/text-input/text-input-extension-unstable-v1.xml
new file mode 100644
index 0000000..5b777b4
--- /dev/null
+++ b/chromium.org/unstable/text-input/text-input-extension-unstable-v1.xml
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<protocol name="text_input_extension_unstable_v1">
+
+ <copyright>
+ Copyright 2021 The Chromium Authors.
+
+ Permission is hereby granted, free of charge, to any person obtaining a
+ copy of this software and associated documentation files (the "Software"),
+ to deal in the Software without restriction, including without limitation
+ the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ and/or sell copies of the Software, and to permit persons to whom the
+ Software is furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice (including the next
+ paragraph) shall be included in all copies or substantial portions of the
+ Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ DEALINGS IN THE SOFTWARE.
+ </copyright>
+
+ <interface name="zcr_text_input_extension_v1" version="1">
+ <description summary="extends text_input to support richer operations">
+ Allows a text_input to sends more variation of operations to support
+ richer features, such as set_preedit_region.
+
+ Warning! The protocol described in this file is experimental and
+ backward incompatible changes may be made. Backward compatible changes
+ may be added together with the corresponding uinterface version bump.
+ Backward incompatible changes are done by bumping the version number in
+ the protocol and interface names and resetting the interface version.
+ Once the protocol is to be declared stable, the 'z' prefix and the
+ version number in the protocol and interface names are removed and the
+ interface version number is reset.
+ </description>
+
+ <enum name="error">
+ <entry name="extended_text_input_exists" value="0"
+ summary="the text_input already has an extended_text_input object associated"/>
+ </enum>
+
+ <request name="get_extended_text_input">
+ <description summary="get extended_text_input for a text_input">
+ Create extended_text_input object.
+ See zcr_extended_text_input interface for details.
+ If the given text_input object already has a extended_text_input object
+ associated, the extended_text_input_exists protocol error is raised.
+ </description>
+ <arg name="id" type="new_id" interface="zcr_extended_text_input_v1"/>
+ <arg name="text_input" type="object" interface="zwp_text_input_v1"/>
+ </request>
+ </interface>
+
+ <interface name="zcr_extended_text_input_v1" version="1">
+ <description summary="extension of text_input protocol">
+ The zcr_extended_text_input_v1 interface extends the text_input interface
+ to support more rich operations on text_input.
+ </description>
+
+ <request name="destroy" type="destructor">
+ <description summary="destroy extended_text_input object"/>
+ </request>
+
+ <event name="set_preedit_region">
+ <description summary="set preedit from the surrounding text">
+ IME requests to update text_input client to set the preedit
+ from the surrounding text.
+
+ index is the starting point of the preedit, relative to the current
+ cursor position in utf-8 byte-offset.
+ length is the length of the preedit region in utf-8 byte length.
+
+ Following the convention we have in text_input::preedit_string,
+ text_input::preedit_styling sent just before this will be applied.
+ </description>
+ <arg name="index" type="int" />
+ <arg name="length" type="uint" />
+ </event>
+
+ </interface>
+</protocol>