Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(760)

Unified Diff: chrome/browser/extensions/extension_debugger_api.cc

Issue 8549022: Define DevTools content API (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed comments Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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(

Powered by Google App Engine
This is Rietveld 408576698