Chromium Code Reviews| Index: third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.cc |
| diff --git a/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.cc b/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.cc |
| index 5a17f616dcb971ae9f4446b8c1cd466aa65370f2..057da7f02acfb54fa07cba29e24a543ace6754a7 100644 |
| --- a/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.cc |
| +++ b/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.cc |
| @@ -481,7 +481,7 @@ void RendererSchedulerImpl::OnRendererForegrounded() { |
| MainThreadOnly().background_main_thread_load_tracker.Pause(now); |
| suspend_timers_when_backgrounded_closure_.Cancel(); |
| - ResumeTimerQueueWhenForegrounded(); |
| + ResumeTimerQueueWhenForegroundedOrResumed(); |
| } |
| void RendererSchedulerImpl::SuspendRenderer() { |
|
altimin
2016/10/20 11:39:20
I'd like to remind you that there is scheduled cal
tasak
2016/10/20 12:35:12
Thank you. So I would like to update SuspendRender
|
| @@ -500,6 +500,16 @@ void RendererSchedulerImpl::SuspendRenderer() { |
| SuspendTimerQueueWhenBackgrounded(); |
| } |
| +void RendererSchedulerImpl::ResumeRenderer() { |
| + helper_.CheckOnValidThread(); |
| + DCHECK(MainThreadOnly().renderer_backgrounded); |
| + if (helper_.IsShutdown()) |
| + return; |
| + suspend_timers_when_backgrounded_closure_.Cancel(); |
| + MainThreadOnly().renderer_suspended = false; |
| + ResumeTimerQueueWhenForegroundedOrResumed(); |
| +} |
| + |
| void RendererSchedulerImpl::EndIdlePeriod() { |
| if (MainThreadOnly().in_idle_period_for_testing) |
| return; |
| @@ -1376,8 +1386,10 @@ void RendererSchedulerImpl::SuspendTimerQueueWhenBackgrounded() { |
| ForceUpdatePolicy(); |
| } |
| -void RendererSchedulerImpl::ResumeTimerQueueWhenForegrounded() { |
| - DCHECK(!MainThreadOnly().renderer_backgrounded); |
| +void RendererSchedulerImpl::ResumeTimerQueueWhenForegroundedOrResumed() { |
| + DCHECK(!MainThreadOnly().renderer_backgrounded || |
| + (MainThreadOnly().renderer_backgrounded && |
| + !MainThreadOnly().renderer_suspended)); |
| if (!MainThreadOnly().timer_queue_suspended_when_backgrounded) |
| return; |