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

Side by Side Diff: content/browser/devtools/render_view_devtools_agent_host.cc

Issue 442303002: DevTools: migrate DevTools APIs to use WebContents instead of RenderViewHost. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 4 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "content/browser/devtools/render_view_devtools_agent_host.h" 5 #include "content/browser/devtools/render_view_devtools_agent_host.h"
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/lazy_instance.h" 8 #include "base/lazy_instance.h"
9 #include "content/browser/child_process_security_policy_impl.h" 9 #include "content/browser/child_process_security_policy_impl.h"
10 #include "content/browser/devtools/devtools_manager_impl.h" 10 #include "content/browser/devtools/devtools_manager_impl.h"
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 static_cast<WebContentsImpl*>(web_contents); 46 static_cast<WebContentsImpl*>(web_contents);
47 for (Instances::iterator it = g_instances.Get().begin(); 47 for (Instances::iterator it = g_instances.Get().begin();
48 it != g_instances.Get().end(); ++it) { 48 it != g_instances.Get().end(); ++it) {
49 RenderViewHost* rvh = (*it)->render_view_host(); 49 RenderViewHost* rvh = (*it)->render_view_host();
50 if (rvh && rvh->GetDelegate() == delegate) 50 if (rvh && rvh->GetDelegate() == delegate)
51 return *it; 51 return *it;
52 } 52 }
53 return NULL; 53 return NULL;
54 } 54 }
55 55
56 static RenderViewDevToolsAgentHost* FindAgentHost(RenderViewHost* rvh) {
57 if (g_instances == NULL)
58 return NULL;
59 for (Instances::iterator it = g_instances.Get().begin();
60 it != g_instances.Get().end(); ++it) {
61 if (rvh == (*it)->render_view_host())
62 return *it;
63 }
64 return NULL;
65 }
66
67 } // namespace 56 } // namespace
68 57
69 scoped_refptr<DevToolsAgentHost> 58 scoped_refptr<DevToolsAgentHost>
70 DevToolsAgentHost::GetOrCreateFor(WebContents* web_contents) { 59 DevToolsAgentHost::GetOrCreateFor(WebContents* web_contents) {
71 RenderViewDevToolsAgentHost* result = FindAgentHost(web_contents); 60 RenderViewDevToolsAgentHost* result = FindAgentHost(web_contents);
72 if (!result) 61 if (!result)
73 result = new RenderViewDevToolsAgentHost(web_contents->GetRenderViewHost()); 62 result = new RenderViewDevToolsAgentHost(web_contents->GetRenderViewHost());
74 return result; 63 return result;
75 } 64 }
76 65
77 // static 66 // static
78 scoped_refptr<DevToolsAgentHost> 67 bool DevToolsAgentHost::HasFor(WebContents* web_contents) {
79 DevToolsAgentHost::GetOrCreateFor(RenderViewHost* rvh) { 68 return FindAgentHost(web_contents) != NULL;
80 RenderViewDevToolsAgentHost* result = FindAgentHost(rvh);
81 if (!result)
82 result = new RenderViewDevToolsAgentHost(rvh);
83 return result;
84 } 69 }
85 70
86 // static 71 // static
87 bool DevToolsAgentHost::HasFor(RenderViewHost* rvh) {
88 return FindAgentHost(rvh) != NULL;
89 }
90
91 // static
92 bool DevToolsAgentHost::IsDebuggerAttached(WebContents* web_contents) { 72 bool DevToolsAgentHost::IsDebuggerAttached(WebContents* web_contents) {
93 if (g_instances == NULL) 73 if (g_instances == NULL)
94 return false; 74 return false;
95 DevToolsManager* devtools_manager = DevToolsManager::GetInstance(); 75 DevToolsManager* devtools_manager = DevToolsManager::GetInstance();
96 if (!devtools_manager) 76 if (!devtools_manager)
97 return false; 77 return false;
98 RenderViewHostDelegate* delegate = 78 RenderViewHostDelegate* delegate =
99 static_cast<WebContentsImpl*>(web_contents); 79 static_cast<WebContentsImpl*>(web_contents);
100 for (Instances::iterator it = g_instances.Get().begin(); 80 for (Instances::iterator it = g_instances.Get().begin();
101 it != g_instances.Get().end(); ++it) { 81 it != g_instances.Get().end(); ++it) {
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
139 119
140 result.push_back(rvh); 120 result.push_back(rvh);
141 } 121 }
142 return result; 122 return result;
143 } 123 }
144 124
145 // static 125 // static
146 void RenderViewDevToolsAgentHost::OnCancelPendingNavigation( 126 void RenderViewDevToolsAgentHost::OnCancelPendingNavigation(
147 RenderViewHost* pending, 127 RenderViewHost* pending,
148 RenderViewHost* current) { 128 RenderViewHost* current) {
149 RenderViewDevToolsAgentHost* agent_host = FindAgentHost(pending); 129 WebContents* web_contents = WebContents::FromRenderViewHost(pending);
130 RenderViewDevToolsAgentHost* agent_host = FindAgentHost(web_contents);
150 if (!agent_host) 131 if (!agent_host)
151 return; 132 return;
152 agent_host->DisconnectRenderViewHost(); 133 agent_host->DisconnectRenderViewHost();
153 agent_host->ConnectRenderViewHost(current); 134 agent_host->ConnectRenderViewHost(current);
154 } 135 }
155 136
156 // static
157 bool RenderViewDevToolsAgentHost::DispatchIPCMessage(
158 RenderViewHost* source,
159 const IPC::Message& message) {
160 RenderViewDevToolsAgentHost* agent_host = FindAgentHost(source);
161 return agent_host && agent_host->DispatchIPCMessage(message);
162 }
163
164 RenderViewDevToolsAgentHost::RenderViewDevToolsAgentHost(RenderViewHost* rvh) 137 RenderViewDevToolsAgentHost::RenderViewDevToolsAgentHost(RenderViewHost* rvh)
165 : render_view_host_(NULL), 138 : render_view_host_(NULL),
166 overrides_handler_(new RendererOverridesHandler(this)), 139 overrides_handler_(new RendererOverridesHandler(this)),
167 tracing_handler_( 140 tracing_handler_(
168 new DevToolsTracingHandler(DevToolsTracingHandler::Renderer)), 141 new DevToolsTracingHandler(DevToolsTracingHandler::Renderer)),
169 power_handler_(new DevToolsPowerHandler()), 142 power_handler_(new DevToolsPowerHandler()),
170 reattaching_(false) { 143 reattaching_(false) {
171 SetRenderViewHost(rvh); 144 SetRenderViewHost(rvh);
172 DevToolsProtocol::Notifier notifier(base::Bind( 145 DevToolsProtocol::Notifier notifier(base::Bind(
173 &RenderViewDevToolsAgentHost::OnDispatchOnInspectorFrontend, 146 &RenderViewDevToolsAgentHost::OnDispatchOnInspectorFrontend,
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
356 #if defined(OS_ANDROID) 329 #if defined(OS_ANDROID)
357 case base::TERMINATION_STATUS_OOM_PROTECTED: 330 case base::TERMINATION_STATUS_OOM_PROTECTED:
358 #endif 331 #endif
359 RenderViewCrashed(); 332 RenderViewCrashed();
360 break; 333 break;
361 default: 334 default:
362 break; 335 break;
363 } 336 }
364 } 337 }
365 338
339 bool RenderViewDevToolsAgentHost::OnMessageReceived(
340 const IPC::Message& message,
341 RenderFrameHost* render_frame_host) {
342 return DispatchIPCMessage(message);
343 }
344
345 bool RenderViewDevToolsAgentHost::OnMessageReceived(
346 const IPC::Message& message) {
347 return DispatchIPCMessage(message);
348 }
349
366 void RenderViewDevToolsAgentHost::DidAttachInterstitialPage() { 350 void RenderViewDevToolsAgentHost::DidAttachInterstitialPage() {
367 if (!render_view_host_) 351 if (!render_view_host_)
368 return; 352 return;
369 // The rvh set in AboutToNavigateRenderView turned out to be interstitial. 353 // The rvh set in AboutToNavigateRenderView turned out to be interstitial.
370 // Connect back to the real one. 354 // Connect back to the real one.
371 WebContents* web_contents = 355 WebContents* web_contents =
372 WebContents::FromRenderViewHost(render_view_host_); 356 WebContents::FromRenderViewHost(render_view_host_);
373 if (!web_contents) 357 if (!web_contents)
374 return; 358 return;
375 DisconnectRenderViewHost(); 359 DisconnectRenderViewHost();
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
482 DevToolsProtocol::ParseNotification(message); 466 DevToolsProtocol::ParseNotification(message);
483 467
484 if (notification) { 468 if (notification) {
485 tracing_handler_->HandleNotification(notification); 469 tracing_handler_->HandleNotification(notification);
486 } 470 }
487 DevToolsManagerImpl::GetInstance()->DispatchOnInspectorFrontend( 471 DevToolsManagerImpl::GetInstance()->DispatchOnInspectorFrontend(
488 this, message); 472 this, message);
489 } 473 }
490 474
491 } // namespace content 475 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698