| 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 9da5037f8a53dcde487cf8d06e8b5b77806b4c04..1c1a8fcf2d924320795aa261556a5efb614a6175 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
|
| @@ -36,6 +36,13 @@ const double kShortIdlePeriodDurationPercentile = 50;
|
| // Amount of idle time left in a frame (as a ratio of the vsync interval) above
|
| // which main thread compositing can be considered fast.
|
| const double kFastCompositingIdleTimeThreshold = .2;
|
| +
|
| +base::TimeTicks MonotonicTimeInSecondsToTimeTicks(
|
| + double monotonicTimeInSeconds) {
|
| + return base::TimeTicks::FromInternalValue(monotonicTimeInSeconds *
|
| + base::Time::kMicrosecondsPerSecond);
|
| +}
|
| +
|
| } // namespace
|
|
|
| RendererSchedulerImpl::RendererSchedulerImpl(
|
| @@ -81,7 +88,7 @@ RendererSchedulerImpl::RendererSchedulerImpl(
|
| this);
|
|
|
| helper_.SetObserver(this);
|
| - helper_.SetTaskTimeTracker(this);
|
| + helper_.AddTaskTimeTracker(this);
|
| }
|
|
|
| RendererSchedulerImpl::~RendererSchedulerImpl() {
|
| @@ -101,6 +108,8 @@ RendererSchedulerImpl::~RendererSchedulerImpl() {
|
| if (virtual_time_domain_)
|
| UnregisterTimeDomain(virtual_time_domain_.get());
|
|
|
| + helper_.RemoveTaskTimeTracker(this);
|
| +
|
| // Ensure the renderer scheduler was shut down explicitly, because otherwise
|
| // we could end up having stale pointers to the Blink heap which has been
|
| // terminated by this point.
|
| @@ -1415,19 +1424,26 @@ void RendererSchedulerImpl::OnTriedToExecuteBlockedTask(
|
| }
|
| }
|
|
|
| -void RendererSchedulerImpl::ReportTaskTime(base::TimeTicks start_time,
|
| - base::TimeTicks end_time) {
|
| - MainThreadOnly().queueing_time_estimator.OnToplevelTaskCompleted(start_time,
|
| - end_time);
|
| - MainThreadOnly().long_task_tracker.RecordLongTask(
|
| - start_time, end_time - start_time);
|
| - UMA_HISTOGRAM_CUSTOM_COUNTS("RendererScheduler.TaskTime",
|
| - (end_time - start_time).InMicroseconds(), 1,
|
| - 1000000, 50);
|
| +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);
|
| +
|
| + MainThreadOnly().queueing_time_estimator.OnToplevelTaskCompleted(
|
| + start_time_ticks, end_time_ticks);
|
| + UMA_HISTOGRAM_CUSTOM_COUNTS(
|
| + "RendererScheduler.TaskTime",
|
| + (end_time_ticks - start_time_ticks).InMicroseconds(), 1, 1000000, 50);
|
| +}
|
| +
|
| +void RendererSchedulerImpl::AddTaskTimeTracker(
|
| + TaskTimeTracker* task_time_tracker) {
|
| + helper_.AddTaskTimeTracker(task_time_tracker);
|
| }
|
|
|
| -LongTaskTracker::LongTaskTiming RendererSchedulerImpl::GetLongTaskTiming() {
|
| - return MainThreadOnly().long_task_tracker.GetLongTaskTiming();
|
| +void RendererSchedulerImpl::RemoveTaskTimeTracker(
|
| + TaskTimeTracker* task_time_tracker) {
|
| + helper_.RemoveTaskTimeTracker(task_time_tracker);
|
| }
|
|
|
| void RendererSchedulerImpl::OnQueueingTimeForWindowEstimated(
|
|
|