Index: content/renderer/scheduler/renderer_scheduler_impl.cc |
diff --git a/content/renderer/scheduler/renderer_scheduler_impl.cc b/content/renderer/scheduler/renderer_scheduler_impl.cc |
index 41ecf44bbf9267f719117867672059e70ca717d2..2e2da80e3bcaacc735de89fdc184792194fcfd89 100644 |
--- a/content/renderer/scheduler/renderer_scheduler_impl.cc |
+++ b/content/renderer/scheduler/renderer_scheduler_impl.cc |
@@ -293,6 +293,17 @@ void RendererSchedulerImpl::StartIdlePeriod() { |
} |
void RendererSchedulerImpl::EndIdlePeriod() { |
+ bool is_tracing; |
+ TRACE_EVENT_CATEGORY_GROUP_ENABLED("renderer.scheduler", &is_tracing); |
+ if (is_tracing && !estimated_next_frame_begin_.is_null() && |
+ base::TimeTicks::Now() > estimated_next_frame_begin_) { |
+ TRACE_EVENT_ASYNC_STEP_INTO_WITH_TIMESTAMP0( |
+ "renderer.scheduler", |
+ "RendererSchedulerIdlePeriod", |
+ this, |
+ "DeadlineOverrun", |
+ estimated_next_frame_begin_.ToInternalValue()); |
+ } |
TRACE_EVENT_ASYNC_END0("renderer.scheduler", |
"RendererSchedulerIdlePeriod", this); |
DCHECK(main_thread_checker_.CalledOnValidThread()); |