Index: content/renderer/devtools_agent.cc |
diff --git a/content/renderer/devtools_agent.cc b/content/renderer/devtools_agent.cc |
deleted file mode 100644 |
index 91fc3b3caaf4c73b36163d92e07d000b63d85d20..0000000000000000000000000000000000000000 |
--- a/content/renderer/devtools_agent.cc |
+++ /dev/null |
@@ -1,245 +0,0 @@ |
-// Copyright (c) 2012 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/renderer/devtools_agent.h" |
- |
-#include <map> |
- |
-#include "base/lazy_instance.h" |
-#include "base/message_loop.h" |
-#include "base/process.h" |
-#include "base/string_number_conversions.h" |
-#include "content/common/devtools_messages.h" |
-#include "content/common/view_messages.h" |
-#include "content/renderer/devtools_agent_filter.h" |
-#include "content/renderer/devtools_client.h" |
-#include "content/renderer/render_view_impl.h" |
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebConsoleMessage.h" |
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebDevToolsAgent.h" |
-#include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebPoint.h" |
-#include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebString.h" |
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebConsoleMessage.h" |
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h" |
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h" |
- |
-#if defined(USE_TCMALLOC) |
-#include "third_party/tcmalloc/chromium/src/gperftools/heap-profiler.h" |
-#endif |
- |
-using WebKit::WebConsoleMessage; |
-using WebKit::WebDevToolsAgent; |
-using WebKit::WebDevToolsAgentClient; |
-using WebKit::WebFrame; |
-using WebKit::WebPoint; |
-using WebKit::WebString; |
-using WebKit::WebCString; |
-using WebKit::WebVector; |
-using WebKit::WebView; |
- |
-namespace content { |
- |
-namespace { |
- |
-class WebKitClientMessageLoopImpl |
- : public WebDevToolsAgentClient::WebKitClientMessageLoop { |
- public: |
- WebKitClientMessageLoopImpl() : message_loop_(MessageLoop::current()) { } |
- virtual ~WebKitClientMessageLoopImpl() { |
- message_loop_ = NULL; |
- } |
- virtual void run() { |
- MessageLoop::ScopedNestableTaskAllower allow(message_loop_); |
- message_loop_->Run(); |
- } |
- virtual void quitNow() { |
- message_loop_->QuitNow(); |
- } |
- private: |
- MessageLoop* message_loop_; |
-}; |
- |
-typedef std::map<int, DevToolsAgent*> IdToAgentMap; |
-base::LazyInstance<IdToAgentMap>::Leaky |
- g_agent_for_routing_id = LAZY_INSTANCE_INITIALIZER; |
- |
-} // namespace |
- |
-DevToolsAgent::DevToolsAgent(RenderViewImpl* render_view) |
- : RenderViewObserver(render_view), is_attached_(false) { |
- g_agent_for_routing_id.Get()[routing_id()] = this; |
- |
- render_view->webview()->setDevToolsAgentClient(this); |
- render_view->webview()->devToolsAgent()->setProcessId( |
- base::Process::Current().pid()); |
-} |
- |
-DevToolsAgent::~DevToolsAgent() { |
- g_agent_for_routing_id.Get().erase(routing_id()); |
-} |
- |
-// Called on the Renderer thread. |
-bool DevToolsAgent::OnMessageReceived(const IPC::Message& message) { |
- bool handled = true; |
- IPC_BEGIN_MESSAGE_MAP(DevToolsAgent, message) |
- IPC_MESSAGE_HANDLER(DevToolsAgentMsg_Attach, OnAttach) |
- IPC_MESSAGE_HANDLER(DevToolsAgentMsg_Reattach, OnReattach) |
- IPC_MESSAGE_HANDLER(DevToolsAgentMsg_Detach, OnDetach) |
- IPC_MESSAGE_HANDLER(DevToolsAgentMsg_DispatchOnInspectorBackend, |
- OnDispatchOnInspectorBackend) |
- IPC_MESSAGE_HANDLER(DevToolsAgentMsg_InspectElement, OnInspectElement) |
- IPC_MESSAGE_HANDLER(DevToolsAgentMsg_AddMessageToConsole, |
- OnAddMessageToConsole) |
- IPC_MESSAGE_HANDLER(DevToolsMsg_SetupDevToolsClient, OnSetupDevToolsClient) |
- IPC_MESSAGE_UNHANDLED(handled = false) |
- IPC_END_MESSAGE_MAP() |
- |
- if (message.type() == ViewMsg_Navigate::ID || |
- message.type() == ViewMsg_Close::ID) |
- ContinueProgram(); // Don't want to swallow the message. |
- |
- return handled; |
-} |
- |
-void DevToolsAgent::sendMessageToInspectorFrontend( |
- const WebKit::WebString& message) { |
- Send(new DevToolsClientMsg_DispatchOnInspectorFrontend(routing_id(), |
- message.utf8())); |
-} |
- |
-int DevToolsAgent::hostIdentifier() { |
- return routing_id(); |
-} |
- |
-void DevToolsAgent::saveAgentRuntimeState( |
- const WebKit::WebString& state) { |
- Send(new DevToolsHostMsg_SaveAgentRuntimeState(routing_id(), state.utf8())); |
-} |
- |
-WebKit::WebDevToolsAgentClient::WebKitClientMessageLoop* |
- DevToolsAgent::createClientMessageLoop() { |
- return new WebKitClientMessageLoopImpl(); |
-} |
- |
-void DevToolsAgent::clearBrowserCache() { |
- Send(new DevToolsHostMsg_ClearBrowserCache(routing_id())); |
-} |
- |
-void DevToolsAgent::clearBrowserCookies() { |
- Send(new DevToolsHostMsg_ClearBrowserCookies(routing_id())); |
-} |
- |
-#if defined(USE_TCMALLOC) && !defined(OS_WIN) |
-static void AllocationVisitor(void* data, const void* ptr) { |
- typedef WebKit::WebDevToolsAgentClient::AllocatedObjectVisitor Visitor; |
- Visitor* visitor = reinterpret_cast<Visitor*>(data); |
- visitor->visitObject(ptr); |
-} |
-#endif |
- |
-void DevToolsAgent::visitAllocatedObjects(AllocatedObjectVisitor* visitor) { |
-#if defined(USE_TCMALLOC) && !defined(OS_WIN) |
- IterateAllocatedObjects(&AllocationVisitor, visitor); |
-#endif |
-} |
- |
-// static |
-DevToolsAgent* DevToolsAgent::FromHostId(int host_id) { |
- IdToAgentMap::iterator it = g_agent_for_routing_id.Get().find(host_id); |
- if (it != g_agent_for_routing_id.Get().end()) { |
- return it->second; |
- } |
- return NULL; |
-} |
- |
-void DevToolsAgent::OnAttach() { |
- WebDevToolsAgent* web_agent = GetWebAgent(); |
- if (web_agent) { |
- web_agent->attach(); |
- is_attached_ = true; |
- } |
-} |
- |
-void DevToolsAgent::OnReattach(const std::string& agent_state) { |
- WebDevToolsAgent* web_agent = GetWebAgent(); |
- if (web_agent) { |
- web_agent->reattach(WebString::fromUTF8(agent_state)); |
- is_attached_ = true; |
- } |
-} |
- |
-void DevToolsAgent::OnDetach() { |
- WebDevToolsAgent* web_agent = GetWebAgent(); |
- if (web_agent) { |
- web_agent->detach(); |
- is_attached_ = false; |
- } |
-} |
- |
-void DevToolsAgent::OnDispatchOnInspectorBackend(const std::string& message) { |
- WebDevToolsAgent* web_agent = GetWebAgent(); |
- if (web_agent) |
- web_agent->dispatchOnInspectorBackend(WebString::fromUTF8(message)); |
-} |
- |
-void DevToolsAgent::OnInspectElement(int x, int y) { |
- WebDevToolsAgent* web_agent = GetWebAgent(); |
- if (web_agent) { |
- web_agent->attach(); |
- web_agent->inspectElementAt(WebPoint(x, y)); |
- } |
-} |
- |
-void DevToolsAgent::OnAddMessageToConsole(ConsoleMessageLevel level, |
- const std::string& message) { |
- WebView* web_view = render_view()->GetWebView(); |
- if (!web_view) |
- return; |
- |
- WebFrame* main_frame = web_view-> mainFrame(); |
- if (!main_frame) |
- return; |
- |
- WebConsoleMessage::Level target_level = WebConsoleMessage::LevelLog; |
- switch (level) { |
- case CONSOLE_MESSAGE_LEVEL_TIP: |
- target_level = WebConsoleMessage::LevelTip; |
- break; |
- case CONSOLE_MESSAGE_LEVEL_LOG: |
- target_level = WebConsoleMessage::LevelLog; |
- break; |
- case CONSOLE_MESSAGE_LEVEL_WARNING: |
- target_level = WebConsoleMessage::LevelWarning; |
- break; |
- case CONSOLE_MESSAGE_LEVEL_ERROR: |
- target_level = WebConsoleMessage::LevelError; |
- break; |
- } |
- main_frame->addMessageToConsole( |
- WebConsoleMessage(target_level, WebString::fromUTF8(message))); |
-} |
- |
-void DevToolsAgent::ContinueProgram() { |
- WebDevToolsAgent* web_agent = GetWebAgent(); |
- // TODO(pfeldman): rename didNavigate to continueProgram upstream. |
- // That is in fact the purpose of the signal. |
- if (web_agent) |
- web_agent->didNavigate(); |
-} |
- |
-void DevToolsAgent::OnSetupDevToolsClient() { |
- new DevToolsClient(static_cast<RenderViewImpl*>(render_view())); |
-} |
- |
-WebDevToolsAgent* DevToolsAgent::GetWebAgent() { |
- WebView* web_view = render_view()->GetWebView(); |
- if (!web_view) |
- return NULL; |
- return web_view->devToolsAgent(); |
-} |
- |
-bool DevToolsAgent::IsAttached() { |
- return is_attached_; |
-} |
- |
-} // namespace content |