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

Unified 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/renderer/devtools_agent.h ('k') | chrome/renderer/devtools_client.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/renderer/devtools_agent.cc
===================================================================
--- chrome/renderer/devtools_agent.cc (revision 71253)
+++ chrome/renderer/devtools_agent.cc (working copy)
@@ -53,26 +53,18 @@
// static
std::map<int, DevToolsAgent*> DevToolsAgent::agent_for_routing_id_;
-DevToolsAgent::DevToolsAgent(int routing_id, RenderView* render_view)
- : routing_id_(routing_id),
- render_view_(render_view) {
- agent_for_routing_id_[routing_id] = this;
+DevToolsAgent::DevToolsAgent(RenderView* render_view)
+ : RenderViewObserver(render_view) {
+ agent_for_routing_id_[routing_id()] = this;
CommandLine* cmd = CommandLine::ForCurrentProcess();
- expose_v8_debugger_protocol_ =cmd->HasSwitch(switches::kRemoteShellPort);
+ expose_v8_debugger_protocol_ = cmd->HasSwitch(switches::kRemoteShellPort);
}
DevToolsAgent::~DevToolsAgent() {
- agent_for_routing_id_.erase(routing_id_);
+ agent_for_routing_id_.erase(routing_id());
}
-void DevToolsAgent::OnNavigate() {
- WebDevToolsAgent* web_agent = GetWebAgent();
- if (web_agent) {
- web_agent->didNavigate();
- }
-}
-
// Called on the Renderer thread.
bool DevToolsAgent::OnMessageReceived(const IPC::Message& message) {
bool handled = true;
@@ -85,33 +77,35 @@
IPC_MESSAGE_HANDLER(DevToolsAgentMsg_InspectElement, OnInspectElement)
IPC_MESSAGE_UNHANDLED(handled = false)
IPC_END_MESSAGE_MAP()
+
+ if (message.type() == ViewMsg_Navigate::ID)
+ OnNavigate(); // Don't want to swallow the message.
+
return handled;
}
void DevToolsAgent::sendMessageToInspectorFrontend(
const WebKit::WebString& message) {
- IPC::Message* m = new ViewHostMsg_ForwardToDevToolsClient(
- routing_id_,
- DevToolsClientMsg_DispatchOnInspectorFrontend(message.utf8()));
- render_view_->Send(m);
+ Send(new ViewHostMsg_ForwardToDevToolsClient(
+ routing_id(),
+ DevToolsClientMsg_DispatchOnInspectorFrontend(message.utf8())));
}
void DevToolsAgent::sendDebuggerOutput(const WebKit::WebString& data) {
- IPC::Message* m = new ViewHostMsg_ForwardToDevToolsClient(
- routing_id_,
- DevToolsClientMsg_DebuggerOutput(data.utf8()));
- render_view_->Send(m);
+ Send(new ViewHostMsg_ForwardToDevToolsClient(
+ routing_id(),
+ DevToolsClientMsg_DebuggerOutput(data.utf8())));
}
int DevToolsAgent::hostIdentifier() {
- return routing_id_;
+ return routing_id();
}
void DevToolsAgent::runtimeFeatureStateChanged(
const WebKit::WebString& feature,
bool enabled) {
- render_view_->Send(new ViewHostMsg_DevToolsRuntimePropertyChanged(
- routing_id_,
+ Send(new ViewHostMsg_DevToolsRuntimePropertyChanged(
+ routing_id(),
feature.utf8(),
enabled ? "true" : "false"));
}
@@ -119,8 +113,8 @@
void DevToolsAgent::runtimePropertyChanged(
const WebKit::WebString& name,
const WebKit::WebString& value) {
- render_view_->Send(new ViewHostMsg_DevToolsRuntimePropertyChanged(
- routing_id_,
+ Send(new ViewHostMsg_DevToolsRuntimePropertyChanged(
+ routing_id(),
name.utf8(),
value.utf8()));
}
@@ -191,8 +185,15 @@
}
}
+void DevToolsAgent::OnNavigate() {
+ WebDevToolsAgent* web_agent = GetWebAgent();
+ if (web_agent) {
+ web_agent->didNavigate();
+ }
+}
+
WebDevToolsAgent* DevToolsAgent::GetWebAgent() {
- WebView* web_view = render_view_->webview();
+ WebView* web_view = render_view()->webview();
if (!web_view)
return NULL;
return web_view->devToolsAgent();
« 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