Web Inspector: introduce Page.captureScreenshot
[WebKit-https.git] / Source / WebKit / chromium / public / WebDevToolsAgent.h
index 9f1d53f..e97b902 100644 (file)
@@ -47,6 +47,12 @@ struct WebURLError;
 
 class WebDevToolsAgent {
 public:
+    // Hint for the browser on the data it should prepare for message patching.
+    enum BrowserDataHint {
+        BrowserDataHintNone = 0,
+        BrowserDataHintScreenshot = 1,
+    };
+
     virtual ~WebDevToolsAgent() {}
 
     // Returns WebKit WebInspector protocol version.
@@ -66,7 +72,7 @@ public:
     virtual void inspectElementAt(const WebPoint&) = 0;
     virtual void setProcessId(long) = 0;
 
-    // Exposed for LayoutTestController.
+    // Exposed for TestRunner.
     virtual void evaluateInWebInspector(long callId, const WebString& script) = 0;
 
     class MessageDescriptor {
@@ -80,9 +86,19 @@ public:
     WEBKIT_EXPORT static bool shouldInterruptForMessage(const WebString&);
     WEBKIT_EXPORT static void processPendingMessages();
 
-    // Returns a disconnect event that can be dispatched on the front-end
+    // Returns an Inspector.detached event that can be dispatched on the front-end by the embedder.
+    WEBKIT_EXPORT static WebString inspectorDetachedEvent(const WebString& reason);
+
+    // Returns a Worker.disconnectedFromWorker event that can be dispatched on the front-end
     // in order to let it know that it has disconnected from the agent.
-    WEBKIT_EXPORT static WebString disconnectEventAsText();
+    WEBKIT_EXPORT static WebString workerDisconnectedFromWorkerEvent();
+
+    // Determines whether given message response should be patch with the data calculatd in browser.
+    // Returns the hint on the data browser should prepare for patching.
+    WEBKIT_EXPORT static BrowserDataHint shouldPatchWithBrowserData(const char* message, size_t messageLength);
+
+    // Patches message response with the data calculated in browser.
+    WEBKIT_EXPORT static WebString patchWithBrowserData(const WebString& message, BrowserDataHint, const WebString& hintData);
 };
 
 } // namespace WebKit