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>
