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 951122cd18f3f2a4465aaf8a3bc3275517b5148a..6b52231533924e35fcee0467ac55463c972606ca 100644 |
| --- a/content/browser/devtools/render_frame_devtools_agent_host.cc |
| +++ b/content/browser/devtools/render_frame_devtools_agent_host.cc |
| @@ -50,7 +50,7 @@ |
| #if defined(OS_ANDROID) |
| #include "content/public/browser/render_widget_host_view.h" |
| -#include "device/power_save_blocker/power_save_blocker.h" |
| +#include "device/wake_lock/public/interfaces/wake_lock_context.mojom.h" |
| #endif |
| namespace content { |
| @@ -603,12 +603,14 @@ void RenderFrameDevToolsAgentHost::OnClientAttached() { |
| return; |
| frame_trace_recorder_.reset(new DevToolsFrameTraceRecorder()); |
| - CreatePowerSaveBlocker(); |
| +#if defined(OS_ANDROID) |
| + GetWakeLockService()->RequestWakeLock(); |
| +#endif |
| } |
| void RenderFrameDevToolsAgentHost::OnClientDetached() { |
| #if defined(OS_ANDROID) |
| - power_save_blocker_.reset(); |
| + GetWakeLockService()->CancelWakeLock(); |
| #endif |
| frame_trace_recorder_.reset(); |
| in_navigation_protocol_message_buffer_.clear(); |
| @@ -823,19 +825,25 @@ bool RenderFrameDevToolsAgentHost::CheckConsistency() { |
| handlers_frame_host_ == manager->pending_frame_host(); |
| } |
| -void RenderFrameDevToolsAgentHost::CreatePowerSaveBlocker() { |
| #if defined(OS_ANDROID) |
| - power_save_blocker_.reset(new device::PowerSaveBlocker( |
| - device::PowerSaveBlocker::kPowerSaveBlockPreventDisplaySleep, |
| - device::PowerSaveBlocker::kReasonOther, "DevTools", |
| - BrowserThread::GetTaskRunnerForThread(BrowserThread::UI), |
| - BrowserThread::GetTaskRunnerForThread(BrowserThread::FILE))); |
| - if (web_contents()->GetNativeView()) { |
| - power_save_blocker_->InitDisplaySleepBlocker( |
| - web_contents()->GetNativeView()); |
| +device::mojom::WakeLockService* |
| +RenderFrameDevToolsAgentHost::GetWakeLockService() { |
|
dgozman
2017/05/18 21:58:45
I'm not very good at mojo yet, so let me ask a nai
ke.he
2017/05/18 23:58:47
The design of WakeLock servicification is necessar
|
| + // Here is a lazy binding, and will not reconnect after connection error. |
| + if (!wake_lock_) { |
| + device::mojom::WakeLockServiceRequest request = |
| + mojo::MakeRequest(&wake_lock_); |
|
dgozman
2017/05/18 21:58:45
Inline this into line 841?
ke.he
2017/05/18 23:58:47
We don't inline this on purpose, so the |wake_lock
dgozman
2017/05/19 19:15:45
Do you mean that wake_lock_ will be functional (al
ke.he
2017/05/20 01:00:34
Yes, mojo::MakeRequest() make it be functional, bu
|
| + device::mojom::WakeLockContext* wake_lock_context = |
| + web_contents()->GetWakeLockContext(); |
| + if (wake_lock_context) { |
| + wake_lock_context->GetWakeLock( |
| + device::mojom::WakeLockType::PreventAppSuspension, |
|
ke.he
2017/05/26 03:11:12
Oh! The original PowerSaveBlocker type is "kPowerS
|
| + device::mojom::WakeLockReason::ReasonOther, "DevTools", |
| + std::move(request)); |
| + } |
| } |
| -#endif |
| + return wake_lock_.get(); |
| } |
| +#endif |
| void RenderFrameDevToolsAgentHost::RenderProcessGone( |
| base::TerminationStatus status) { |
| @@ -905,12 +913,14 @@ void RenderFrameDevToolsAgentHost::DidDetachInterstitialPage() { |
| } |
| void RenderFrameDevToolsAgentHost::WasShown() { |
| - CreatePowerSaveBlocker(); |
| +#if defined(OS_ANDROID) |
| + GetWakeLockService()->RequestWakeLock(); |
| +#endif |
| } |
| void RenderFrameDevToolsAgentHost::WasHidden() { |
| #if defined(OS_ANDROID) |
| - power_save_blocker_.reset(); |
| + GetWakeLockService()->CancelWakeLock(); |
|
dgozman
2017/05/18 21:58:45
I think we should destroy the service at this poin
ke.he
2017/05/18 23:58:47
we don't need to destroy the service here or in de
dgozman
2017/05/19 19:15:44
Shouldn't we do it from the performance standpoint
ke.he
2017/05/20 01:00:34
In GetWakeLockService(), the |wake_lock_| is initi
|
| #endif |
| } |