Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / content / browser / devtools / renderer_overrides_handler.h
index cce3276..b8bf255 100644 (file)
@@ -7,12 +7,15 @@
 
 #include "base/basictypes.h"
 #include "base/compiler_specific.h"
+#include "base/memory/ref_counted_memory.h"
 #include "base/memory/scoped_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "base/time/time.h"
 #include "cc/output/compositor_frame_metadata.h"
 #include "content/browser/devtools/devtools_protocol.h"
 #include "content/common/content_export.h"
+#include "content/public/browser/render_widget_host.h"
+#include "third_party/skia/include/core/SkBitmap.h"
 
 class SkBitmap;
 
@@ -20,10 +23,14 @@ namespace IPC {
 class Message;
 }
 
+namespace blink {
+class WebMouseEvent;
+}
+
 namespace content {
 
-class DevToolsAgentHost;
 class DevToolsTracingHandler;
+class RenderViewHostImpl;
 
 // Overrides Inspector commands before they are sent to the renderer.
 // May override the implementation completely, ignore it, or handle
@@ -31,25 +38,36 @@ class DevToolsTracingHandler;
 class CONTENT_EXPORT RendererOverridesHandler
     : public DevToolsProtocol::Handler {
  public:
-  explicit RendererOverridesHandler(DevToolsAgentHost* agent);
+  RendererOverridesHandler();
   virtual ~RendererOverridesHandler();
 
   void OnClientDetached();
   void OnSwapCompositorFrame(const cc::CompositorFrameMetadata& frame_metadata);
   void OnVisibilityChanged(bool visible);
+  void SetRenderViewHost(RenderViewHostImpl* host);
+  void ClearRenderViewHost();
+  void DidAttachInterstitialPage();
+  void DidDetachInterstitialPage();
 
  private:
   void InnerSwapCompositorFrame();
-  void ParseCaptureParameters(DevToolsProtocol::Command* command,
-                              std::string* format, int* quality,
-                              double* scale);
 
   // DOM domain.
   scoped_refptr<DevToolsProtocol::Response>
       GrantPermissionsForSetFileInputFiles(
           scoped_refptr<DevToolsProtocol::Command> command);
 
+  // Network domain.
+  scoped_refptr<DevToolsProtocol::Response> CanEmulateNetworkConditions(
+      scoped_refptr<DevToolsProtocol::Command> command);
+  scoped_refptr<DevToolsProtocol::Response> ClearBrowserCache(
+      scoped_refptr<DevToolsProtocol::Command> command);
+  scoped_refptr<DevToolsProtocol::Response> ClearBrowserCookies(
+      scoped_refptr<DevToolsProtocol::Command> command);
+
   // Page domain.
+  scoped_refptr<DevToolsProtocol::Response> PageEnable(
+      scoped_refptr<DevToolsProtocol::Command> command);
   scoped_refptr<DevToolsProtocol::Response> PageDisable(
       scoped_refptr<DevToolsProtocol::Command> command);
   scoped_refptr<DevToolsProtocol::Response> PageHandleJavaScriptDialog(
@@ -62,8 +80,12 @@ class CONTENT_EXPORT RendererOverridesHandler
       scoped_refptr<DevToolsProtocol::Command> command);
   scoped_refptr<DevToolsProtocol::Response> PageNavigateToHistoryEntry(
       scoped_refptr<DevToolsProtocol::Command> command);
+  scoped_refptr<DevToolsProtocol::Response> PageSetTouchEmulationEnabled(
+      scoped_refptr<DevToolsProtocol::Command> command);
   scoped_refptr<DevToolsProtocol::Response> PageCaptureScreenshot(
       scoped_refptr<DevToolsProtocol::Command> command);
+  scoped_refptr<DevToolsProtocol::Response> PageCanEmulate(
+      scoped_refptr<DevToolsProtocol::Command> command);
   scoped_refptr<DevToolsProtocol::Response> PageCanScreencast(
       scoped_refptr<DevToolsProtocol::Command> command);
   scoped_refptr<DevToolsProtocol::Response> PageStartScreencast(
@@ -72,9 +94,15 @@ class CONTENT_EXPORT RendererOverridesHandler
       scoped_refptr<DevToolsProtocol::Command> command);
   scoped_refptr<DevToolsProtocol::Response> PageQueryUsageAndQuota(
       scoped_refptr<DevToolsProtocol::Command>);
+  scoped_refptr<DevToolsProtocol::Response> PageSetColorPickerEnabled(
+      scoped_refptr<DevToolsProtocol::Command>);
 
   void ScreenshotCaptured(
       scoped_refptr<DevToolsProtocol::Command> command,
+      const unsigned char* png_data,
+      size_t png_size);
+
+  void ScreencastFrameCaptured(
       const std::string& format,
       int quality,
       const cc::CompositorFrameMetadata& metadata,
@@ -86,18 +114,32 @@ class CONTENT_EXPORT RendererOverridesHandler
      scoped_ptr<base::DictionaryValue> response_data);
 
   void NotifyScreencastVisibility(bool visible);
+  void SetColorPickerEnabled(bool enabled);
+  void UpdateColorPickerFrame();
+  void ResetColorPickerFrame();
+  void ColorPickerFrameUpdated(bool succeeded, const SkBitmap& bitmap);
+  bool HandleMouseEvent(const blink::WebMouseEvent& event);
+  void UpdateColorPickerCursor();
 
   // Input domain.
-  scoped_refptr<DevToolsProtocol::Response> InputDispatchMouseEvent(
-      scoped_refptr<DevToolsProtocol::Command> command);
-  scoped_refptr<DevToolsProtocol::Response> InputDispatchGestureEvent(
+  scoped_refptr<DevToolsProtocol::Response> InputEmulateTouchFromMouseEvent(
       scoped_refptr<DevToolsProtocol::Command> command);
 
-  DevToolsAgentHost* agent_;
+  void UpdateTouchEventEmulationState();
+
+  RenderViewHostImpl* host_;
+  bool page_domain_enabled_;
   scoped_refptr<DevToolsProtocol::Command> screencast_command_;
+  bool has_last_compositor_frame_metadata_;
   cc::CompositorFrameMetadata last_compositor_frame_metadata_;
   base::TimeTicks last_frame_time_;
   int capture_retry_count_;
+  bool touch_emulation_enabled_;
+  bool color_picker_enabled_;
+  SkBitmap color_picker_frame_;
+  int last_cursor_x_;
+  int last_cursor_y_;
+  RenderWidgetHost::MouseEventCallback mouse_event_callback_;
   base::WeakPtrFactory<RendererOverridesHandler> weak_factory_;
   DISALLOW_COPY_AND_ASSIGN(RendererOverridesHandler);
 };