summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authoryurys@chromium.org <yurys@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-01 16:21:44 +0000
committeryurys@chromium.org <yurys@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-01 16:21:44 +0000
commit0e12d7d59d4778e1a8ef692d244bf66aea1a80b8 (patch)
tree11fd0f2f8d0ab431f59084541922d6c971876f99 /chrome
parent5581458c8b7ac9e7117d96606d74e574c41df8d6 (diff)
downloadchromium_src-0e12d7d59d4778e1a8ef692d244bf66aea1a80b8.zip
chromium_src-0e12d7d59d4778e1a8ef692d244bf66aea1a80b8.tar.gz
chromium_src-0e12d7d59d4778e1a8ef692d244bf66aea1a80b8.tar.bz2
Define DevTools content API
The API consists of the following parts: * DevToolsManager routes messages between devtools agents and clients * DevToolsAgentHost provides an abstract interface to the debuggee, currently it is either RenderViewHost or Shared Worker. Client can obtain DevToolsAgentHost from DevToolsAgentHostRegistry. * DevToolsClientHost is an API that should be implemented by DevTools front-end. There is a default Chromium implementation living in chrome/ and a remote debugging server which also implements this interface. Clients can extend it in order to provide custom front-end. There is a default DevTools front-end implementation and content/ provides a way for creating corresponding DevToolsClientHost by means of DevToolsClientHost::CreateDevToolsFrontendHost. The embedder just needs to provide a concrete delegate. * This patch also removes DevToolsHost_ForwardToAgent and DevToolsHost_ForwardToClient IPC messages which were used to forward only one message. DevTools IPC messages are now hidden behind the devtools content API. BUG=104625 TEST=Existing tests Review URL: http://codereview.chromium.org/8549022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@112473 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r--chrome/browser/DEPS2
-rw-r--r--chrome/browser/automation/automation_provider.cc1
-rw-r--r--chrome/browser/debugger/devtools_sanity_unittest.cc17
-rw-r--r--chrome/browser/debugger/devtools_window.cc74
-rw-r--r--chrome/browser/debugger/devtools_window.h26
-rw-r--r--chrome/browser/extensions/extension_debugger_api.cc52
-rw-r--r--chrome/browser/extensions/extension_devtools_bridge.cc51
-rw-r--r--chrome/browser/extensions/extension_devtools_bridge.h10
-rw-r--r--chrome/browser/extensions/extension_devtools_browsertests.cc33
-rw-r--r--chrome/browser/extensions/extension_service.cc21
-rw-r--r--chrome/browser/prerender/prerender_browsertest.cc21
-rw-r--r--chrome/browser/prerender/prerender_manager.cc4
-rw-r--r--chrome/browser/task_manager/task_manager_worker_resource_provider.cc6
-rw-r--r--chrome/browser/ui/browser.cc10
-rw-r--r--chrome/browser/ui/webui/devtools_ui.cc6
-rw-r--r--chrome/browser/ui/webui/workers_ui.cc6
16 files changed, 176 insertions, 164 deletions
diff --git a/chrome/browser/DEPS b/chrome/browser/DEPS
index 72cdae8..2d92a3a 100644
--- a/chrome/browser/DEPS
+++ b/chrome/browser/DEPS
@@ -36,8 +36,6 @@ include_rules = [
"+content/common/chrome_application_mac.h",
"+content/common/mac/scoped_sending_event.h",
"+content/common/view_messages.h",
- # TODO(pfeldman)
- "+content/common/devtools_messages.h",
# TODO(gbilock)
"+content/common/intents_messages.h",
diff --git a/chrome/browser/automation/automation_provider.cc b/chrome/browser/automation/automation_provider.cc
index a48ad44..e6ee1d1 100644
--- a/chrome/browser/automation/automation_provider.cc
+++ b/chrome/browser/automation/automation_provider.cc
@@ -79,7 +79,6 @@
#include "chrome/common/pref_names.h"
#include "chrome/common/render_messages.h"
#include "chrome/common/url_constants.h"
-#include "content/browser/debugger/devtools_manager.h"
#include "content/browser/download/download_item.h"
#include "content/browser/download/save_package.h"
#include "content/browser/renderer_host/render_view_host.h"
diff --git a/chrome/browser/debugger/devtools_sanity_unittest.cc b/chrome/browser/debugger/devtools_sanity_unittest.cc
index 9d8ceb6..cc659e6 100644
--- a/chrome/browser/debugger/devtools_sanity_unittest.cc
+++ b/chrome/browser/debugger/devtools_sanity_unittest.cc
@@ -21,20 +21,23 @@
#include "chrome/common/chrome_paths.h"
#include "chrome/test/base/in_process_browser_test.h"
#include "chrome/test/base/ui_test_utils.h"
-#include "content/browser/debugger/devtools_client_host.h"
-#include "content/browser/debugger/devtools_manager.h"
-#include "content/browser/debugger/worker_devtools_manager.h"
#include "content/browser/renderer_host/render_view_host.h"
#include "content/browser/tab_contents/tab_contents.h"
#include "content/browser/worker_host/worker_process_host.h"
#include "content/browser/worker_host/worker_service.h"
#include "content/browser/worker_host/worker_service_observer.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/public/browser/content_browser_client.h"
#include "content/public/browser/notification_registrar.h"
#include "content/public/browser/notification_service.h"
#include "net/test/test_server.h"
using content::BrowserThread;
+using content::DevToolsManager;
+using content::DevToolsAgentHost;
+using content::DevToolsAgentHostRegistry;
namespace {
@@ -145,7 +148,9 @@ class DevToolsSanityTest : public InProcessBrowserTest {
// UnregisterDevToolsClientHostFor may destroy window_ so store the browser
// first.
Browser* browser = window_->browser();
- devtools_manager->UnregisterDevToolsClientHostFor(inspected_rvh_);
+ DevToolsAgentHost* agent = DevToolsAgentHostRegistry::GetDevToolsAgentHost(
+ inspected_rvh_);
+ devtools_manager->UnregisterDevToolsClientHostFor(agent);
// Wait only when DevToolsWindow has a browser. For docked DevTools, this
// is NULL and we skip the wait.
@@ -386,12 +391,12 @@ class WorkerDevToolsSanityTest : public InProcessBrowserTest {
window_ = DevToolsWindow::CreateDevToolsWindowForWorker(profile);
window_->Show(DEVTOOLS_TOGGLE_ACTION_NONE);
DevToolsAgentHost* agent_host =
- WorkerDevToolsManager::GetDevToolsAgentHostForWorker(
+ DevToolsAgentHostRegistry::GetDevToolsAgentHostForWorker(
worker_data->worker_process_id,
worker_data->worker_route_id);
DevToolsManager::GetInstance()->RegisterDevToolsClientHostFor(
agent_host,
- window_);
+ window_->devtools_client_host());
RenderViewHost* client_rvh = window_->GetRenderViewHost();
TabContents* client_contents = client_rvh->delegate()->GetAsTabContents();
if (client_contents->IsLoading()) {
diff --git a/chrome/browser/debugger/devtools_window.cc b/chrome/browser/debugger/devtools_window.cc
index a741085..020a242 100644
--- a/chrome/browser/debugger/devtools_window.cc
+++ b/chrome/browser/debugger/devtools_window.cc
@@ -31,7 +31,6 @@
#include "chrome/common/render_messages.h"
#include "chrome/common/url_constants.h"
#include "content/browser/browsing_instance.h"
-#include "content/browser/debugger/devtools_manager.h"
#include "content/browser/in_process_webkit/session_storage_namespace.h"
#include "content/browser/load_notification_details.h"
#include "content/browser/renderer_host/render_view_host.h"
@@ -39,9 +38,9 @@
#include "content/browser/tab_contents/navigation_entry.h"
#include "content/browser/tab_contents/tab_contents.h"
#include "content/browser/tab_contents/tab_contents_view.h"
-#include "content/common/devtools_messages.h"
#include "content/public/browser/content_browser_client.h"
-#include "content/public/browser/devtools_frontend_window.h"
+#include "content/public/browser/devtools_agent_host_registry.h"
+#include "content/public/browser/devtools_manager.h"
#include "content/public/browser/notification_source.h"
#include "content/public/common/bindings_policy.h"
#include "grit/generated_resources.h"
@@ -53,6 +52,11 @@ base::LazyInstance<DevToolsWindowList,
g_instances = LAZY_INSTANCE_INITIALIZER;
} // namespace
+using content::DevToolsAgentHost;
+using content::DevToolsAgentHostRegistry;
+using content::DevToolsClientHost;
+using content::DevToolsManager;
+
const char DevToolsWindow::kDevToolsApp[] = "DevToolsApp";
// static
@@ -68,9 +72,13 @@ TabContentsWrapper* DevToolsWindow::GetDevToolsContents(
if (!inspected_tab)
return NULL;
+ if (!DevToolsAgentHostRegistry::HasDevToolsAgentHost(
+ inspected_tab->render_view_host()))
+ return NULL;
+ DevToolsAgentHost* agent = DevToolsAgentHostRegistry::GetDevToolsAgentHost(
+ inspected_tab->render_view_host());
DevToolsManager* manager = DevToolsManager::GetInstance();
- DevToolsClientHost* client_host = manager->
- GetDevToolsClientHostFor(inspected_tab->render_view_host());
+ DevToolsClientHost* client_host = manager->GetDevToolsClientHostFor(agent);
DevToolsWindow* window = AsDevToolsWindow(client_host);
if (!window || !window->is_docked())
return NULL;
@@ -95,16 +103,17 @@ DevToolsWindow* DevToolsWindow::OpenDevToolsWindowForWorker(
Profile* profile,
DevToolsAgentHost* worker_agent) {
DevToolsWindow* window;
- DevToolsClientHost* client =
- DevToolsManager::GetInstance()->GetDevToolsClientHostFor(worker_agent);
+ DevToolsClientHost* client = content::DevToolsManager::GetInstance()->
+ GetDevToolsClientHostFor(worker_agent);
if (client) {
window = AsDevToolsWindow(client);
if (!window)
return NULL;
} else {
window = DevToolsWindow::CreateDevToolsWindowForWorker(profile);
- DevToolsManager::GetInstance()->RegisterDevToolsClientHostFor(worker_agent,
- window);
+ DevToolsManager::GetInstance()->RegisterDevToolsClientHostFor(
+ worker_agent,
+ window->frontend_host_);
}
window->Show(DEVTOOLS_TOGGLE_ACTION_NONE);
return window;
@@ -133,10 +142,9 @@ DevToolsWindow* DevToolsWindow::ToggleDevToolsWindow(
void DevToolsWindow::InspectElement(RenderViewHost* inspected_rvh,
int x,
int y) {
- inspected_rvh->Send(new DevToolsAgentMsg_InspectElement(
- inspected_rvh->routing_id(),
- x,
- y));
+ DevToolsAgentHost* agent = DevToolsAgentHostRegistry::GetDevToolsAgentHost(
+ inspected_rvh);
+ DevToolsManager::GetInstance()->InspectElement(agent, x, y);
// TODO(loislo): we should initiate DevTools window opening from within
// renderer. Otherwise, we still can hit a race condition here.
OpenDevToolsWindow(inspected_rvh);
@@ -171,18 +179,17 @@ DevToolsWindow::DevToolsWindow(TabContentsWrapper* tab_contents,
browser_(NULL),
docked_(docked),
is_loaded_(false),
- action_on_load_(DEVTOOLS_TOGGLE_ACTION_NONE) {
+ action_on_load_(DEVTOOLS_TOGGLE_ACTION_NONE),
+ frontend_host_(NULL) {
+ frontend_host_ = DevToolsClientHost::CreateDevToolsFrontendHost(
+ tab_contents->tab_contents(),
+ this);
g_instances.Get().push_back(this);
// Wipe out page icon so that the default application icon is used.
NavigationEntry* entry = tab_contents_->controller().GetActiveEntry();
entry->favicon().set_bitmap(SkBitmap());
entry->favicon().set_is_valid(true);
- // Install DevTools front-end message handler.
- content::SetupDevToolsFrontendDelegate(
- tab_contents->tab_contents(),
- this);
-
// Register on-load actions.
registrar_.Add(
this,
@@ -214,13 +221,6 @@ DevToolsWindow::~DevToolsWindow() {
instances.erase(it);
}
-void DevToolsWindow::SendMessageToClient(const IPC::Message& message) {
- RenderViewHost* target_host = tab_contents_->render_view_host();
- IPC::Message* m = new IPC::Message(message);
- m->set_routing_id(target_host->routing_id());
- target_host->Send(m);
-}
-
void DevToolsWindow::InspectedTabClosing() {
if (docked_) {
// Update dev tools to reflect removed dev tools window.
@@ -477,7 +477,7 @@ void DevToolsWindow::Observe(int type,
// of window.Close event.
// Notify manager that this DevToolsClientHost no longer exists and
// initiate self-destuct here.
- NotifyCloseListener();
+ DevToolsManager::GetInstance()->ClientHostClosing(frontend_host_);
delete this;
}
} else if (type == chrome::NOTIFICATION_BROWSER_THEME_CHANGED) {
@@ -598,13 +598,14 @@ DevToolsWindow* DevToolsWindow::ToggleDevToolsWindow(
RenderViewHost* inspected_rvh,
bool force_open,
DevToolsToggleAction action) {
+ DevToolsAgentHost* agent = DevToolsAgentHostRegistry::GetDevToolsAgentHost(
+ inspected_rvh);
DevToolsManager* manager = DevToolsManager::GetInstance();
-
- DevToolsClientHost* host = manager->GetDevToolsClientHostFor(inspected_rvh);
+ DevToolsClientHost* host = manager->GetDevToolsClientHostFor(agent);
DevToolsWindow* window = AsDevToolsWindow(host);
if (host != NULL && window == NULL) {
// Break remote debugging / extension debugging session.
- manager->UnregisterDevToolsClientHostFor(inspected_rvh);
+ manager->UnregisterDevToolsClientHostFor(agent);
}
bool do_open = force_open;
@@ -613,7 +614,7 @@ DevToolsWindow* DevToolsWindow::ToggleDevToolsWindow(
inspected_rvh->process()->GetBrowserContext());
bool docked = profile->GetPrefs()->GetBoolean(prefs::kDevToolsOpenDocked);
window = Create(profile, inspected_rvh, docked, false);
- manager->RegisterDevToolsClientHostFor(inspected_rvh, window);
+ manager->RegisterDevToolsClientHostFor(agent, window->frontend_host_);
do_open = true;
}
@@ -622,7 +623,7 @@ DevToolsWindow* DevToolsWindow::ToggleDevToolsWindow(
if (!window->is_docked() || do_open)
window->Show(action);
else
- manager->UnregisterDevToolsClientHostFor(inspected_rvh);
+ manager->UnregisterDevToolsClientHostFor(agent);
return window;
}
@@ -635,17 +636,12 @@ DevToolsWindow* DevToolsWindow::AsDevToolsWindow(
DevToolsWindowList& instances = g_instances.Get();
for (DevToolsWindowList::iterator it = instances.begin();
it != instances.end(); ++it) {
- DevToolsClientHost* client = *it;
- if (client == client_host)
+ if ((*it)->frontend_host_ == client_host)
return *it;
}
return NULL;
}
-void DevToolsWindow::ForwardToDevToolsAgent(const IPC::Message& message) {
- DevToolsManager::GetInstance()->ForwardToDevToolsAgent(this, message);
-}
-
void DevToolsWindow::ActivateWindow() {
if (!docked_) {
if (!browser_->window()->IsActive()) {
@@ -660,7 +656,7 @@ void DevToolsWindow::ActivateWindow() {
void DevToolsWindow::CloseWindow() {
DCHECK(docked_);
- NotifyCloseListener();
+ DevToolsManager::GetInstance()->ClientHostClosing(frontend_host_);
InspectedTabClosing();
}
diff --git a/chrome/browser/debugger/devtools_window.h b/chrome/browser/debugger/devtools_window.h
index a9616e3..49c2c17 100644
--- a/chrome/browser/debugger/devtools_window.h
+++ b/chrome/browser/debugger/devtools_window.h
@@ -11,9 +11,9 @@
#include "base/basictypes.h"
#include "chrome/browser/debugger/devtools_toggle_action.h"
-#include "content/browser/debugger/devtools_client_host.h"
#include "content/browser/tab_contents/tab_contents_delegate.h"
-#include "content/public/browser/devtools_frontend_window_delegate.h"
+#include "content/public/browser/devtools_client_host.h"
+#include "content/public/browser/devtools_frontend_host_delegate.h"
#include "content/public/browser/notification_observer.h"
#include "content/public/browser/notification_registrar.h"
@@ -23,7 +23,6 @@ class Message;
class Browser;
class BrowserWindow;
-class DevToolsAgentHost;
class PrefService;
class Profile;
class RenderViewHost;
@@ -33,10 +32,14 @@ namespace base {
class Value;
}
-class DevToolsWindow : public DevToolsClientHost,
- private content::NotificationObserver,
+namespace content {
+class DevToolsAgentHost;
+class DevToolsClientHost;
+}
+
+class DevToolsWindow : private content::NotificationObserver,
private TabContentsDelegate,
- private content::DevToolsFrontendWindowDelegate {
+ private content::DevToolsFrontendHostDelegate {
public:
static const char kDevToolsApp[];
static void RegisterUserPrefs(PrefService* prefs);
@@ -45,7 +48,7 @@ class DevToolsWindow : public DevToolsClientHost,
static DevToolsWindow* OpenDevToolsWindowForWorker(
Profile* profile,
- DevToolsAgentHost* worker_agent);
+ content::DevToolsAgentHost* worker_agent);
static DevToolsWindow* CreateDevToolsWindowForWorker(Profile* profile);
static DevToolsWindow* OpenDevToolsWindow(RenderViewHost* inspected_rvh);
static DevToolsWindow* ToggleDevToolsWindow(RenderViewHost* inspected_rvh,
@@ -55,7 +58,6 @@ class DevToolsWindow : public DevToolsClientHost,
virtual ~DevToolsWindow();
// Overridden from DevToolsClientHost.
- virtual void SendMessageToClient(const IPC::Message& message) OVERRIDE;
virtual void InspectedTabClosing() OVERRIDE;
virtual void TabReplaced(TabContents* new_tab) OVERRIDE;
RenderViewHost* GetRenderViewHost();
@@ -65,6 +67,9 @@ class DevToolsWindow : public DevToolsClientHost,
TabContentsWrapper* tab_contents() { return tab_contents_; }
Browser* browser() { return browser_; } // For tests.
bool is_docked() { return docked_; }
+ content::DevToolsClientHost* devtools_client_host() {
+ return frontend_host_;
+ }
private:
static DevToolsWindow* Create(Profile* profile,
@@ -121,10 +126,9 @@ class DevToolsWindow : public DevToolsClientHost,
static DevToolsWindow* ToggleDevToolsWindow(RenderViewHost* inspected_rvh,
bool force_open,
DevToolsToggleAction action);
- static DevToolsWindow* AsDevToolsWindow(DevToolsClientHost*);
+ static DevToolsWindow* AsDevToolsWindow(content::DevToolsClientHost*);
// content::DevToolsClientHandlerDelegate overrides.
- virtual void ForwardToDevToolsAgent(const IPC::Message& message) OVERRIDE;
virtual void ActivateWindow() OVERRIDE;
virtual void CloseWindow() OVERRIDE;
virtual void MoveWindow(int x, int y) OVERRIDE;
@@ -132,6 +136,7 @@ class DevToolsWindow : public DevToolsClientHost,
virtual void UndockWindow() OVERRIDE;
virtual void SaveToFile(const std::string& suggested_file_name,
const std::string& content) OVERRIDE;
+
void RequestSetDocked(bool docked);
Profile* profile_;
@@ -142,6 +147,7 @@ class DevToolsWindow : public DevToolsClientHost,
bool is_loaded_;
DevToolsToggleAction action_on_load_;
content::NotificationRegistrar registrar_;
+ content::DevToolsClientHost* frontend_host_;
DISALLOW_COPY_AND_ASSIGN(DevToolsWindow);
};
diff --git a/chrome/browser/extensions/extension_debugger_api.cc b/chrome/browser/extensions/extension_debugger_api.cc
index 80d7970..c9bcb6c 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(
diff --git a/chrome/browser/extensions/extension_devtools_bridge.cc b/chrome/browser/extensions/extension_devtools_bridge.cc
index 5372296..237e072 100644
--- a/chrome/browser/extensions/extension_devtools_bridge.cc
+++ b/chrome/browser/extensions/extension_devtools_bridge.cc
@@ -15,9 +15,13 @@
#include "chrome/browser/extensions/extension_tab_util.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h"
-#include "content/browser/debugger/devtools_manager.h"
#include "content/browser/tab_contents/tab_contents.h"
-#include "content/common/devtools_messages.h"
+#include "content/public/browser/devtools_agent_host_registry.h"
+#include "content/public/browser/devtools_manager.h"
+
+using content::DevToolsAgentHost;
+using content::DevToolsAgentHostRegistry;
+using content::DevToolsManager;
ExtensionDevToolsBridge::ExtensionDevToolsBridge(int tab_id,
Profile* profile)
@@ -56,29 +60,25 @@ bool ExtensionDevToolsBridge::RegisterAsDevToolsClientHost() {
&browser, &tab_strip,
&contents, &tab_index)) {
DevToolsManager* devtools_manager = DevToolsManager::GetInstance();
- if (devtools_manager->GetDevToolsClientHostFor(contents->
- render_view_host()) != NULL)
+ DevToolsAgentHost* agent = DevToolsAgentHostRegistry::GetDevToolsAgentHost(
+ contents->render_view_host());
+ if (devtools_manager->GetDevToolsClientHostFor(agent))
return false;
- devtools_manager->RegisterDevToolsClientHostFor(
- contents->render_view_host(), this);
+ devtools_manager->RegisterDevToolsClientHostFor(agent, this);
// Following messages depend on inspector protocol that is not yet
// finalized.
// 1. Start timeline profiler.
- devtools_manager->ForwardToDevToolsAgent(
+ devtools_manager->DispatchOnInspectorBackend(
this,
- DevToolsAgentMsg_DispatchOnInspectorBackend(
- MSG_ROUTING_NONE,
- FormatDevToolsMessage(2, "Timeline.start")));
+ FormatDevToolsMessage(2, "Timeline.start"));
// 2. Enable network resource tracking.
- devtools_manager->ForwardToDevToolsAgent(
+ devtools_manager->DispatchOnInspectorBackend(
this,
- DevToolsAgentMsg_DispatchOnInspectorBackend(
- MSG_ROUTING_NONE,
- FormatDevToolsMessage(3, "Network.enable")));
+ FormatDevToolsMessage(3, "Network.enable"));
return true;
}
@@ -87,8 +87,7 @@ bool ExtensionDevToolsBridge::RegisterAsDevToolsClientHost() {
void ExtensionDevToolsBridge::UnregisterAsDevToolsClientHost() {
DCHECK_EQ(MessageLoop::current()->type(), MessageLoop::TYPE_UI);
-
- NotifyCloseListener();
+ DevToolsManager::GetInstance()->ClientHostClosing(this);
}
// If the tab we are looking at is going away then we fire a closing event at
@@ -106,20 +105,7 @@ void ExtensionDevToolsBridge::InspectedTabClosing() {
extension_devtools_manager_->BridgeClosingForTab(tab_id_);
}
-void ExtensionDevToolsBridge::SendMessageToClient(const IPC::Message& msg) {
- IPC_BEGIN_MESSAGE_MAP(ExtensionDevToolsBridge, msg)
- IPC_MESSAGE_HANDLER(DevToolsClientMsg_DispatchOnInspectorFrontend,
- OnDispatchOnInspectorFrontend);
- IPC_MESSAGE_UNHANDLED_ERROR()
- IPC_END_MESSAGE_MAP()
-}
-
-void ExtensionDevToolsBridge::TabReplaced(TabContents* new_tab) {
- // We don't update the tab id as it needs to remain the same so that we can
- // properly unregister.
-}
-
-void ExtensionDevToolsBridge::OnDispatchOnInspectorFrontend(
+void ExtensionDevToolsBridge::DispatchOnInspectorFrontend(
const std::string& data) {
DCHECK_EQ(MessageLoop::current()->type(), MessageLoop::TYPE_UI);
@@ -127,3 +113,8 @@ void ExtensionDevToolsBridge::OnDispatchOnInspectorFrontend(
profile_->GetExtensionEventRouter()->DispatchEventToRenderers(
on_page_event_name_, json, profile_, GURL());
}
+
+void ExtensionDevToolsBridge::TabReplaced(TabContents* new_tab) {
+ // We don't update the tab id as it needs to remain the same so that we can
+ // properly unregister.
+}
diff --git a/chrome/browser/extensions/extension_devtools_bridge.h b/chrome/browser/extensions/extension_devtools_bridge.h
index dbcabd4..6c5c292 100644
--- a/chrome/browser/extensions/extension_devtools_bridge.h
+++ b/chrome/browser/extensions/extension_devtools_bridge.h
@@ -11,12 +11,12 @@
#include "base/memory/ref_counted.h"
#include "chrome/browser/extensions/extension_devtools_manager.h"
#include "chrome/browser/extensions/extension_message_service.h"
-#include "content/browser/debugger/devtools_client_host.h"
+#include "content/public/browser/devtools_client_host.h"
class Profile;
// This class is a DevToolsClientHost that fires extension events.
-class ExtensionDevToolsBridge : public DevToolsClientHost {
+class ExtensionDevToolsBridge : public content::DevToolsClientHost {
public:
ExtensionDevToolsBridge(int tab_id, Profile* profile);
virtual ~ExtensionDevToolsBridge();
@@ -28,14 +28,12 @@ class ExtensionDevToolsBridge : public DevToolsClientHost {
// closing.
virtual void InspectedTabClosing() OVERRIDE;
- // DevToolsClientHost, called to send a message to this host.
- virtual void SendMessageToClient(const IPC::Message& msg) OVERRIDE;
+ // DevToolsClientHost, called to dispatch a message on this client.
+ virtual void DispatchOnInspectorFrontend(const std::string& message) OVERRIDE;
virtual void TabReplaced(TabContents* new_tab) OVERRIDE;
private:
- void OnDispatchOnInspectorFrontend(const std::string& data);
-
virtual void FrameNavigating(const std::string& url) OVERRIDE {}
// ID of the tab we are monitoring.
diff --git a/chrome/browser/extensions/extension_devtools_browsertests.cc b/chrome/browser/extensions/extension_devtools_browsertests.cc
index 9f220b7..f41ebd3 100644
--- a/chrome/browser/extensions/extension_devtools_browsertests.cc
+++ b/chrome/browser/extensions/extension_devtools_browsertests.cc
@@ -16,14 +16,19 @@
#include "chrome/common/chrome_paths.h"
#include "chrome/common/url_constants.h"
#include "chrome/test/base/ui_test_utils.h"
-#include "content/browser/debugger/devtools_client_host.h"
-#include "content/browser/debugger/devtools_manager.h"
#include "content/browser/renderer_host/render_view_host.h"
#include "content/browser/site_instance.h"
#include "content/browser/tab_contents/tab_contents.h"
-#include "content/common/devtools_messages.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 "net/base/net_util.h"
+using content::DevToolsAgentHost;
+using content::DevToolsAgentHostRegistry;
+using content::DevToolsClientHost;
+using content::DevToolsManager;
+
// Looks for an ExtensionHost whose URL has the given path component (including
// leading slash). Also verifies that the expected number of hosts are loaded.
static ExtensionHost* FindHostWithPath(ExtensionProcessManager* manager,
@@ -73,18 +78,16 @@ IN_PROC_BROWSER_TEST_F(ExtensionDevToolsBrowserTest, FLAKY_TimelineApi) {
// Setting the events should have caused an ExtensionDevToolsBridge to be
// registered for the tab's RenderViewHost.
+ DevToolsAgentHost* agent = DevToolsAgentHostRegistry::GetDevToolsAgentHost(
+ tab_contents->render_view_host());
DevToolsClientHost* devtools_client_host =
- devtools_manager->GetDevToolsClientHostFor(
- tab_contents->render_view_host());
+ devtools_manager->GetDevToolsClientHostFor(agent);
ASSERT_TRUE(devtools_client_host);
// Test onPageEvent event.
result = false;
- DevToolsClientMsg_DispatchOnInspectorFrontend pageEventMessage(
- MSG_ROUTING_NONE,
- "");
- devtools_client_host->SendMessageToClient(pageEventMessage);
+ devtools_client_host->DispatchOnInspectorFrontend("");
ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool(
host->render_view_host(), L"", L"testReceivePageEvent()", &result));
EXPECT_TRUE(result);
@@ -92,7 +95,8 @@ IN_PROC_BROWSER_TEST_F(ExtensionDevToolsBrowserTest, FLAKY_TimelineApi) {
// Test onTabClose event.
result = false;
devtools_manager->UnregisterDevToolsClientHostFor(
- tab_contents->render_view_host());
+ DevToolsAgentHostRegistry::GetDevToolsAgentHost(
+ tab_contents->render_view_host()));
ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool(
host->render_view_host(), L"", L"testReceiveTabCloseEvent()", &result));
EXPECT_TRUE(result);
@@ -132,7 +136,8 @@ IN_PROC_BROWSER_TEST_F(ExtensionDevToolsBrowserTest, ProcessRefCounting) {
// Setting the event listeners should have caused an ExtensionDevToolsBridge
// to be registered for the tab's RenderViewHost.
ASSERT_TRUE(devtools_manager->GetDevToolsClientHostFor(
- tab_contents->render_view_host()));
+ DevToolsAgentHostRegistry::GetDevToolsAgentHost(
+ tab_contents->render_view_host())));
// Register listeners from the second extension as well.
std::wstring script = base::StringPrintf(L"registerListenersForTab(%d)",
@@ -148,7 +153,8 @@ IN_PROC_BROWSER_TEST_F(ExtensionDevToolsBrowserTest, ProcessRefCounting) {
host_one->render_view_host(), L"", L"unregisterListeners()", &result));
EXPECT_TRUE(result);
ASSERT_TRUE(devtools_manager->GetDevToolsClientHostFor(
- tab_contents->render_view_host()));
+ DevToolsAgentHostRegistry::GetDevToolsAgentHost(
+ tab_contents->render_view_host())));
// Removing the listeners from the second extension should tear the bridge
// down.
@@ -157,5 +163,6 @@ IN_PROC_BROWSER_TEST_F(ExtensionDevToolsBrowserTest, ProcessRefCounting) {
host_two->render_view_host(), L"", L"unregisterListeners()", &result));
EXPECT_TRUE(result);
ASSERT_FALSE(devtools_manager->GetDevToolsClientHostFor(
- tab_contents->render_view_host()));
+ DevToolsAgentHostRegistry::GetDevToolsAgentHost(
+ tab_contents->render_view_host())));
}
diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc
index 612ac2c..8fd7b59 100644
--- a/chrome/browser/extensions/extension_service.cc
+++ b/chrome/browser/extensions/extension_service.cc
@@ -86,11 +86,12 @@
#include "chrome/common/extensions/extension_resource.h"
#include "chrome/common/pref_names.h"
#include "chrome/common/url_constants.h"
-#include "content/browser/debugger/devtools_manager.h"
#include "content/browser/plugin_process_host.h"
#include "content/browser/plugin_service.h"
#include "content/browser/user_metrics.h"
#include "content/public/browser/browser_thread.h"
+#include "content/public/browser/devtools_agent_host_registry.h"
+#include "content/public/browser/devtools_manager.h"
#include "content/public/browser/notification_service.h"
#include "content/public/browser/notification_types.h"
#include "content/public/browser/render_process_host.h"
@@ -118,6 +119,8 @@
using base::Time;
using content::BrowserThread;
+using content::DevToolsAgentHost;
+using content::DevToolsAgentHostRegistry;
namespace errors = extension_manifest_errors;
@@ -607,10 +610,14 @@ void ExtensionService::ReloadExtension(const std::string& extension_id) {
// later.
ExtensionProcessManager* manager = profile_->GetExtensionProcessManager();
ExtensionHost* host = manager->GetBackgroundHostForExtension(extension_id);
- if (host) {
+ if (host && DevToolsAgentHostRegistry::HasDevToolsAgentHost(
+ host->render_view_host())) {
// Look for an open inspector for the background page.
- int devtools_cookie = DevToolsManager::GetInstance()->DetachClientHost(
- host->render_view_host());
+ DevToolsAgentHost* agent =
+ DevToolsAgentHostRegistry::GetDevToolsAgentHost(
+ host->render_view_host());
+ int devtools_cookie =
+ content::DevToolsManager::GetInstance()->DetachClientHost(agent);
if (devtools_cookie >= 0)
orphaned_dev_tools_[extension_id] = devtools_cookie;
}
@@ -2297,8 +2304,10 @@ void ExtensionService::DidCreateRenderViewForBackgroundPage(
if (iter == orphaned_dev_tools_.end())
return;
- DevToolsManager::GetInstance()->AttachClientHost(
- iter->second, host->render_view_host());
+ DevToolsAgentHost* agent = DevToolsAgentHostRegistry::GetDevToolsAgentHost(
+ host->render_view_host());
+ content::DevToolsManager::GetInstance()->AttachClientHost(iter->second,
+ agent);
orphaned_dev_tools_.erase(iter);
}
diff --git a/chrome/browser/prerender/prerender_browsertest.cc b/chrome/browser/prerender/prerender_browsertest.cc
index 83043b5..035e84c 100644
--- a/chrome/browser/prerender/prerender_browsertest.cc
+++ b/chrome/browser/prerender/prerender_browsertest.cc
@@ -32,10 +32,11 @@
#include "chrome/common/pref_names.h"
#include "chrome/test/base/in_process_browser_test.h"
#include "chrome/test/base/ui_test_utils.h"
-#include "content/browser/debugger/devtools_client_host.h"
-#include "content/browser/debugger/devtools_manager.h"
#include "content/browser/renderer_host/render_view_host.h"
#include "content/browser/tab_contents/tab_contents.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/public/browser/notification_service.h"
#include "content/public/common/url_constants.h"
#include "grit/generated_resources.h"
@@ -45,6 +46,10 @@
#include "ui/base/l10n/l10n_util.h"
using content::BrowserThread;
+using content::DevToolsAgentHost;
+using content::DevToolsAgentHostRegistry;
+using content::DevToolsClientHost;
+using content::DevToolsManager;
// Prerender tests work as follows:
//
@@ -395,12 +400,10 @@ class TestSafeBrowsingServiceFactory : public SafeBrowsingServiceFactory {
class FakeDevToolsClientHost : public DevToolsClientHost {
public:
FakeDevToolsClientHost() {}
- virtual ~FakeDevToolsClientHost() {
- NotifyCloseListener();
- }
+ virtual ~FakeDevToolsClientHost() {}
virtual void InspectedTabClosing() OVERRIDE {}
virtual void FrameNavigating(const std::string& url) OVERRIDE {}
- virtual void SendMessageToClient(const IPC::Message& msg) OVERRIDE {}
+ virtual void DispatchOnInspectorFrontend(const std::string& msg) OVERRIDE {}
virtual void TabReplaced(TabContents* new_tab) OVERRIDE {}
};
@@ -1836,13 +1839,15 @@ IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest,
NavigateToPrerenderedPageWhenDevToolsAttached) {
DisableJavascriptCalls();
TabContents* tab_contents = browser()->GetSelectedTabContents();
- RenderViewHost* inspected_rvh = tab_contents->render_view_host();
+ DevToolsAgentHost* agent = DevToolsAgentHostRegistry::GetDevToolsAgentHost(
+ tab_contents->render_view_host());
DevToolsManager* manager = DevToolsManager::GetInstance();
FakeDevToolsClientHost client_host;
- manager->RegisterDevToolsClientHostFor(inspected_rvh, &client_host);
+ manager->RegisterDevToolsClientHostFor(agent, &client_host);
const char* url = "files/prerender/prerender_page.html";
PrerenderTestURL(url, FINAL_STATUS_DEVTOOLS_ATTACHED, 1);
NavigateToURL(url);
+ manager->ClientHostClosing(&client_host);
}
// Validate that the sessionStorage namespace remains the same when swapping
diff --git a/chrome/browser/prerender/prerender_manager.cc b/chrome/browser/prerender/prerender_manager.cc
index 8306bfb..323d202 100644
--- a/chrome/browser/prerender/prerender_manager.cc
+++ b/chrome/browser/prerender/prerender_manager.cc
@@ -35,7 +35,6 @@
#include "chrome/common/chrome_switches.h"
#include "chrome/common/render_messages.h"
#include "content/browser/cancelable_request.h"
-#include "content/browser/debugger/render_view_devtools_agent_host.h"
#include "content/browser/in_process_webkit/session_storage_namespace.h"
#include "content/browser/renderer_host/render_view_host.h"
#include "content/browser/renderer_host/resource_dispatcher_host.h"
@@ -43,6 +42,7 @@
#include "content/browser/tab_contents/tab_contents.h"
#include "content/browser/tab_contents/tab_contents_delegate.h"
#include "content/public/browser/browser_thread.h"
+#include "content/public/browser/devtools_agent_host_registry.h"
#include "content/public/browser/notification_observer.h"
#include "content/public/browser/notification_registrar.h"
#include "content/public/browser/notification_source.h"
@@ -595,7 +595,7 @@ bool PrerenderManager::MaybeUsePrerenderedPage(TabContents* tab_contents,
// Don't use prerendered pages if debugger is attached to the tab.
// See http://crbug.com/98541
- if (RenderViewDevToolsAgentHost::IsDebuggerAttached(tab_contents)) {
+ if (content::DevToolsAgentHostRegistry::IsDebuggerAttached(tab_contents)) {
prerender_contents.release()->Destroy(FINAL_STATUS_DEVTOOLS_ATTACHED);
return false;
}
diff --git a/chrome/browser/task_manager/task_manager_worker_resource_provider.cc b/chrome/browser/task_manager/task_manager_worker_resource_provider.cc
index 4380ed8..734da89 100644
--- a/chrome/browser/task_manager/task_manager_worker_resource_provider.cc
+++ b/chrome/browser/task_manager/task_manager_worker_resource_provider.cc
@@ -12,11 +12,11 @@
#include "chrome/browser/debugger/devtools_window.h"
#include "chrome/browser/profiles/profile_manager.h"
#include "content/browser/browser_child_process_host.h"
-#include "content/browser/debugger/worker_devtools_manager.h"
#include "content/browser/worker_host/worker_process_host.h"
#include "content/browser/worker_host/worker_service.h"
#include "content/browser/worker_host/worker_service_observer.h"
#include "content/public/browser/browser_thread.h"
+#include "content/public/browser/devtools_agent_host_registry.h"
#include "content/public/browser/notification_service.h"
#include "content/public/browser/notification_types.h"
#include "content/public/common/process_type.h"
@@ -26,6 +26,8 @@
#include "ui/base/resource/resource_bundle.h"
using content::BrowserThread;
+using content::DevToolsAgentHost;
+using content::DevToolsAgentHostRegistry;
// Objects of this class are created on the IO thread and then passed to the UI
// thread where they are passed to the task manager. All methods must be called
@@ -127,7 +129,7 @@ void TaskManagerSharedWorkerResource::Inspect() const {
if (!profile)
return;
DevToolsAgentHost* agent_host =
- WorkerDevToolsManager::GetDevToolsAgentHostForWorker(
+ DevToolsAgentHostRegistry::GetDevToolsAgentHostForWorker(
process_info_.id(),
routing_id_);
DevToolsWindow::OpenDevToolsWindowForWorker(profile, agent_host);
diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc
index acffbcc..eb9a8dd 100644
--- a/chrome/browser/ui/browser.cc
+++ b/chrome/browser/ui/browser.cc
@@ -137,7 +137,6 @@
#include "chrome/common/web_apps.h"
#include "content/browser/browser_url_handler.h"
#include "content/browser/child_process_security_policy.h"
-#include "content/browser/debugger/devtools_manager.h"
#include "content/browser/download/download_item.h"
#include "content/browser/download/download_manager.h"
#include "content/browser/download/save_package.h"
@@ -150,6 +149,7 @@
#include "content/browser/tab_contents/navigation_entry.h"
#include "content/browser/tab_contents/tab_contents_view.h"
#include "content/browser/user_metrics.h"
+#include "content/public/browser/devtools_manager.h"
#include "content/public/browser/notification_service.h"
#include "content/public/browser/notification_details.h"
#include "content/public/common/content_restriction.h"
@@ -3342,10 +3342,8 @@ void Browser::TabReplacedAt(TabStripModel* tab_strip_model,
new_contents, tab_handler_->GetTabStripModel()->IsTabPinned(index));
}
- DevToolsManager* devtools_manager = DevToolsManager::GetInstance();
- if (devtools_manager) // NULL in unit tests.
- devtools_manager->TabReplaced(old_contents->tab_contents(),
- new_contents->tab_contents());
+ content::DevToolsManager::GetInstance()->TabReplaced(
+ old_contents->tab_contents(), new_contents->tab_contents());
}
void Browser::TabPinnedStateChanged(TabContentsWrapper* contents, int index) {
@@ -4160,7 +4158,7 @@ void Browser::Observe(int type,
} else if (pref_name == prefs::kDevToolsDisabled) {
UpdateCommandsForDevTools();
if (profile_->GetPrefs()->GetBoolean(prefs::kDevToolsDisabled))
- DevToolsManager::GetInstance()->CloseAllClientHosts();
+ content::DevToolsManager::GetInstance()->CloseAllClientHosts();
} else if (pref_name == prefs::kEditBookmarksEnabled) {
UpdateCommandsForBookmarkEditing();
} else if (pref_name == prefs::kShowBookmarkBar) {
diff --git a/chrome/browser/ui/webui/devtools_ui.cc b/chrome/browser/ui/webui/devtools_ui.cc
index 5ea6be7..0d1ae7f 100644
--- a/chrome/browser/ui/webui/devtools_ui.cc
+++ b/chrome/browser/ui/webui/devtools_ui.cc
@@ -14,8 +14,8 @@
#include "chrome/common/url_constants.h"
#include "content/browser/renderer_host/render_view_host.h"
#include "content/browser/tab_contents/tab_contents.h"
-#include "content/common/devtools_messages.h"
#include "content/public/browser/browser_thread.h"
+#include "content/public/browser/devtools_client_host.h"
#include "grit/devtools_resources_map.h"
#include "ui/base/resource/resource_bundle.h"
@@ -106,8 +106,6 @@ DevToolsUI::DevToolsUI(TabContents* contents) : ChromeWebUI(contents) {
}
void DevToolsUI::RenderViewCreated(RenderViewHost* render_view_host) {
- render_view_host->Send(new DevToolsMsg_SetupDevToolsClient(
- render_view_host->routing_id()));
-
+ content::DevToolsClientHost::SetupDevToolsFrontendClient(render_view_host);
ChromeWebUI::RenderViewCreated(render_view_host);
}
diff --git a/chrome/browser/ui/webui/workers_ui.cc b/chrome/browser/ui/webui/workers_ui.cc
index d8ad254..521740f 100644
--- a/chrome/browser/ui/webui/workers_ui.cc
+++ b/chrome/browser/ui/webui/workers_ui.cc
@@ -16,7 +16,7 @@
#include "chrome/browser/ui/webui/chrome_url_data_manager_backend.h"
#include "chrome/browser/ui/webui/chrome_web_ui_data_source.h"
#include "chrome/common/url_constants.h"
-#include "content/browser/debugger/worker_devtools_manager.h"
+#include "content/public/browser/devtools_agent_host_registry.h"
#include "content/browser/tab_contents/tab_contents.h"
#include "content/browser/worker_host/worker_process_host.h"
#include "content/browser/worker_host/worker_service.h"
@@ -27,6 +27,8 @@
#include "ui/base/resource/resource_bundle.h"
using content::BrowserThread;
+using content::DevToolsAgentHost;
+using content::DevToolsAgentHostRegistry;
static const char kWorkersDataFile[] = "workers_data.json";
@@ -142,7 +144,7 @@ void WorkersDOMHandler::HandleOpenDevTools(const ListValue* args) {
if (!profile)
return;
DevToolsAgentHost* agent_host =
- WorkerDevToolsManager::GetDevToolsAgentHostForWorker(
+ DevToolsAgentHostRegistry::GetDevToolsAgentHostForWorker(
worker_process_host_id,
worker_route_id);
DevToolsWindow::OpenDevToolsWindowForWorker(profile, agent_host);