summaryrefslogtreecommitdiffstats
path: root/content
diff options
context:
space:
mode:
Diffstat (limited to 'content')
-rw-r--r--content/browser/debugger/devtools_client_host.h18
-rw-r--r--content/browser/debugger/devtools_handler.cc107
-rw-r--r--content/browser/debugger/devtools_handler.h40
-rw-r--r--content/browser/debugger/devtools_manager.cc14
-rw-r--r--content/browser/debugger/devtools_manager.h4
-rw-r--r--content/browser/debugger/devtools_manager_unittest.cc4
-rw-r--r--content/browser/debugger/render_view_devtools_agent_host.cc54
-rw-r--r--content/browser/debugger/render_view_devtools_agent_host.h19
-rw-r--r--content/content_browser.gypi2
9 files changed, 66 insertions, 196 deletions
diff --git a/content/browser/debugger/devtools_client_host.h b/content/browser/debugger/devtools_client_host.h
index 038e0dd..f629967 100644
--- a/content/browser/debugger/devtools_client_host.h
+++ b/content/browser/debugger/devtools_client_host.h
@@ -55,24 +55,6 @@ class DevToolsClientHost {
// TabStripModel::ReplaceTabContentsAt.
virtual void TabReplaced(TabContents* new_tab) = 0;
- // Default front-end implementation requests that the window representing
- // this client host is activated.
- virtual void RequestActivate() {}
-
- // Default front-end implementation requests that the window representing
- // this client host is (un)docked.
- virtual void RequestSetDocked(bool docked) {}
-
- // Default front-end implementation requests that the window representing
- // this client host is closed.
- virtual void RequestClose() {}
-
- // Default front-end implementation requests that the Save As dialog using
- // default save location is shown with |suggested_file_name| as the default
- // name and |content| as the data to save.
- virtual void RequestSaveAs(const std::string& suggested_file_name,
- const std::string& content) {}
-
// Returns client (front-end) RenderViewHost implementation of this
// client host if applicable. NULL otherwise.
virtual RenderViewHost* GetClientRenderViewHost();
diff --git a/content/browser/debugger/devtools_handler.cc b/content/browser/debugger/devtools_handler.cc
deleted file mode 100644
index 9ac789d..0000000
--- a/content/browser/debugger/devtools_handler.cc
+++ /dev/null
@@ -1,107 +0,0 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "content/browser/debugger/devtools_handler.h"
-
-#include "content/browser/content_browser_client.h"
-#include "content/browser/debugger/devtools_client_host.h"
-#include "content/browser/debugger/devtools_manager.h"
-#include "content/browser/debugger/worker_devtools_manager_io.h"
-#include "content/browser/renderer_host/render_view_host.h"
-#include "content/browser/tab_contents/tab_contents.h"
-#include "content/common/devtools_messages.h"
-
-DevToolsHandler::DevToolsHandler(RenderViewHost* render_view_host)
- : RenderViewHostObserver(render_view_host) {
-}
-
-DevToolsHandler::~DevToolsHandler() {
-}
-
-bool DevToolsHandler::OnMessageReceived(const IPC::Message& message) {
- bool handled = true;
- IPC_BEGIN_MESSAGE_MAP(DevToolsHandler, message)
- IPC_MESSAGE_HANDLER(DevToolsHostMsg_ForwardToAgent, OnForwardToAgent)
- IPC_MESSAGE_HANDLER(DevToolsHostMsg_ForwardToClient, OnForwardToClient)
- IPC_MESSAGE_HANDLER(DevToolsHostMsg_ActivateWindow, OnActivateWindow)
- IPC_MESSAGE_HANDLER(DevToolsHostMsg_CloseWindow, OnCloseWindow)
- IPC_MESSAGE_HANDLER(DevToolsHostMsg_RequestDockWindow, OnRequestDockWindow)
- IPC_MESSAGE_HANDLER(DevToolsHostMsg_RequestUndockWindow,
- OnRequestUndockWindow)
- IPC_MESSAGE_HANDLER(DevToolsHostMsg_SaveAs,
- OnSaveAs)
- IPC_MESSAGE_HANDLER(DevToolsHostMsg_RuntimePropertyChanged,
- OnRuntimePropertyChanged)
- IPC_MESSAGE_HANDLER(DevToolsHostMsg_ClearBrowserCache, OnClearBrowserCache)
- IPC_MESSAGE_HANDLER(DevToolsHostMsg_ClearBrowserCookies,
- OnClearBrowserCookies)
- IPC_MESSAGE_UNHANDLED(handled = false)
- IPC_END_MESSAGE_MAP()
- return handled;
-}
-
-void DevToolsHandler::OnForwardToAgent(const IPC::Message& message) {
- DevToolsClientHost* client_host = GetOwnerClientHost();
- if (!client_host)
- return;
- if (DevToolsManager::GetInstance()->
- ForwardToDevToolsAgent(client_host, message))
- return;
- WorkerDevToolsManagerIO::ForwardToWorkerDevToolsAgentOnUIThread(
- client_host, message);
-}
-
-void DevToolsHandler::OnForwardToClient(const IPC::Message& message) {
- DevToolsManager::GetInstance()->ForwardToDevToolsClient(
- render_view_host(), message);
-}
-
-void DevToolsHandler::OnActivateWindow() {
- DevToolsClientHost* client_host = GetOwnerClientHost();
- if (client_host)
- client_host->RequestActivate();
-}
-
-void DevToolsHandler::OnCloseWindow() {
- DevToolsClientHost* client_host = GetOwnerClientHost();
- if (client_host)
- client_host->RequestClose();
-}
-
-void DevToolsHandler::OnRequestDockWindow() {
- DevToolsClientHost* client_host = GetOwnerClientHost();
- if (client_host)
- client_host->RequestSetDocked(true);
-}
-
-void DevToolsHandler::OnRequestUndockWindow() {
- DevToolsClientHost* client_host = GetOwnerClientHost();
- if (client_host)
- client_host->RequestSetDocked(false);
-}
-
-void DevToolsHandler::OnSaveAs(const std::string& file_name,
- const std::string& content) {
- DevToolsClientHost* client_host = GetOwnerClientHost();
- if (client_host)
- client_host->RequestSaveAs(file_name, content);
-}
-
-void DevToolsHandler::OnRuntimePropertyChanged(const std::string& name,
- const std::string& value) {
- DevToolsManager::GetInstance()->RuntimePropertyChanged(
- render_view_host(), name, value);
-}
-
-void DevToolsHandler::OnClearBrowserCache() {
- content::GetContentClient()->browser()->ClearCache(render_view_host());
-}
-
-void DevToolsHandler::OnClearBrowserCookies() {
- content::GetContentClient()->browser()->ClearCookies(render_view_host());
-}
-
-DevToolsClientHost* DevToolsHandler::GetOwnerClientHost() {
- return DevToolsClientHost::FindOwnerClientHost(render_view_host());
-}
diff --git a/content/browser/debugger/devtools_handler.h b/content/browser/debugger/devtools_handler.h
deleted file mode 100644
index 48fb2e2..0000000
--- a/content/browser/debugger/devtools_handler.h
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CONTENT_BROWSER_DEBUGGER_DEVTOOLS_HANDLER_H_
-#define CONTENT_BROWSER_DEBUGGER_DEVTOOLS_HANDLER_H_
-#pragma once
-
-#include "content/browser/renderer_host/render_view_host_observer.h"
-
-class DevToolsClientHost;
-
-class DevToolsHandler : public RenderViewHostObserver {
- public:
- explicit DevToolsHandler(RenderViewHost* render_view_host);
- virtual ~DevToolsHandler();
-
- // RenderViewHostObserver overrides.
- virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
-
- private:
- void OnForwardToAgent(const IPC::Message& message);
- void OnForwardToClient(const IPC::Message& message);
- void OnActivateWindow();
- void OnCloseWindow();
- void OnRequestDockWindow();
- void OnRequestUndockWindow();
- void OnSaveAs(const std::string& file_name,
- const std::string& content);
- void OnRuntimePropertyChanged(const std::string& name,
- const std::string& value);
- void OnClearBrowserCache();
- void OnClearBrowserCookies();
-
- DevToolsClientHost* GetOwnerClientHost();
-
- DISALLOW_COPY_AND_ASSIGN(DevToolsHandler);
-};
-
-#endif // CONTENT_BROWSER_DEBUGGER_DEVTOOLS_HANDLER_H_
diff --git a/content/browser/debugger/devtools_manager.cc b/content/browser/debugger/devtools_manager.cc
index 60f9eea..0eb2e6e 100644
--- a/content/browser/debugger/devtools_manager.cc
+++ b/content/browser/debugger/devtools_manager.cc
@@ -75,9 +75,9 @@ bool DevToolsManager::ForwardToDevToolsAgent(DevToolsClientHost* from,
return true;
}
-void DevToolsManager::ForwardToDevToolsClient(RenderViewHost* inspected_rvh,
+void DevToolsManager::ForwardToDevToolsClient(DevToolsAgentHost* agent_host,
const IPC::Message& message) {
- DevToolsClientHost* client_host = GetDevToolsClientHostFor(inspected_rvh);
+ DevToolsClientHost* client_host = GetDevToolsClientHostFor(agent_host);
if (!client_host) {
// Client window was closed while there were messages
// being sent to it.
@@ -86,11 +86,9 @@ void DevToolsManager::ForwardToDevToolsClient(RenderViewHost* inspected_rvh,
client_host->SendMessageToClient(message);
}
-void DevToolsManager::RuntimePropertyChanged(RenderViewHost* inspected_rvh,
+void DevToolsManager::RuntimePropertyChanged(DevToolsAgentHost* agent_host,
const std::string& name,
const std::string& value) {
- DevToolsAgentHost* agent_host = RenderViewDevToolsAgentHost::FindFor(
- inspected_rvh);
RuntimePropertiesMap::iterator it =
runtime_properties_map_.find(agent_host);
if (it == runtime_properties_map_.end()) {
@@ -232,10 +230,8 @@ void DevToolsManager::SendAttachToAgent(DevToolsAgentHost* agent_host) {
}
void DevToolsManager::SendDetachToAgent(DevToolsAgentHost* agent_host) {
- if (agent_host) {
- agent_host->SendMessageToAgent(new DevToolsAgentMsg_Detach(
- MSG_ROUTING_NONE));
- }
+ agent_host->SendMessageToAgent(new DevToolsAgentMsg_Detach(
+ MSG_ROUTING_NONE));
}
void DevToolsManager::BindClientHost(
diff --git a/content/browser/debugger/devtools_manager.h b/content/browser/debugger/devtools_manager.h
index 8aabfd6..3965308 100644
--- a/content/browser/debugger/devtools_manager.h
+++ b/content/browser/debugger/devtools_manager.h
@@ -52,10 +52,10 @@ class DevToolsManager : public DevToolsClientHost::CloseListener,
bool ForwardToDevToolsAgent(DevToolsClientHost* from,
const IPC::Message& message);
- void ForwardToDevToolsClient(RenderViewHost* inspected_rvh,
+ void ForwardToDevToolsClient(DevToolsAgentHost* agent_host,
const IPC::Message& message);
- void RuntimePropertyChanged(RenderViewHost* inspected_rvh,
+ void RuntimePropertyChanged(DevToolsAgentHost* agent_host,
const std::string& name,
const std::string& value);
diff --git a/content/browser/debugger/devtools_manager_unittest.cc b/content/browser/debugger/devtools_manager_unittest.cc
index 03f541b0..3ac775f 100644
--- a/content/browser/debugger/devtools_manager_unittest.cc
+++ b/content/browser/debugger/devtools_manager_unittest.cc
@@ -7,6 +7,7 @@
#include "content/browser/content_browser_client.h"
#include "content/browser/debugger/devtools_client_host.h"
#include "content/browser/debugger/devtools_manager.h"
+#include "content/browser/debugger/render_view_devtools_agent_host.h"
#include "content/browser/mock_content_browser_client.h"
#include "content/browser/renderer_host/test_render_view_host.h"
#include "content/browser/tab_contents/tab_contents_delegate.h"
@@ -158,7 +159,8 @@ TEST_F(DevToolsManagerTest, ForwardMessageToClient) {
EXPECT_EQ(0, TestDevToolsClientHost::close_counter);
IPC::Message m;
- manager.ForwardToDevToolsClient(rvh(), m);
+ DevToolsAgentHost* agent_host = RenderViewDevToolsAgentHost::FindFor(rvh());
+ manager.ForwardToDevToolsClient(agent_host, m);
EXPECT_TRUE(&m == client_host.last_sent_message);
client_host.Close();
diff --git a/content/browser/debugger/render_view_devtools_agent_host.cc b/content/browser/debugger/render_view_devtools_agent_host.cc
index 47517e42..99560b3 100644
--- a/content/browser/debugger/render_view_devtools_agent_host.cc
+++ b/content/browser/debugger/render_view_devtools_agent_host.cc
@@ -5,9 +5,13 @@
#include "content/browser/debugger/render_view_devtools_agent_host.h"
#include "base/basictypes.h"
+#include "content/browser/content_browser_client.h"
+#include "content/browser/debugger/devtools_manager.h"
+#include "content/browser/debugger/render_view_devtools_agent_host.h"
#include "content/browser/renderer_host/render_process_host.h"
#include "content/browser/renderer_host/render_view_host.h"
#include "content/browser/site_instance.h"
+#include "content/common/devtools_messages.h"
#include "content/common/notification_service.h"
RenderViewDevToolsAgentHost::Instances RenderViewDevToolsAgentHost::instances_;
@@ -21,9 +25,8 @@ DevToolsAgentHost* RenderViewDevToolsAgentHost::FindFor(
}
RenderViewDevToolsAgentHost::RenderViewDevToolsAgentHost(RenderViewHost* rvh)
- : render_view_host_(rvh) {
- registrar_.Add(this, content::NOTIFICATION_RENDER_VIEW_HOST_DELETED,
- Source<RenderViewHost>(rvh));
+ : RenderViewHostObserver(rvh),
+ render_view_host_(rvh) {
instances_[rvh] = this;
}
@@ -44,15 +47,48 @@ int RenderViewDevToolsAgentHost::GetRenderProcessId() {
return render_view_host_->process()->id();
}
-void RenderViewDevToolsAgentHost::Observe(int type,
- const NotificationSource& source,
- const NotificationDetails& details) {
- DCHECK(type == content::NOTIFICATION_RENDER_VIEW_HOST_DELETED);
+RenderViewDevToolsAgentHost::~RenderViewDevToolsAgentHost() {
+ instances_.erase(render_view_host_);
+}
+
+void RenderViewDevToolsAgentHost::RenderViewHostDestroyed() {
NotifyCloseListener();
delete this;
}
-RenderViewDevToolsAgentHost::~RenderViewDevToolsAgentHost() {
- instances_.erase(render_view_host_);
+bool RenderViewDevToolsAgentHost::OnMessageReceived(
+ const IPC::Message& message) {
+ bool handled = true;
+ IPC_BEGIN_MESSAGE_MAP(RenderViewDevToolsAgentHost, message)
+ IPC_MESSAGE_HANDLER(DevToolsHostMsg_ForwardToClient, OnForwardToClient)
+ IPC_MESSAGE_HANDLER(DevToolsHostMsg_RuntimePropertyChanged,
+ OnRuntimePropertyChanged)
+ IPC_MESSAGE_HANDLER(DevToolsHostMsg_ClearBrowserCache, OnClearBrowserCache)
+ IPC_MESSAGE_HANDLER(DevToolsHostMsg_ClearBrowserCookies,
+ OnClearBrowserCookies)
+ IPC_MESSAGE_UNHANDLED(handled = false)
+ IPC_END_MESSAGE_MAP()
+ return handled;
+}
+
+void RenderViewDevToolsAgentHost::OnRuntimePropertyChanged(
+ const std::string& name,
+ const std::string& value) {
+ DevToolsManager::GetInstance()->RuntimePropertyChanged(
+ this, name, value);
+}
+
+void RenderViewDevToolsAgentHost::OnForwardToClient(
+ const IPC::Message& message) {
+ DevToolsManager::GetInstance()->ForwardToDevToolsClient(
+ this, message);
+}
+
+void RenderViewDevToolsAgentHost::OnClearBrowserCache() {
+ content::GetContentClient()->browser()->ClearCache(render_view_host_);
+}
+
+void RenderViewDevToolsAgentHost::OnClearBrowserCookies() {
+ content::GetContentClient()->browser()->ClearCookies(render_view_host_);
}
diff --git a/content/browser/debugger/render_view_devtools_agent_host.h b/content/browser/debugger/render_view_devtools_agent_host.h
index 9950f2a..cd9fd95 100644
--- a/content/browser/debugger/render_view_devtools_agent_host.h
+++ b/content/browser/debugger/render_view_devtools_agent_host.h
@@ -10,13 +10,12 @@
#include "base/basictypes.h"
#include "content/browser/debugger/devtools_agent_host.h"
-#include "content/common/notification_observer.h"
-#include "content/common/notification_registrar.h"
+#include "content/browser/renderer_host/render_view_host_observer.h"
class RenderViewHost;
class RenderViewDevToolsAgentHost : public DevToolsAgentHost,
- public NotificationObserver {
+ private RenderViewHostObserver {
public:
static DevToolsAgentHost* FindFor(RenderViewHost*);
@@ -29,13 +28,17 @@ class RenderViewDevToolsAgentHost : public DevToolsAgentHost,
virtual void NotifyClientClosing();
virtual int GetRenderProcessId();
- // Overridden from NotificationObserver:
- virtual void Observe(int type,
- const NotificationSource& source,
- const NotificationDetails& details);
+ // RenderViewHostObserver overrides.
+ virtual void RenderViewHostDestroyed() OVERRIDE;
+ virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
+
+ void OnForwardToClient(const IPC::Message& message);
+ void OnRuntimePropertyChanged(const std::string& name,
+ const std::string& value);
+ void OnClearBrowserCache();
+ void OnClearBrowserCookies();
RenderViewHost* render_view_host_;
- NotificationRegistrar registrar_;
typedef std::map<RenderViewHost*, RenderViewDevToolsAgentHost*> Instances;
static Instances instances_;
diff --git a/content/content_browser.gypi b/content/content_browser.gypi
index 258d589..713aded 100644
--- a/content/content_browser.gypi
+++ b/content/content_browser.gypi
@@ -83,8 +83,6 @@
'browser/debugger/devtools_agent_host.h',
'browser/debugger/devtools_client_host.cc',
'browser/debugger/devtools_client_host.h',
- 'browser/debugger/devtools_handler.cc',
- 'browser/debugger/devtools_handler.h',
'browser/debugger/devtools_http_protocol_handler.cc',
'browser/debugger/devtools_http_protocol_handler.h',
'browser/debugger/devtools_manager.cc',