Index: chrome/browser/extensions/extension_debugger_api.cc |
diff --git a/chrome/browser/extensions/extension_debugger_api.cc b/chrome/browser/extensions/extension_debugger_api.cc |
index 80d7970141b035107290f3a1bc0c5da978055787..c9bcb6cf4028313e449ecf043351d92f487c760d 100644 |
--- a/chrome/browser/extensions/extension_debugger_api.cc |
+++ b/chrome/browser/extensions/extension_debugger_api.cc |
@@ -22,13 +22,18 @@ |
#include "chrome/common/chrome_notification_types.h" |
#include "chrome/common/extensions/extension.h" |
#include "chrome/common/extensions/extension_error_utils.h" |
-#include "content/browser/debugger/devtools_client_host.h" |
-#include "content/browser/debugger/devtools_manager.h" |
+#include "content/public/browser/devtools_agent_host_registry.h" |
+#include "content/public/browser/devtools_client_host.h" |
+#include "content/public/browser/devtools_manager.h" |
#include "content/browser/tab_contents/tab_contents.h" |
-#include "content/common/devtools_messages.h" |
#include "content/public/browser/notification_source.h" |
#include "webkit/glue/webkit_glue.h" |
+using content::DevToolsAgentHost; |
+using content::DevToolsAgentHostRegistry; |
+using content::DevToolsClientHost; |
+using content::DevToolsManager; |
+ |
namespace keys = extension_debugger_api_constants; |
class ExtensionDevToolsClientHost : public DevToolsClientHost, |
@@ -49,7 +54,7 @@ class ExtensionDevToolsClientHost : public DevToolsClientHost, |
// DevToolsClientHost interface |
virtual void InspectedTabClosing(); |
- virtual void SendMessageToClient(const IPC::Message& msg); |
+ virtual void DispatchOnInspectorFrontend(const std::string& message); |
virtual void TabReplaced(TabContents* tab_contents); |
virtual void FrameNavigating(const std::string& url) {} |
@@ -58,7 +63,6 @@ class ExtensionDevToolsClientHost : public DevToolsClientHost, |
virtual void Observe(int type, |
const content::NotificationSource& source, |
const content::NotificationDetails& details); |
- void OnDispatchOnInspectorFrontend(const std::string& data); |
TabContents* tab_contents_; |
std::string extension_id_; |
@@ -98,8 +102,12 @@ class AttachedClientHosts { |
} |
ExtensionDevToolsClientHost* Lookup(RenderViewHost* rvh) { |
+ if (!DevToolsAgentHostRegistry::HasDevToolsAgentHost(rvh)) |
+ return NULL; |
+ DevToolsAgentHost* agent = |
+ DevToolsAgentHostRegistry::GetDevToolsAgentHost(rvh); |
DevToolsClientHost* client_host = |
- DevToolsManager::GetInstance()->GetDevToolsClientHostFor(rvh); |
+ DevToolsManager::GetInstance()->GetDevToolsClientHostFor(agent); |
std::set<DevToolsClientHost*>::iterator it = |
client_hosts_.find(client_host); |
if (it == client_hosts_.end()) |
@@ -130,9 +138,9 @@ ExtensionDevToolsClientHost::ExtensionDevToolsClientHost( |
content::Source<Profile>(profile)); |
// Attach to debugger and tell it we are ready. |
- DevToolsManager::GetInstance()->RegisterDevToolsClientHostFor( |
- tab_contents_->render_view_host(), |
- this); |
+ DevToolsAgentHost* agent = DevToolsAgentHostRegistry::GetDevToolsAgentHost( |
+ tab_contents_->render_view_host()); |
+ DevToolsManager::GetInstance()->RegisterDevToolsClientHostFor(agent, this); |
} |
ExtensionDevToolsClientHost::~ExtensionDevToolsClientHost() { |
@@ -163,22 +171,13 @@ void ExtensionDevToolsClientHost::InspectedTabClosing() { |
delete this; |
} |
-void ExtensionDevToolsClientHost::SendMessageToClient( |
- const IPC::Message& msg) { |
- IPC_BEGIN_MESSAGE_MAP(ExtensionDevToolsClientHost, msg) |
- IPC_MESSAGE_HANDLER(DevToolsClientMsg_DispatchOnInspectorFrontend, |
- OnDispatchOnInspectorFrontend); |
- IPC_MESSAGE_UNHANDLED_ERROR() |
- IPC_END_MESSAGE_MAP() |
-} |
- |
void ExtensionDevToolsClientHost::TabReplaced( |
TabContents* tab_contents) { |
tab_contents_ = tab_contents; |
} |
void ExtensionDevToolsClientHost::Close() { |
- DevToolsClientHost::NotifyCloseListener(); |
+ DevToolsManager::GetInstance()->ClientHostClosing(this); |
delete this; |
} |
@@ -196,10 +195,7 @@ void ExtensionDevToolsClientHost::SendMessageToBackend( |
std::string json_args; |
base::JSONWriter::Write(&protocol_request, false, &json_args); |
- DevToolsManager::GetInstance()->ForwardToDevToolsAgent( |
- this, |
- DevToolsAgentMsg_DispatchOnInspectorBackend(MSG_ROUTING_NONE, |
- json_args)); |
+ DevToolsManager::GetInstance()->DispatchOnInspectorBackend(this, json_args); |
} |
void ExtensionDevToolsClientHost::Observe( |
@@ -210,14 +206,14 @@ void ExtensionDevToolsClientHost::Observe( |
Close(); |
} |
-void ExtensionDevToolsClientHost::OnDispatchOnInspectorFrontend( |
- const std::string& data) { |
+void ExtensionDevToolsClientHost::DispatchOnInspectorFrontend( |
+ const std::string& message) { |
Profile* profile = |
Profile::FromBrowserContext(tab_contents_->browser_context()); |
if (profile == NULL || !profile->GetExtensionEventRouter()) |
return; |
- scoped_ptr<Value> result(base::JSONReader::Read(data, false)); |
+ scoped_ptr<Value> result(base::JSONReader::Read(message, false)); |
if (!result->IsType(Value::TYPE_DICTIONARY)) |
return; |
DictionaryValue* dictionary = static_cast<DictionaryValue*>(result.get()); |
@@ -314,8 +310,10 @@ bool AttachDebuggerFunction::RunImpl() { |
return false; |
} |
+ DevToolsAgentHost* agent = DevToolsAgentHostRegistry::GetDevToolsAgentHost( |
+ contents_->render_view_host()); |
DevToolsClientHost* client_host = DevToolsManager::GetInstance()-> |
- GetDevToolsClientHostFor(contents_->render_view_host()); |
+ GetDevToolsClientHostFor(agent); |
if (client_host != NULL) { |
error_ = ExtensionErrorUtils::FormatErrorMessage( |