diff options
Diffstat (limited to 'content')
-rw-r--r-- | content/browser/debugger/devtools_client_host.h | 18 | ||||
-rw-r--r-- | content/browser/debugger/devtools_handler.cc | 107 | ||||
-rw-r--r-- | content/browser/debugger/devtools_handler.h | 40 | ||||
-rw-r--r-- | content/browser/debugger/devtools_manager.cc | 14 | ||||
-rw-r--r-- | content/browser/debugger/devtools_manager.h | 4 | ||||
-rw-r--r-- | content/browser/debugger/devtools_manager_unittest.cc | 4 | ||||
-rw-r--r-- | content/browser/debugger/render_view_devtools_agent_host.cc | 54 | ||||
-rw-r--r-- | content/browser/debugger/render_view_devtools_agent_host.h | 19 | ||||
-rw-r--r-- | content/content_browser.gypi | 2 |
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', |