Merge e3de05290ececda045a1cfe7db577a835eafb2cf on remote branch

Change-Id: I1092ec40b0a596de9406f6f17dc4e5311db1d093
diff --git a/chromium.org/unstable/gaming-input/gaming-input-unstable-v2.xml b/chromium.org/unstable/gaming-input/gaming-input-unstable-v2.xml
index 7c70e4d..3f9a74c 100644
--- a/chromium.org/unstable/gaming-input/gaming-input-unstable-v2.xml
+++ b/chromium.org/unstable/gaming-input/gaming-input-unstable-v2.xml
@@ -24,7 +24,7 @@
     DEALINGS IN THE SOFTWARE.
   </copyright>
 
-  <interface name="zcr_gaming_input_v2" version="1">
+  <interface name="zcr_gaming_input_v2" version="2">
     <description summary="extends wl_seat with gaming input devices">
       A global interface to provide gaming input devices for a given seat.
 
@@ -98,7 +98,7 @@
     </event>
   </interface>
 
-  <interface name="zcr_gamepad_v2" version="1">
+  <interface name="zcr_gamepad_v2" version="2">
     <description summary="gamepad input device">
       The zcr_gamepad_v2 interface represents one or more gamepad input devices,
       which are reported as a normalized 'Standard Gamepad' as it is specified
@@ -106,7 +106,10 @@
     </description>
 
     <request name="destroy" type="destructor">
-      <description summary="destroy gamepad object"/>
+      <description summary="destroy gamepad">
+        Destroy gamepad. Instances created from this gamepad are unaffected
+        and should be destroyed separately.
+      </description>
     </request>
 
     <event name="removed">
@@ -191,5 +194,51 @@
         gamepad_added_with_device_info.
       </description>
     </event>
+
+    <!-- added since v2 -->
+    <event name="vibrator_added" since="2">
+      <description summary="a vibrator is added">
+        Adds a vibrator to the gamepad. Only called if server has verified
+        that gamepad has a vibrator. The vibrator(s) for a gamepad are expected
+        to be added before the "activated" event is called.
+      </description>
+      <arg name="vibrator" type="new_id" interface="zcr_gamepad_vibrator_v2" summary="the gamepad vibrator"/>
+    </event>
+  </interface>
+
+  <interface name="zcr_gamepad_vibrator_v2" version="2">
+    <description summary="vibrator interface for a gamepad">
+      An interface that provides access to the vibrator of a gamepad. Requests can be
+      sent to make the gamepad vibrate and to stop an ongoing vibration.
+    </description>
+
+    <request name="vibrate" since="2">
+      <description summary="triggers the vibration event">
+        Triggers the vibration event on the gamepad vibrator. The gamepad is only allowed to
+        vibrate while the window is in focus. The values in the timings array are 64-bit integers
+        and the values in the amplitudes array are unsigned 8-bit integers.
+        The timings array and the amplitudes array are of the same length.
+        For each timing/amplitude pair, the amplitude determines the strength of
+        the vibration and the timing determines the length of the vibration in milliseconds.
+        Amplitude values must be between 0 and 255. An amplitude of 0 implies no vibration
+        and any timing/amplitude pair with a timing value of 0 is ignored.
+        The repeat argument determines the index at which the vibration pattern to repeat begins.
+        A repeat value of -1 disables repetition. If repetition is enabled, the vibration
+        pattern will repeat indefinitely until stopped, or when focus is lost.
+      </description>
+      <arg name="timings" type="array" summary="array of timing values" />
+      <arg name="amplitudes" type="array" summary="array of amplitude values" />
+      <arg name="repeat" type="int" summary="index into the timings array at which to repeat" />
+    </request>
+
+    <request name="cancel_vibration" since="2">
+      <description summary="cancels the existing vibration event">
+        Cancels the currently ongoing vibration event on the gamepad vibrator.
+      </description>
+    </request>
+
+    <request name="destroy" type="destructor" since="2">
+      <description summary="destroy gamepad vibrator"/>
+    </request>
   </interface>
 </protocol>
