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

Unified Diff: chrome/browser/devtools/devtools_window.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
Index: chrome/browser/devtools/devtools_window.cc
diff --git a/chrome/browser/devtools/devtools_window.cc b/chrome/browser/devtools/devtools_window.cc
index 8e4fc52d8be4eafc8b2b2bc608ab5222fd11ca06..e4445e3a894187fcd2542249a9bed0e88d1cd725 100644
--- a/chrome/browser/devtools/devtools_window.cc
+++ b/chrome/browser/devtools/devtools_window.cc
@@ -34,6 +34,8 @@
#include "components/pref_registry/pref_registry_syncable.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/devtools_agent_host.h"
+#include "content/public/browser/devtools_client_host.h"
+#include "content/public/browser/devtools_manager.h"
#include "content/public/browser/native_web_keyboard_event.h"
#include "content/public/browser/navigation_controller.h"
#include "content/public/browser/navigation_entry.h"
@@ -423,7 +425,9 @@
DevToolsWindow* window = FindDevToolsWindow(worker_agent);
if (!window) {
window = DevToolsWindow::CreateDevToolsWindowForWorker(profile);
- window->bindings_->AttachTo(worker_agent);
+ // Will disconnect the current client host if there is one.
+ content::DevToolsManager::GetInstance()->RegisterDevToolsClientHostFor(
+ worker_agent, window->bindings_);
}
window->ScheduleShow(DevToolsToggleAction::Show());
return window;
@@ -475,7 +479,8 @@
if (!window) {
window = Create(profile, DevToolsUI::GetProxyURL(frontend_url), NULL,
false, true, false, "");
- window->bindings_->AttachTo(agent_host);
+ content::DevToolsManager::GetInstance()->RegisterDevToolsClientHostFor(
+ agent_host, window->bindings_);
}
window->ScheduleShow(DevToolsToggleAction::Show());
}
@@ -488,6 +493,7 @@
const std::string& settings) {
scoped_refptr<DevToolsAgentHost> agent(
DevToolsAgentHost::GetOrCreateFor(inspected_web_contents));
+ content::DevToolsManager* manager = content::DevToolsManager::GetInstance();
DevToolsWindow* window = FindDevToolsWindow(agent.get());
bool do_open = force_open;
if (!window) {
@@ -497,7 +503,7 @@
base::UserMetricsAction("DevTools_InspectRenderer"));
window = Create(
profile, GURL(), inspected_web_contents, false, false, true, settings);
- window->bindings_->AttachTo(agent.get());
+ manager->RegisterDevToolsClientHostFor(agent.get(), window->bindings_);
do_open = true;
}
@@ -787,9 +793,10 @@
if (!agent_host || g_instances == NULL)
return NULL;
DevToolsWindows* instances = g_instances.Pointer();
+ content::DevToolsManager* manager = content::DevToolsManager::GetInstance();
for (DevToolsWindows::iterator it(instances->begin()); it != instances->end();
++it) {
- if ((*it)->bindings_->IsAttachedTo(agent_host))
+ if (manager->GetDevToolsAgentHostFor((*it)->bindings_) == agent_host)
return *it;
}
return NULL;
@@ -819,7 +826,14 @@
inspected_web_contents->OpenURL(params) : NULL;
}
- bindings_->Reattach();
+ content::DevToolsManager* manager = content::DevToolsManager::GetInstance();
+ scoped_refptr<DevToolsAgentHost> agent_host(
+ manager->GetDevToolsAgentHostFor(bindings_));
+ if (!agent_host.get())
+ return NULL;
+ manager->ClientHostClosing(bindings_);
+ manager->RegisterDevToolsClientHostFor(agent_host.get(),
+ bindings_);
content::NavigationController::LoadURLParams load_url_params(params.url);
main_web_contents_->GetController().LoadURLWithParams(load_url_params);
@@ -896,8 +910,10 @@
bool* proceed_to_fire_unload) {
if (!intercepted_page_beforeunload_) {
// Docked devtools window closed directly.
- if (proceed)
- bindings_->Detach();
+ if (proceed) {
+ content::DevToolsManager::GetInstance()->ClientHostClosing(
+ bindings_);
+ }
*proceed_to_fire_unload = proceed;
} else {
// Inspected page is attempting to close.
« no previous file with comments | « chrome/browser/devtools/devtools_ui_bindings.cc ('k') | chrome/browser/extensions/api/debugger/debugger_api.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698