Chromium Code Reviews| 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() && |