Index: content/public/browser/devtools_agent_host.h |
diff --git a/content/public/browser/devtools_agent_host.h b/content/public/browser/devtools_agent_host.h |
index dd18a53886b177a6fce02e3e1777d2564c224c3d..3d88b83efba249602c0676bcc56d032bc530e303 100644 |
--- a/content/public/browser/devtools_agent_host.h |
+++ b/content/public/browser/devtools_agent_host.h |
@@ -9,6 +9,7 @@ |
#include <vector> |
#include "base/basictypes.h" |
+#include "base/callback.h" |
#include "base/memory/ref_counted.h" |
#include "content/common/content_export.h" |
@@ -22,6 +23,20 @@ class WebContents; |
class CONTENT_EXPORT DevToolsAgentHost |
: public base::RefCounted<DevToolsAgentHost> { |
public: |
+ // Client can attach to the agent host and start inspecting it. |
+ class Client { |
jam
2014/08/08 01:23:28
nit: move this to a separate header and call it De
dgozman
2014/08/08 11:51:55
Done.
|
+ public: |
+ virtual ~Client() {} |
+ |
+ // Dispatches given protocol message on the client. |
+ virtual void DispatchProtocolMessage(DevToolsAgentHost* agent_host, |
+ const std::string& message) = 0; |
+ |
+ // This method is called when attached agent host is closed. |
+ virtual void AgentHostClosed(DevToolsAgentHost* agent_host, |
+ bool replaced_with_another_client) = 0; |
+ }; |
+ |
// Returns DevToolsAgentHost with a given |id| or NULL of it does not exist. |
static scoped_refptr<DevToolsAgentHost> GetForId(const std::string& id); |
@@ -54,9 +69,18 @@ class CONTENT_EXPORT DevToolsAgentHost |
// Returns a list of all existing RenderViewHost's that can be debugged. |
static std::vector<RenderViewHost*> GetValidRenderViewHosts(); |
+ // Client attaches to this agent host to start debugging it. |
+ virtual void AttachClient(Client* client) = 0; |
+ |
+ // Already attached client detaches from this agent host to stop debugging it. |
+ virtual void DetachClient() = 0; |
+ |
// Returns true if there is a client attached. |
virtual bool IsAttached() = 0; |
+ // Sends a message to the agent. |
+ virtual void DispatchOnInspectorBackend(const std::string& message) = 0; |
pfeldman
2014/08/07 17:31:14
I wish we could rename it to DispatchProtocolMessa
dgozman
2014/08/08 11:51:56
Done.
|
+ |
// Starts inspecting element at position (|x|, |y|) in the specified page. |
virtual void InspectElement(int x, int y) = 0; |
@@ -76,6 +100,15 @@ class CONTENT_EXPORT DevToolsAgentHost |
// Returns true if DevToolsAgentHost is for worker. |
virtual bool IsWorker() const = 0; |
+ // Terminates all debugging sessions and detaches all clients. |
+ static void DetachAllClients(); |
+ |
+ typedef base::Callback<void(DevToolsAgentHost*, bool attached)> |
+ AgentStateCallback; |
+ |
+ static void AddAgentStateCallback(const AgentStateCallback& callback); |
+ static void RemoveAgentStateCallback(const AgentStateCallback& callback); |
+ |
protected: |
friend class base::RefCounted<DevToolsAgentHost>; |
virtual ~DevToolsAgentHost() {} |