| 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 babb10cae27e56de7bba049a0950a5a8d0b504da..c367d8f9c2f5f94db3be6ec57301c65627ea2326 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 | 
| @@ -86,7 +86,8 @@ RendererSchedulerImpl::RendererSchedulerImpl( | 
| helper_.scheduler_tqm_delegate()->NowTicks()), | 
| policy_may_need_update_(&any_thread_lock_), | 
| weak_factory_(this) { | 
| -  throttling_helper_.reset(new ThrottlingHelper(this, "renderer.scheduler")); | 
| +  task_queue_throttler_.reset( | 
| +      new TaskQueueThrottler(this, "renderer.scheduler")); | 
| update_policy_closure_ = base::Bind(&RendererSchedulerImpl::UpdatePolicy, | 
| weak_factory_.GetWeakPtr()); | 
| end_renderer_hidden_idle_period_closure_.Reset(base::Bind( | 
| @@ -199,7 +200,7 @@ void RendererSchedulerImpl::Shutdown() { | 
| MainThreadOnly().background_main_thread_load_tracker.RecordIdle(now); | 
| MainThreadOnly().foreground_main_thread_load_tracker.RecordIdle(now); | 
|  | 
| -  throttling_helper_.reset(); | 
| +  task_queue_throttler_.reset(); | 
| helper_.Shutdown(); | 
| MainThreadOnly().was_shutdown = true; | 
| MainThreadOnly().rail_mode_observer = nullptr; | 
| @@ -252,7 +253,7 @@ scoped_refptr<TaskQueue> RendererSchedulerImpl::NewLoadingTaskRunner( | 
| MainThreadOnly().current_policy.loading_queue_policy.priority); | 
| if (MainThreadOnly().current_policy.loading_queue_policy.time_domain_type == | 
| TimeDomainType::THROTTLED) { | 
| -    throttling_helper_->IncreaseThrottleRefCount(loading_task_queue.get()); | 
| +    task_queue_throttler_->IncreaseThrottleRefCount(loading_task_queue.get()); | 
| } | 
| loading_task_queue->AddTaskObserver( | 
| &MainThreadOnly().loading_task_cost_estimator); | 
| @@ -277,7 +278,7 @@ scoped_refptr<TaskQueue> RendererSchedulerImpl::NewTimerTaskRunner( | 
| MainThreadOnly().current_policy.timer_queue_policy.priority); | 
| if (MainThreadOnly().current_policy.timer_queue_policy.time_domain_type == | 
| TimeDomainType::THROTTLED) { | 
| -    throttling_helper_->IncreaseThrottleRefCount(timer_task_queue.get()); | 
| +    task_queue_throttler_->IncreaseThrottleRefCount(timer_task_queue.get()); | 
| } | 
| timer_task_queue->AddTaskObserver( | 
| &MainThreadOnly().timer_task_cost_estimator); | 
| @@ -302,8 +303,8 @@ RendererSchedulerImpl::NewRenderWidgetSchedulingState() { | 
|  | 
| void RendererSchedulerImpl::OnUnregisterTaskQueue( | 
| const scoped_refptr<TaskQueue>& task_queue) { | 
| -  if (throttling_helper_.get()) | 
| -    throttling_helper_->UnregisterTaskQueue(task_queue.get()); | 
| +  if (task_queue_throttler_.get()) | 
| +    task_queue_throttler_->UnregisterTaskQueue(task_queue.get()); | 
|  | 
| if (loading_task_runners_.find(task_queue) != loading_task_runners_.end()) { | 
| task_queue->RemoveTaskObserver( | 
| @@ -1027,8 +1028,8 @@ void RendererSchedulerImpl::ApplyTaskQueuePolicy( | 
| const TaskQueuePolicy& old_task_queue_policy, | 
| const TaskQueuePolicy& new_task_queue_policy) const { | 
| if (old_task_queue_policy.is_enabled != new_task_queue_policy.is_enabled) { | 
| -    throttling_helper_->SetQueueEnabled(task_queue, | 
| -                                        new_task_queue_policy.is_enabled); | 
| +    task_queue_throttler_->SetQueueEnabled(task_queue, | 
| +                                           new_task_queue_policy.is_enabled); | 
| } | 
|  | 
| if (old_task_queue_policy.priority != new_task_queue_policy.priority) | 
| @@ -1037,10 +1038,10 @@ void RendererSchedulerImpl::ApplyTaskQueuePolicy( | 
| if (old_task_queue_policy.time_domain_type != | 
| new_task_queue_policy.time_domain_type) { | 
| if (old_task_queue_policy.time_domain_type == TimeDomainType::THROTTLED) { | 
| -      throttling_helper_->DecreaseThrottleRefCount(task_queue); | 
| +      task_queue_throttler_->DecreaseThrottleRefCount(task_queue); | 
| } else if (new_task_queue_policy.time_domain_type == | 
| TimeDomainType::THROTTLED) { | 
| -      throttling_helper_->IncreaseThrottleRefCount(task_queue); | 
| +      task_queue_throttler_->IncreaseThrottleRefCount(task_queue); | 
| } else if (new_task_queue_policy.time_domain_type == | 
| TimeDomainType::VIRTUAL) { | 
| DCHECK(virtual_time_domain_); | 
| @@ -1461,22 +1462,25 @@ void RendererSchedulerImpl::OnTriedToExecuteBlockedTask( | 
| } | 
| } | 
|  | 
| -void RendererSchedulerImpl::ReportTaskTime(double start_time, double end_time) { | 
| -  base::TimeTicks start_time_ticks = | 
| -      MonotonicTimeInSecondsToTimeTicks(start_time); | 
| -  base::TimeTicks end_time_ticks = MonotonicTimeInSecondsToTimeTicks(end_time); | 
| +void RendererSchedulerImpl::ReportTaskTime(TaskQueue* task_queue, | 
| +                                           base::TimeTicks start_time, | 
| +                                           base::TimeTicks end_time) { | 
| +  MainThreadOnly().queueing_time_estimator.OnToplevelTaskCompleted(start_time, | 
| +                                                                   end_time); | 
| + | 
| +  task_queue_throttler()->OnTaskRunTimeReported(task_queue, start_time, | 
| +                                                end_time); | 
|  | 
| -  MainThreadOnly().queueing_time_estimator.OnToplevelTaskCompleted( | 
| -      start_time_ticks, end_time_ticks); | 
| // We want to measure thread time here, but for efficiency reasons | 
| // we stick with wall time. | 
| MainThreadOnly().foreground_main_thread_load_tracker.RecordTaskTime( | 
| -      start_time_ticks, end_time_ticks); | 
| +      start_time, end_time); | 
| MainThreadOnly().background_main_thread_load_tracker.RecordTaskTime( | 
| -      start_time_ticks, end_time_ticks); | 
| +      start_time, end_time); | 
| // TODO(altimin): Per-page metrics should also be considered. | 
| + | 
| UMA_HISTOGRAM_CUSTOM_COUNTS("RendererScheduler.TaskTime", | 
| -                              (end_time_ticks - start_time_ticks).InMicroseconds(), 1, | 
| +                              (end_time - start_time).InMicroseconds(), 1, | 
| 1000000, 50); | 
| } | 
|  | 
| @@ -1516,7 +1520,7 @@ void RendererSchedulerImpl::EnableVirtualTime() { | 
| for (const scoped_refptr<TaskQueue>& task_queue : unthrottled_task_runners_) | 
| task_queue->SetTimeDomain(time_domain); | 
|  | 
| -  throttling_helper_->EnableVirtualTime(); | 
| +  task_queue_throttler_->EnableVirtualTime(); | 
|  | 
| ForceUpdatePolicy(); | 
| } | 
|  |