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

Unified Diff: chrome/browser/extensions/api/debugger/debugger_api.cc

Issue 467653002: Revert of [DevTools] Make DevTools clients talk directly to DevToolsAgentHost instead of using DevToolsManage… (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 4 months 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
« no previous file with comments | « chrome/browser/devtools/devtools_window.cc ('k') | chrome/browser/prerender/prerender_browsertest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/extensions/api/debugger/debugger_api.cc
diff --git a/chrome/browser/extensions/api/debugger/debugger_api.cc b/chrome/browser/extensions/api/debugger/debugger_api.cc
index 1bacc59cd46101c407165732caa9e1feec6343de..aaf3b9411d8511874e5a8af409dd918707a6926f 100644
--- a/chrome/browser/extensions/api/debugger/debugger_api.cc
+++ b/chrome/browser/extensions/api/debugger/debugger_api.cc
@@ -31,7 +31,9 @@
#include "components/infobars/core/confirm_infobar_delegate.h"
#include "components/infobars/core/infobar.h"
#include "content/public/browser/devtools_agent_host.h"
+#include "content/public/browser/devtools_client_host.h"
#include "content/public/browser/devtools_http_handler.h"
+#include "content/public/browser/devtools_manager.h"
#include "content/public/browser/notification_service.h"
#include "content/public/browser/notification_source.h"
#include "content/public/browser/render_process_host.h"
@@ -55,7 +57,9 @@
#include "ui/base/l10n/l10n_util.h"
using content::DevToolsAgentHost;
+using content::DevToolsClientHost;
using content::DevToolsHttpHandler;
+using content::DevToolsManager;
using content::RenderProcessHost;
using content::RenderViewHost;
using content::RenderWidgetHost;
@@ -73,7 +77,7 @@
// ExtensionDevToolsClientHost ------------------------------------------------
-class ExtensionDevToolsClientHost : public content::DevToolsAgentHostClient,
+class ExtensionDevToolsClientHost : public DevToolsClientHost,
public content::NotificationObserver,
public ExtensionRegistryObserver {
public:
@@ -87,7 +91,6 @@
virtual ~ExtensionDevToolsClientHost();
const std::string& extension_id() { return extension_id_; }
- DevToolsAgentHost* agent_host() { return agent_host_.get(); }
void Close();
void SendMessageToBackend(DebuggerSendCommandFunction* function,
const std::string& method,
@@ -96,13 +99,10 @@
// Marks connection as to-be-terminated by the user.
void MarkAsDismissed();
- // DevToolsAgentHostClient interface.
- virtual void AgentHostClosed(
- DevToolsAgentHost* agent_host,
- bool replaced_with_another_client) OVERRIDE;
- virtual void DispatchProtocolMessage(
- DevToolsAgentHost* agent_host,
- const std::string& message) OVERRIDE;
+ // DevToolsClientHost interface
+ virtual void InspectedContentsClosing() OVERRIDE;
+ virtual void DispatchOnInspectorFrontend(const std::string& message) OVERRIDE;
+ virtual void ReplacedWithAnotherClient() OVERRIDE;
private:
void SendDetachedEvent();
@@ -289,10 +289,11 @@
ExtensionDevToolsClientHost* AttachedClientHosts::Lookup(
DevToolsAgentHost* agent_host,
const std::string& extension_id) {
+ DevToolsManager* manager = DevToolsManager::GetInstance();
for (ClientHosts::iterator it = client_hosts_.begin();
it != client_hosts_.end(); ++it) {
ExtensionDevToolsClientHost* client_host = *it;
- if (client_host->agent_host() == agent_host &&
+ if (manager->GetDevToolsAgentHostFor(client_host) == agent_host &&
client_host->extension_id() == extension_id)
return client_host;
}
@@ -333,7 +334,8 @@
content::NotificationService::AllSources());
// Attach to debugger and tell it we are ready.
- agent_host_->AttachClient(this);
+ DevToolsManager::GetInstance()->RegisterDevToolsClientHostFor(
+ agent_host_.get(), this);
if (infobar_) {
static_cast<ExtensionDevToolsInfoBarDelegate*>(
@@ -361,18 +363,18 @@
AttachedClientHosts::GetInstance()->Remove(this);
}
-// DevToolsAgentHostClient implementation.
-void ExtensionDevToolsClientHost::AgentHostClosed(
- DevToolsAgentHost* agent_host, bool replaced_with_another_client) {
- DCHECK(agent_host == agent_host_.get());
- if (replaced_with_another_client)
- detach_reason_ = OnDetach::REASON_REPLACED_WITH_DEVTOOLS;
+// DevToolsClientHost interface
+void ExtensionDevToolsClientHost::InspectedContentsClosing() {
SendDetachedEvent();
delete this;
}
+void ExtensionDevToolsClientHost::ReplacedWithAnotherClient() {
+ detach_reason_ = OnDetach::REASON_REPLACED_WITH_DEVTOOLS;
+}
+
void ExtensionDevToolsClientHost::Close() {
- agent_host_->DetachClient();
+ DevToolsManager::GetInstance()->ClientHostClosing(this);
delete this;
}
@@ -392,7 +394,7 @@
std::string json_args;
base::JSONWriter::Write(&protocol_request, &json_args);
- agent_host_->DispatchProtocolMessage(json_args);
+ DevToolsManager::GetInstance()->DispatchOnInspectorBackend(this, json_args);
}
void ExtensionDevToolsClientHost::MarkAsDismissed() {
@@ -440,9 +442,8 @@
}
}
-void ExtensionDevToolsClientHost::DispatchProtocolMessage(
- DevToolsAgentHost* agent_host, const std::string& message) {
- DCHECK(agent_host == agent_host_.get());
+void ExtensionDevToolsClientHost::DispatchOnInspectorFrontend(
+ const std::string& message) {
if (!EventRouter::Get(profile_))
return;
« no previous file with comments | « chrome/browser/devtools/devtools_window.cc ('k') | chrome/browser/prerender/prerender_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698