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 6eed786d146368ea591bd63889a9ca8d966a1364..1caebabfb6c71d0ebfb4d04c5e287843dd5a34fc 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 |
| @@ -478,7 +478,7 @@ void RendererSchedulerImpl::OnRendererForegrounded() { |
| MainThreadOnly().background_main_thread_load_tracker.Pause(now); |
| suspend_timers_when_backgrounded_closure_.Cancel(); |
| - ResumeTimerQueueWhenForegrounded(); |
| + ResumeTimerQueueWhenForegroundedOrResumed(); |
| } |
| void RendererSchedulerImpl::OnAudioStateChanged() { |
| @@ -510,6 +510,16 @@ void RendererSchedulerImpl::SuspendRenderer() { |
| SuspendTimerQueueWhenBackgrounded(); |
| } |
| +void RendererSchedulerImpl::ResumeRenderer() { |
|
Sami
2016/10/06 13:10:09
Could you please add a test for this in RendererSc
tasak
2016/10/07 05:31:26
Done.
|
| + 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; |
| @@ -1420,8 +1430,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; |