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

Side by Side Diff: chrome/renderer/devtools_agent.cc

Issue 6151011: Introduce RenderView::Observer interface so that RenderView doesn't have to k... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 11 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/renderer/devtools_agent.h ('k') | chrome/renderer/devtools_client.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/renderer/devtools_agent.h" 5 #include "chrome/renderer/devtools_agent.h"
6 6
7 #include <map> 7 #include <map>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "chrome/common/chrome_switches.h" 10 #include "chrome/common/chrome_switches.h"
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 } 46 }
47 private: 47 private:
48 MessageLoop* message_loop_; 48 MessageLoop* message_loop_;
49 }; 49 };
50 50
51 } // namespace 51 } // namespace
52 52
53 // static 53 // static
54 std::map<int, DevToolsAgent*> DevToolsAgent::agent_for_routing_id_; 54 std::map<int, DevToolsAgent*> DevToolsAgent::agent_for_routing_id_;
55 55
56 DevToolsAgent::DevToolsAgent(int routing_id, RenderView* render_view) 56 DevToolsAgent::DevToolsAgent(RenderView* render_view)
57 : routing_id_(routing_id), 57 : RenderViewObserver(render_view) {
58 render_view_(render_view) { 58 agent_for_routing_id_[routing_id()] = this;
59 agent_for_routing_id_[routing_id] = this;
60 59
61 CommandLine* cmd = CommandLine::ForCurrentProcess(); 60 CommandLine* cmd = CommandLine::ForCurrentProcess();
62 expose_v8_debugger_protocol_ =cmd->HasSwitch(switches::kRemoteShellPort); 61 expose_v8_debugger_protocol_ = cmd->HasSwitch(switches::kRemoteShellPort);
63 } 62 }
64 63
65 DevToolsAgent::~DevToolsAgent() { 64 DevToolsAgent::~DevToolsAgent() {
66 agent_for_routing_id_.erase(routing_id_); 65 agent_for_routing_id_.erase(routing_id());
67 }
68
69 void DevToolsAgent::OnNavigate() {
70 WebDevToolsAgent* web_agent = GetWebAgent();
71 if (web_agent) {
72 web_agent->didNavigate();
73 }
74 } 66 }
75 67
76 // Called on the Renderer thread. 68 // Called on the Renderer thread.
77 bool DevToolsAgent::OnMessageReceived(const IPC::Message& message) { 69 bool DevToolsAgent::OnMessageReceived(const IPC::Message& message) {
78 bool handled = true; 70 bool handled = true;
79 IPC_BEGIN_MESSAGE_MAP(DevToolsAgent, message) 71 IPC_BEGIN_MESSAGE_MAP(DevToolsAgent, message)
80 IPC_MESSAGE_HANDLER(DevToolsAgentMsg_Attach, OnAttach) 72 IPC_MESSAGE_HANDLER(DevToolsAgentMsg_Attach, OnAttach)
81 IPC_MESSAGE_HANDLER(DevToolsAgentMsg_Detach, OnDetach) 73 IPC_MESSAGE_HANDLER(DevToolsAgentMsg_Detach, OnDetach)
82 IPC_MESSAGE_HANDLER(DevToolsAgentMsg_FrontendLoaded, OnFrontendLoaded) 74 IPC_MESSAGE_HANDLER(DevToolsAgentMsg_FrontendLoaded, OnFrontendLoaded)
83 IPC_MESSAGE_HANDLER(DevToolsAgentMsg_DispatchOnInspectorBackend, 75 IPC_MESSAGE_HANDLER(DevToolsAgentMsg_DispatchOnInspectorBackend,
84 OnDispatchOnInspectorBackend) 76 OnDispatchOnInspectorBackend)
85 IPC_MESSAGE_HANDLER(DevToolsAgentMsg_InspectElement, OnInspectElement) 77 IPC_MESSAGE_HANDLER(DevToolsAgentMsg_InspectElement, OnInspectElement)
86 IPC_MESSAGE_UNHANDLED(handled = false) 78 IPC_MESSAGE_UNHANDLED(handled = false)
87 IPC_END_MESSAGE_MAP() 79 IPC_END_MESSAGE_MAP()
80
81 if (message.type() == ViewMsg_Navigate::ID)
82 OnNavigate(); // Don't want to swallow the message.
83
88 return handled; 84 return handled;
89 } 85 }
90 86
91 void DevToolsAgent::sendMessageToInspectorFrontend( 87 void DevToolsAgent::sendMessageToInspectorFrontend(
92 const WebKit::WebString& message) { 88 const WebKit::WebString& message) {
93 IPC::Message* m = new ViewHostMsg_ForwardToDevToolsClient( 89 Send(new ViewHostMsg_ForwardToDevToolsClient(
94 routing_id_, 90 routing_id(),
95 DevToolsClientMsg_DispatchOnInspectorFrontend(message.utf8())); 91 DevToolsClientMsg_DispatchOnInspectorFrontend(message.utf8())));
96 render_view_->Send(m);
97 } 92 }
98 93
99 void DevToolsAgent::sendDebuggerOutput(const WebKit::WebString& data) { 94 void DevToolsAgent::sendDebuggerOutput(const WebKit::WebString& data) {
100 IPC::Message* m = new ViewHostMsg_ForwardToDevToolsClient( 95 Send(new ViewHostMsg_ForwardToDevToolsClient(
101 routing_id_, 96 routing_id(),
102 DevToolsClientMsg_DebuggerOutput(data.utf8())); 97 DevToolsClientMsg_DebuggerOutput(data.utf8())));
103 render_view_->Send(m);
104 } 98 }
105 99
106 int DevToolsAgent::hostIdentifier() { 100 int DevToolsAgent::hostIdentifier() {
107 return routing_id_; 101 return routing_id();
108 } 102 }
109 103
110 void DevToolsAgent::runtimeFeatureStateChanged( 104 void DevToolsAgent::runtimeFeatureStateChanged(
111 const WebKit::WebString& feature, 105 const WebKit::WebString& feature,
112 bool enabled) { 106 bool enabled) {
113 render_view_->Send(new ViewHostMsg_DevToolsRuntimePropertyChanged( 107 Send(new ViewHostMsg_DevToolsRuntimePropertyChanged(
114 routing_id_, 108 routing_id(),
115 feature.utf8(), 109 feature.utf8(),
116 enabled ? "true" : "false")); 110 enabled ? "true" : "false"));
117 } 111 }
118 112
119 void DevToolsAgent::runtimePropertyChanged( 113 void DevToolsAgent::runtimePropertyChanged(
120 const WebKit::WebString& name, 114 const WebKit::WebString& name,
121 const WebKit::WebString& value) { 115 const WebKit::WebString& value) {
122 render_view_->Send(new ViewHostMsg_DevToolsRuntimePropertyChanged( 116 Send(new ViewHostMsg_DevToolsRuntimePropertyChanged(
123 routing_id_, 117 routing_id(),
124 name.utf8(), 118 name.utf8(),
125 value.utf8())); 119 value.utf8()));
126 } 120 }
127 121
128 WebCString DevToolsAgent::debuggerScriptSource() { 122 WebCString DevToolsAgent::debuggerScriptSource() {
129 base::StringPiece debuggerScriptjs = 123 base::StringPiece debuggerScriptjs =
130 webkit_glue::GetDataResource(IDR_DEVTOOLS_DEBUGGER_SCRIPT_JS); 124 webkit_glue::GetDataResource(IDR_DEVTOOLS_DEBUGGER_SCRIPT_JS);
131 return WebCString(debuggerScriptjs.data(), debuggerScriptjs.length()); 125 return WebCString(debuggerScriptjs.data(), debuggerScriptjs.length());
132 } 126 }
133 127
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
184 } 178 }
185 179
186 void DevToolsAgent::OnInspectElement(int x, int y) { 180 void DevToolsAgent::OnInspectElement(int x, int y) {
187 WebDevToolsAgent* web_agent = GetWebAgent(); 181 WebDevToolsAgent* web_agent = GetWebAgent();
188 if (web_agent) { 182 if (web_agent) {
189 web_agent->attach(); 183 web_agent->attach();
190 web_agent->inspectElementAt(WebPoint(x, y)); 184 web_agent->inspectElementAt(WebPoint(x, y));
191 } 185 }
192 } 186 }
193 187
188 void DevToolsAgent::OnNavigate() {
189 WebDevToolsAgent* web_agent = GetWebAgent();
190 if (web_agent) {
191 web_agent->didNavigate();
192 }
193 }
194
194 WebDevToolsAgent* DevToolsAgent::GetWebAgent() { 195 WebDevToolsAgent* DevToolsAgent::GetWebAgent() {
195 WebView* web_view = render_view_->webview(); 196 WebView* web_view = render_view()->webview();
196 if (!web_view) 197 if (!web_view)
197 return NULL; 198 return NULL;
198 return web_view->devToolsAgent(); 199 return web_view->devToolsAgent();
199 } 200 }
OLDNEW
« no previous file with comments | « chrome/renderer/devtools_agent.h ('k') | chrome/renderer/devtools_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698