Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / win8 / metro_driver / chrome_app_view_ash.h
index 102d010..0a88fad 100644 (file)
@@ -13,6 +13,8 @@
 #include "base/memory/scoped_ptr.h"
 #include "base/message_loop/message_loop.h"
 #include "base/strings/string16.h"
+#include "base/threading/thread.h"
+#include "ipc/ipc_listener.h"
 #include "ui/events/event_constants.h"
 #include "win8/metro_driver/direct3d_helper.h"
 #include "win8/metro_driver/ime/ime_popup_observer.h"
@@ -196,6 +198,12 @@ class ChromeAppViewAsh
   HRESULT OnSizeChanged(winui::Core::ICoreWindow* sender,
                         winui::Core::IWindowSizeChangedEventArgs* args);
 
+  // This function checks if the Chrome browser channel is initialized. If yes
+  // then it goes ahead and starts up the viewer in Chrome OS mode. If not it
+  // posts a delayed task and checks again. It does this for a duration of 10
+  // seconds and then bails.
+  void StartChromeOSMode();
+
   mswr::ComPtr<winui::Core::ICoreWindow> window_;
   mswr::ComPtr<winapp::Core::ICoreApplicationView> view_;
   EventRegistrationToken activated_token_;
@@ -220,8 +228,11 @@ class ChromeAppViewAsh
   // Set the D3D swap chain and nothing else.
   metro_driver::Direct3DHelper direct3d_helper_;
 
+  // The IPC channel IO thread.
+  scoped_ptr<base::Thread> io_thread_;
+
   // The channel to Chrome, in particular to the MetroViewerProcessHost.
-  IPC::ChannelProxy* ui_channel_;
+  scoped_ptr<IPC::ChannelProxy> ui_channel_;
 
   // The actual window behind the view surface.
   HWND core_window_hwnd_;
@@ -238,6 +249,13 @@ class ChromeAppViewAsh
   // The win32 dpi scale which is queried via GetDeviceCaps. Please refer to
   // ui/gfx/win/dpi.cc for more information.
   float win32_dpi_scale_;
+
+  // The cursor set by the chroem browser process.
+  HCURSOR last_cursor_;
+
+  // Pointer to the channel listener for the channel between the viewer and
+  // the browser.
+  IPC::Listener* channel_listener_;
 };
 
 #endif  // WIN8_METRO_DRIVER_CHROME_APP_VIEW_ASH_H_