Track upstream changes.

Effecting CL: https://codereview.chromium.org/25415007
Add support for tooltip.

This patch adds support for creating tooltip in DesktopRootWindowHostWayland.
Pushing it unreviewed as it is needed to fix crash with master.
wayland/inputs: Change WaylandCursorData constructor and destructor

It was using a funny "static WaylandCursorData" via Initialize() and
now I've changed it for using the more conventional way through the
class name constructor. Also Clear() was dropped in favor to the
destructor.

Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>

The patch was imported from https://github.com/tiagovignatti/ozone-wayland/
as of commit id 5bfabfad130b639b4215e57c11acccd003d4c429.

Change had fixed the crash associated with WaylandCursor
deletion but has a potential for memory leak. These changes
ensure that only one instance of CursorData is created.

Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Add SetGeometry API for DesktopScreenWayland.

Geometry of screen is needed for various api calls. Instead of having to
convert it from Display spec everytime, we can cache it locally. The
patch adds SetGeometry api, which can be used by Display to set the
geometry every time OutputSize changes.

Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>

The patch was imported from https://github.com/kalyankondapally/ozone-wayland/
as of commit id e5c1b62be1e21cd3b8d0c78072f387e72816da5e.

Rebase to latest Master branch.

The patch was imported from https://github.com/tiagovignatti/ozone-wayland/
as of commit id bdccfdeadc3d45e4e2b974cd3fe2c8b9e0df0a6e.

Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
impl: Implement LookAheadOutputGeometry to anticipate output properties

Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>

The patch was imported from https://github.com/tiagovignatti/ozone-wayland/
as of commit id 1254ac24c38387757f760a67e912fde6832bfe70.

Following changes have been done from the original patch:
1)Rebase to latest master branch.
2)Replace bool usage with enum in display constructor.
3)Avoid creating DesktopScreen on GPU side.
4)Move wayland related calls from OzoneDisplay to WaylandDisplay.
5)Avoid round trip to display if the screen geometry is already known.

Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Add DChecks in DesktopScreenWayland.
impl: OzoneDisplay::OnChannelEstablished shouldn't send old data.

Once the channel is established, the browser process already has been
running for awhile and the output geometries in question were already
accessed by the UI. So it's just useless to dispatch a late
OutputSizeChanged.

Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>

The patch was imported from https://github.com/tiagovignatti/ozone-wayland/
as of commit id ffd065d.

Rebased.

Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Merge pull request #104 from tiagovignatti/output-review_authorship-fixed

Output review authorship fixed
ipc: Start host channel handshake earlier

BrowserChildProcessHostConnected notification, that's executed by the runner
loop, is too late as well to start the GPU and browser process handshaking.

Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>

The patch was imported from https://github.com/tiagovignatti/ozone-wayland/
as of commit id 6922a2951b9c1a1c4f3fb6369e7e4bfa57d133df.

Removed comments as they are no more related to IPCHandShake.

Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Using ChildProcessObserver to observe for channel closage is unnecessary.

DisplayChannelHost is now already informed by GPUProcessHost as to
when the channel is being closed. We can use this to track when
channel is closed instead of relying on that information from
ChildProcessObserver. This patch makes changes in this direction.
Remove ChildProcessObserver.

We dont depend on ChildProcessObserver to initialize or close
IPC channel. This patch removes the class.
Register IPC Channel immediately after GPU thread is created.

Currently, we initiate the IPC channel communication in
RealizeAcceleratedWidget. This patch changes so that the IPC
communication is initiated as soon as GPU thread is created.
Remove un-necessary member variable in display channel.

We have two different member variables display_fd_ and route_id_ to
store route id's. This patch removes the usage of display_fd_.
Remove obsolete api in OzoneDisplay.

This patch removes the usage of OnChannelEstablished api. Here
we dont do anything except setting the state of the connection.
With recent changes, state is not used by OzoneDisplay. This
patch cleans up the related unused code.
Add DChecks in DisplayChannel.

This patch adds DChecks to Display channel as we should not
try to register the channel before GPUChildThread is created
and set as main thread.
Remove WaylandMsg_DisplayChannelEstablished usage.

With recent changes, connections on Browser process and GPU
process happen in an early phase. we dont depend on an acknowledgement
from Browser process to ensure that the connection has been
established. This patch removes WaylandMsg_DisplayChannelEstablished
as we dont depend on this message anymore.