diff --git a/chromium.org/unstable/notification-shell/README b/chromium.org/unstable/notification-shell/README
new file mode 100644
index 0000000..01dc8cf
--- /dev/null
+++ b/chromium.org/unstable/notification-shell/README
@@ -0,0 +1,4 @@
+Notification shell protocol
+
+Maintainers:
+Tetsui Ohkubo <tetsui@chromium.org>
diff --git a/chromium.org/unstable/notification-shell/notification-shell-unstable-v1.xml b/chromium.org/unstable/notification-shell/notification-shell-unstable-v1.xml
new file mode 100644
index 0000000..597f59a
--- /dev/null
+++ b/chromium.org/unstable/notification-shell/notification-shell-unstable-v1.xml
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<protocol name="notification_shell_unstable_v1">
+
+  <copyright>
+    Copyright 2018 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 desktop notifications">
+    notification_shell allows clients to create desktop notification on host.
+
+    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_notification_shell_v1" version="1">
+    <description summary="A notification window">
+      An interface that is used for creating desktop notification on host.
+    </description>
+
+    <enum name="error">
+      <entry name="invalid_notification_key" value="1"
+	     summary="invalid notification key"/>
+    </enum>
+
+    <request name="create_notification">
+      <description summary="create a desktop notification from plain text">
+	Creates a desktop notification from plain text information.
+      </description>
+      <arg name="id" type="new_id" interface="zcr_notification_shell_notification_v1"/>
+      <arg name="title" type="string" />
+      <arg name="message" type="string" />
+      <arg name="display_source" type="string" summary="textual representation of who's shown the notification"/>
+      <arg name="notification_key" type="string" />
+      <arg name="buttons" type="array" summary="array of 0-terminated button title names"/>
+    </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_shell_surface_v1"/>
+      <arg name="surface" type="object" interface="wl_surface"/>
+      <arg name="notification_key" type="string" />
+    </request>
+  </interface>
+
+  <interface name="zcr_notification_shell_surface_v1" 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">
+      <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_notification_shell_notification_v1" version="1">
+    <description summary="A notification">
+	An interface that controls the notification created by create_notification.
+    </description>
+
+    <request name="destroy" type="destructor">
+      <description summary="Destroy the notification">
+	Destroys the notification object.
+      </description>
+    </request>
+
+    <request name="close">
+      <description summary="Close the notification">
+	Closes the notification. The closed event is sent after this request.
+      </description>
+    </request>
+
+    <event name="closed">
+      <description summary="Notification is closed">
+	Notifies the notification object that the notification is closed.
+      </description>
+      <arg name="by_user" type="uint" summary="1 if notification is closed by a user"/>
+    </event>
+
+    <event name="clicked">
+      <description summary="Notification is clicked">
+	Notifies the notification object that the notification or its button is clicked.
+      </description>
+      <arg name="button_index" type="int" summary="-1 if the body of the notification is cliked as opposed to a button"/>
+    </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 08f26f4..5ade78a 100644
--- a/chromium.org/unstable/remote-shell/remote-shell-unstable-v1.xml
+++ b/chromium.org/unstable/remote-shell/remote-shell-unstable-v1.xml
@@ -38,7 +38,7 @@
     reset.
   </description>
 
-  <interface name="zcr_remote_shell_v1" version="26">
+  <interface name="zcr_remote_shell_v1" version="29">
     <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
@@ -235,9 +235,48 @@
       <arg name="identification_data" type="array" summary="EDID blob data"/>
     </event>
 
+    <!-- Version 28 additions -->
+
+    <request name="get_toast_surface" since="28">
+      <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_v1"/>
+      <arg name="surface" type="object" interface="wl_surface"/>
+    </request>
+
+    <!-- Version 29 additions -->
+
+    <event name="layout_mode" since="29">
+      <description summary="sends the layout_mode">
+	Sends the layout_mode used by the server.
+      </description>
+      <arg name="layout_mode" type="uint" summary="layout_mode enum"/>
+    </event>
+
+    <request name="get_remote_output" since="29">
+      <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_v1" summary="the new remote output interface id"/>
+      <arg name="output" type="object" interface="wl_output" summary="the output"/>
+    </request>
+
+    <request name="set_use_default_device_scale_cancellation" since="29">
+      <description summary="set use default device scale cancellation">
+	Request the compositor to use the default_device_scale_factor to undo any
+	scaling applied to the client's buffers. When this is disabled, the
+	compositor will use the device_scale_factor of the display of the buffer to
+	cancel any buffer scaling.
+      </description>
+      <arg name="use_default_device_scale_factor" type="int" summary="0 if false"/>
+    </request>
+
   </interface>
 
-  <interface name="zcr_remote_surface_v1" version="26">
+  <interface name="zcr_remote_surface_v1" version="27">
     <description summary="A desktop window">
       An interface that may be implemented by a wl_surface, for
       implementations that provide a desktop-style user interface
@@ -1055,6 +1094,14 @@
         Unset this surface the original window for the current PIP window.
       </description>
     </request>
+
+    <request name="set_system_gesture_exclusion" since="27">
+      <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>
   </interface>
 
   <interface name="zcr_notification_surface_v1" version="16">
@@ -1120,4 +1167,125 @@
     </request>
   </interface>
 
+  <interface name="zcr_toast_surface_v1" version="28">
+    <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_position">
+      <description summary="set toast bounds position">
+	Set the position of 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_position 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="display_id_hi" type="uint"/>
+      <arg name="display_id_lo" type="uint"/>
+      <arg name="x" type="int"/>
+      <arg name="y" type="int"/>
+    </request>
+
+    <request name="set_size">
+      <description summary="set toast bounds size">
+	Set the size of 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_size 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 width and height must be greater than zero.
+      </description>
+      <arg name="width" type="int"/>
+      <arg name="height" type="int"/>
+    </request>
+  </interface>
+
+  <interface name="zcr_remote_output_v1" version="29">
+    <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="29">
+      <description summary="destroy remote_output">
+	Destroy this remote_output object.
+      </description>
+    </request>
+
+    <event name="display_id" since="29">
+      <description summary="the identifier for the display">
+	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="29">
+      <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="29">
+      <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="29">
+      <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="29">
+      <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>
+
+    <event name="systemui_visibility" since="29">
+      <description summary="systemui_visibility_state for a display">
+	Sends information about whether the systemui is visible. The "systemui_visibility"
+	value is of enum type "systemui_visibility_state".
+      </description>
+      <arg name="systemui_visibility" type="int" summary="systemui_visibility_state enum"/>
+    </event>
+
+ </interface>
+
 </protocol>
+