 Chromium Code Reviews
 Chromium Code Reviews Issue 2003803002:
  Remove dependency of power_save_blocker_android on various content bits  (Closed) 
  Base URL: https://chromium.googlesource.com/chromium/src.git@power-save-task-runners
    
  
    Issue 2003803002:
  Remove dependency of power_save_blocker_android on various content bits  (Closed) 
  Base URL: https://chromium.googlesource.com/chromium/src.git@power-save-task-runners| Index: content/browser/devtools/render_frame_devtools_agent_host.cc | 
| diff --git a/content/browser/devtools/render_frame_devtools_agent_host.cc b/content/browser/devtools/render_frame_devtools_agent_host.cc | 
| index 07f422484bb4e4033b7e1bffc7c33b6b134f7430..708608584a1b868b62a697d8248c6bb6f6f5ceae 100644 | 
| --- a/content/browser/devtools/render_frame_devtools_agent_host.cc | 
| +++ b/content/browser/devtools/render_frame_devtools_agent_host.cc | 
| @@ -506,7 +506,12 @@ void RenderFrameDevToolsAgentHost::OnClientAttached() { | 
| PowerSaveBlocker::kPowerSaveBlockPreventDisplaySleep, | 
| PowerSaveBlocker::kReasonOther, "DevTools") | 
| .release())); | 
| - power_save_blocker_->InitDisplaySleepBlocker(web_contents()); | 
| + if (web_contents()->GetNativeView()) { | 
| + view_weak_factory_.reset(new base::WeakPtrFactory<ui::ViewAndroid>( | 
| + web_contents()->GetNativeView())); | 
| + power_save_blocker_->InitDisplaySleepBlocker( | 
| + view_weak_factory_->GetWeakPtr()); | 
| + } | 
| #endif | 
| // TODO(kaznacheev): Move this call back to DevToolsManager when | 
| @@ -753,6 +758,13 @@ void RenderFrameDevToolsAgentHost::DidFailProvisionalLoad( | 
| DiscardPending(); | 
| } | 
| +void RenderFrameDevToolsAgentHost::WebContentsDestroyed() { | 
| +#if defined(OS_ANDROID) | 
| + if (view_weak_factory_) | 
| 
boliu
2016/06/13 14:56:43
view_weak_factory_.reset(); everywhere?
 
ncarter (slow)
2016/06/13 16:56:20
I agree with boliu; otherwise you have a dangling
 
scottmg
2016/06/13 18:52:56
Done.
 | 
| + view_weak_factory_->InvalidateWeakPtrs(); | 
| +#endif | 
| +} | 
| + | 
| void RenderFrameDevToolsAgentHost:: | 
| DispatchBufferedProtocolMessagesIfNecessary() { | 
| if (navigating_handles_.empty() && |