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

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

Issue 182993003: Add the ability for DevTools to wrap network transactions. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed comments Created 6 years, 8 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 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
158 const IPC::Message& message) { 158 const IPC::Message& message) {
159 RenderViewDevToolsAgentHost* agent_host = FindAgentHost(source); 159 RenderViewDevToolsAgentHost* agent_host = FindAgentHost(source);
160 return agent_host && agent_host->DispatchIPCMessage(message); 160 return agent_host && agent_host->DispatchIPCMessage(message);
161 } 161 }
162 162
163 RenderViewDevToolsAgentHost::RenderViewDevToolsAgentHost( 163 RenderViewDevToolsAgentHost::RenderViewDevToolsAgentHost(
164 RenderViewHost* rvh) 164 RenderViewHost* rvh)
165 : render_view_host_(NULL), 165 : render_view_host_(NULL),
166 overrides_handler_(new RendererOverridesHandler(this)), 166 overrides_handler_(new RendererOverridesHandler(this)),
167 tracing_handler_(new DevToolsTracingHandler()), 167 tracing_handler_(new DevToolsTracingHandler()),
168 power_handler_(new DevToolsPowerHandler()) 168 power_handler_(new DevToolsPowerHandler()),
169 network_disabled_(false)
169 { 170 {
mmenke 2014/04/21 17:16:51 nit: The open brace should be on the previous lin
eustas 2014/04/22 14:23:09 Done.
170 SetRenderViewHost(rvh); 171 SetRenderViewHost(rvh);
171 DevToolsProtocol::Notifier notifier(base::Bind( 172 DevToolsProtocol::Notifier notifier(base::Bind(
172 &RenderViewDevToolsAgentHost::OnDispatchOnInspectorFrontend, 173 &RenderViewDevToolsAgentHost::OnDispatchOnInspectorFrontend,
173 base::Unretained(this))); 174 base::Unretained(this)));
174 overrides_handler_->SetNotifier(notifier); 175 overrides_handler_->SetNotifier(notifier);
175 tracing_handler_->SetNotifier(notifier); 176 tracing_handler_->SetNotifier(notifier);
176 power_handler_->SetNotifier(notifier); 177 power_handler_->SetNotifier(notifier);
177 g_instances.Get().push_back(this); 178 g_instances.Get().push_back(this);
178 AddRef(); // Balanced in RenderViewHostDestroyed. 179 AddRef(); // Balanced in RenderViewHostDestroyed.
179 } 180 }
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
216 if (!render_view_host_) 217 if (!render_view_host_)
217 return; 218 return;
218 219
219 ChildProcessSecurityPolicyImpl::GetInstance()->GrantReadRawCookies( 220 ChildProcessSecurityPolicyImpl::GetInstance()->GrantReadRawCookies(
220 render_view_host_->GetProcess()->GetID()); 221 render_view_host_->GetProcess()->GetID());
221 222
222 // TODO(kaznacheev): Move this call back to DevToolsManagerImpl when 223 // TODO(kaznacheev): Move this call back to DevToolsManagerImpl when
223 // extensions::ProcessManager no longer relies on this notification. 224 // extensions::ProcessManager no longer relies on this notification.
224 DevToolsManagerImpl::GetInstance()->NotifyObservers(this, true); 225 DevToolsManagerImpl::GetInstance()->NotifyObservers(this, true);
225 226
227 UpdateNetworkState(network_disabled_);
228
226 #if defined(OS_ANDROID) 229 #if defined(OS_ANDROID)
227 power_save_blocker_.reset( 230 power_save_blocker_.reset(
228 static_cast<PowerSaveBlockerImpl*>( 231 static_cast<PowerSaveBlockerImpl*>(
229 PowerSaveBlocker::Create( 232 PowerSaveBlocker::Create(
230 PowerSaveBlocker::kPowerSaveBlockPreventDisplaySleep, 233 PowerSaveBlocker::kPowerSaveBlockPreventDisplaySleep,
231 "DevTools").release())); 234 "DevTools").release()));
232 if (render_view_host_->GetView()) { 235 if (render_view_host_->GetView()) {
233 power_save_blocker_.get()-> 236 power_save_blocker_.get()->
234 InitDisplaySleepBlocker(render_view_host_->GetView()->GetNativeView()); 237 InitDisplaySleepBlocker(render_view_host_->GetView()->GetNativeView());
235 } 238 }
236 #endif 239 #endif
237 } 240 }
238 241
239 void RenderViewDevToolsAgentHost::OnClientDetached() { 242 void RenderViewDevToolsAgentHost::OnClientDetached() {
240 #if defined(OS_ANDROID) 243 #if defined(OS_ANDROID)
241 power_save_blocker_.reset(); 244 power_save_blocker_.reset();
242 #endif 245 #endif
246 UpdateNetworkState(false);
247
243 overrides_handler_->OnClientDetached(); 248 overrides_handler_->OnClientDetached();
244 ClientDetachedFromRenderer(); 249 ClientDetachedFromRenderer();
245 } 250 }
246 251
247 void RenderViewDevToolsAgentHost::ClientDetachedFromRenderer() { 252 void RenderViewDevToolsAgentHost::ClientDetachedFromRenderer() {
248 if (!render_view_host_) 253 if (!render_view_host_)
249 return; 254 return;
250 255
251 bool process_has_agents = false; 256 bool process_has_agents = false;
252 RenderProcessHost* render_process_host = render_view_host_->GetProcess(); 257 RenderProcessHost* render_process_host = render_view_host_->GetProcess();
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
398 403
399 bool handled = true; 404 bool handled = true;
400 IPC_BEGIN_MESSAGE_MAP(RenderViewDevToolsAgentHost, msg) 405 IPC_BEGIN_MESSAGE_MAP(RenderViewDevToolsAgentHost, msg)
401 IPC_MESSAGE_HANDLER(DevToolsClientMsg_DispatchOnInspectorFrontend, 406 IPC_MESSAGE_HANDLER(DevToolsClientMsg_DispatchOnInspectorFrontend,
402 OnDispatchOnInspectorFrontend) 407 OnDispatchOnInspectorFrontend)
403 IPC_MESSAGE_HANDLER(DevToolsHostMsg_SaveAgentRuntimeState, 408 IPC_MESSAGE_HANDLER(DevToolsHostMsg_SaveAgentRuntimeState,
404 OnSaveAgentRuntimeState) 409 OnSaveAgentRuntimeState)
405 IPC_MESSAGE_HANDLER(DevToolsHostMsg_ClearBrowserCache, OnClearBrowserCache) 410 IPC_MESSAGE_HANDLER(DevToolsHostMsg_ClearBrowserCache, OnClearBrowserCache)
406 IPC_MESSAGE_HANDLER(DevToolsHostMsg_ClearBrowserCookies, 411 IPC_MESSAGE_HANDLER(DevToolsHostMsg_ClearBrowserCookies,
407 OnClearBrowserCookies) 412 OnClearBrowserCookies)
413 IPC_MESSAGE_HANDLER(DevToolsHostMsg_DisableNetwork,
414 OnDisableNetwork)
408 IPC_MESSAGE_HANDLER_GENERIC(ViewHostMsg_SwapCompositorFrame, 415 IPC_MESSAGE_HANDLER_GENERIC(ViewHostMsg_SwapCompositorFrame,
409 handled = false; OnSwapCompositorFrame(msg)) 416 handled = false; OnSwapCompositorFrame(msg))
410 IPC_MESSAGE_UNHANDLED(handled = false) 417 IPC_MESSAGE_UNHANDLED(handled = false)
411 IPC_END_MESSAGE_MAP() 418 IPC_END_MESSAGE_MAP()
412 return handled; 419 return handled;
413 } 420 }
414 421
415 void RenderViewDevToolsAgentHost::OnSwapCompositorFrame( 422 void RenderViewDevToolsAgentHost::OnSwapCompositorFrame(
416 const IPC::Message& message) { 423 const IPC::Message& message) {
417 ViewHostMsg_SwapCompositorFrame::Param param; 424 ViewHostMsg_SwapCompositorFrame::Param param;
(...skipping 27 matching lines...) Expand all
445 void RenderViewDevToolsAgentHost::OnClearBrowserCache() { 452 void RenderViewDevToolsAgentHost::OnClearBrowserCache() {
446 if (render_view_host_) 453 if (render_view_host_)
447 GetContentClient()->browser()->ClearCache(render_view_host_); 454 GetContentClient()->browser()->ClearCache(render_view_host_);
448 } 455 }
449 456
450 void RenderViewDevToolsAgentHost::OnClearBrowserCookies() { 457 void RenderViewDevToolsAgentHost::OnClearBrowserCookies() {
451 if (render_view_host_) 458 if (render_view_host_)
452 GetContentClient()->browser()->ClearCookies(render_view_host_); 459 GetContentClient()->browser()->ClearCookies(render_view_host_);
453 } 460 }
454 461
462 void RenderViewDevToolsAgentHost::UpdateNetworkState(bool disable_network) {
463 if (render_view_host_) {
464 GetContentClient()->browser()->DisableNetwork(
465 render_view_host_, GetId(), disable_network);
466 }
467 }
468
469 void RenderViewDevToolsAgentHost::OnDisableNetwork(
470 bool disable_network) {
471 network_disabled_ = disable_network;
472 UpdateNetworkState(disable_network);
473 }
474
455 } // namespace content 475 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698