Web Inspector: introduce Page.captureScreenshot
[WebKit-https.git] / Source / WebKit / chromium / public / WebDevToolsAgent.h
index 5eefa57..e97b902 100644 (file)
@@ -31,7 +31,7 @@
 #ifndef WebDevToolsAgent_h
 #define WebDevToolsAgent_h
 
-#include "WebCommon.h"
+#include "platform/WebCommon.h"
 
 namespace WebKit {
 class WebDevToolsAgentClient;
@@ -47,30 +47,33 @@ 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.
+    WEBKIT_EXPORT static WebString inspectorProtocolVersion();
+
+    // Returns true if and only if the given protocol version is supported by the WebKit Web Inspector.
+    WEBKIT_EXPORT static bool supportsInspectorProtocolVersion(const WebString& version);
+
     virtual void attach() = 0;
+    virtual void reattach(const WebString& savedState) = 0;
     virtual void detach() = 0;
-    virtual void frontendLoaded() = 0;
 
     virtual void didNavigate() = 0;
 
     virtual void dispatchOnInspectorBackend(const WebString& message) = 0;
 
     virtual void inspectElementAt(const WebPoint&) = 0;
-    virtual void setRuntimeProperty(const WebString& name, const WebString& value) = 0;
+    virtual void setProcessId(long) = 0;
 
-    // Exposed for LayoutTestController.
+    // Exposed for TestRunner.
     virtual void evaluateInWebInspector(long callId, const WebString& script) = 0;
-    virtual void setTimelineProfilingEnabled(bool enabled) = 0;
-
-    // Asynchronously executes debugger command in the render thread.
-    // |callerIdentifier| will be used for sending response.
-    WEBKIT_API static void executeDebuggerCommand(
-        const WebString& command, int callerIdentifier);
-
-    // Asynchronously request debugger to pause immediately.
-    WEBKIT_API static void debuggerPauseScript();
 
     class MessageDescriptor {
     public:
@@ -79,29 +82,23 @@ public:
         virtual WebString message() = 0;
     };
     // Asynchronously request debugger to pause immediately and run the command.
-    WEBKIT_API static void interruptAndDispatch(MessageDescriptor*);
-    WEBKIT_API static bool shouldInterruptForMessage(const WebString&);
-    WEBKIT_API static void processPendingMessages();
-
-    typedef void (*MessageLoopDispatchHandler)();
-
-    // Installs dispatch handle that is going to be called periodically
-    // while on a breakpoint.
-    WEBKIT_API static void setMessageLoopDispatchHandler(MessageLoopDispatchHandler);
+    WEBKIT_EXPORT static void interruptAndDispatch(MessageDescriptor*);
+    WEBKIT_EXPORT static bool shouldInterruptForMessage(const WebString&);
+    WEBKIT_EXPORT static void processPendingMessages();
 
-    // FIXME: remove once not used downstream.
-    virtual void identifierForInitialRequest(unsigned long resourceId, WebFrame*, const WebURLRequest&) = 0;
-    virtual void willSendRequest(unsigned long resourceId, WebURLRequest&) = 0;
+    // Returns an Inspector.detached event that can be dispatched on the front-end by the embedder.
+    WEBKIT_EXPORT static WebString inspectorDetachedEvent(const WebString& reason);
 
-    virtual void willSendRequest(unsigned long resourceId, WebFrame*, WebURLRequest&) = 0;
-    virtual void didReceiveData(unsigned long resourceId, int dataLength, int lengthReceived) = 0;
+    // 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 workerDisconnectedFromWorkerEvent();
 
-    // FIXME(vsevik): remove once not used downstream
-    virtual void didReceiveData(unsigned long resourceId, int length) = 0;
+    // 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);
 
-    virtual void didReceiveResponse(unsigned long resourceId, const WebURLResponse&) = 0;
-    virtual void didFinishLoading(unsigned long resourceId) = 0;
-    virtual void didFailLoading(unsigned long resourceId, const WebURLError&) = 0;
+    // Patches message response with the data calculated in browser.
+    WEBKIT_EXPORT static WebString patchWithBrowserData(const WebString& message, BrowserDataHint, const WebString& hintData);
 };
 
 } // namespace WebKit