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 0d5d624c3473fbf9c57ddb54950c5c75b4a7da83..44f0e5bf770884255e1313cda63b0b829d2ecb8e 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 |
| @@ -490,12 +490,28 @@ void RendererSchedulerImpl::SuspendRenderer() { |
| if (helper_.IsShutdown()) |
| return; |
| suspend_timers_when_backgrounded_closure_.Cancel(); |
| + |
| + UMA_HISTOGRAM_COUNTS("PurgeAndSuspend.PendingTaskCount", |
| + GetNumberOfPendingTasks()); |
| + |
| // TODO(hajimehoshi): We might need to suspend not only timer queue but also |
| // e.g. loading tasks or postMessage. |
| MainThreadOnly().renderer_suspended = true; |
| SuspendTimerQueueWhenBackgrounded(); |
| } |
| +int RendererSchedulerImpl::GetNumberOfPendingTasks() { |
|
Sami
2016/10/14 01:38:18
I would suggest adding this getter into TaskQueueM
tasak
2016/10/14 05:55:32
I see. I agree that TaskQueueManager is the best c
|
| + int count = 0; |
| + for (const scoped_refptr<TaskQueue>& loading_queue : loading_task_runners_) |
| + count += loading_queue->GetNumberOfPendingTasks(); |
| + for (const scoped_refptr<TaskQueue>& timer_queue : timer_task_runners_) |
| + count += timer_queue->GetNumberOfPendingTasks(); |
| + count += DefaultTaskRunner()->GetNumberOfPendingTasks(); |
| + count += CompositorTaskRunner()->GetNumberOfPendingTasks(); |
| + count += idle_helper_.GetNumberOfPendingIdleTasks(); |
| + return count; |
| +} |
| + |
| void RendererSchedulerImpl::EndIdlePeriod() { |
| if (MainThreadOnly().in_idle_period_for_testing) |
| return; |