Index: content/browser/renderer_host/input/render_widget_host_latency_tracker.cc |
diff --git a/content/browser/renderer_host/input/render_widget_host_latency_tracker.cc b/content/browser/renderer_host/input/render_widget_host_latency_tracker.cc |
index 6ed10eaa2d29ed8ca6890e20fa36d0f5ce1a10eb..e7a6ab92f566ebe19188ba36ceeea23b41246d6b 100644 |
--- a/content/browser/renderer_host/input/render_widget_host_latency_tracker.cc |
+++ b/content/browser/renderer_host/input/render_widget_host_latency_tracker.cc |
@@ -74,6 +74,67 @@ void AddLatencyInfoComponentIds(LatencyInfo* latency, |
} |
} |
+void RecordEQTAccuracy(base::TimeDelta queueing_time, |
+ base::TimeDelta expected_queueing_time) { |
+ float expected_queueing_time_ms = expected_queueing_time.InMillisecondsF(); |
+ |
+ if (expected_queueing_time_ms < 10) { |
+ UMA_HISTOGRAM_TIMES( |
+ "RendererScheduler." |
+ "QueueingDurationWhenExpectedQueueingTime.LessThan.10ms", |
+ queueing_time); |
+ } |
+ |
+ if (expected_queueing_time_ms < 150) { |
+ UMA_HISTOGRAM_TIMES( |
+ "RendererScheduler." |
+ "QueueingDurationWhenExpectedQueueingTime.LessThan.150ms", |
+ queueing_time); |
+ } |
+ |
+ if (expected_queueing_time_ms < 300) { |
+ UMA_HISTOGRAM_TIMES( |
+ "RendererScheduler." |
+ "QueueingDurationWhenExpectedQueueingTime.LessThan.300ms", |
+ queueing_time); |
+ } |
+ |
+ if (expected_queueing_time_ms < 450) { |
+ UMA_HISTOGRAM_TIMES( |
+ "RendererScheduler." |
+ "QueueingDurationWhenExpectedQueueingTime.LessThan.450ms", |
+ queueing_time); |
+ } |
+ |
+ if (expected_queueing_time_ms > 10) { |
+ UMA_HISTOGRAM_TIMES( |
+ "RendererScheduler." |
+ "QueueingDurationWhenExpectedQueueingTime.GreaterThan.10ms", |
+ queueing_time); |
+ } |
+ |
+ if (expected_queueing_time_ms > 150) { |
+ UMA_HISTOGRAM_TIMES( |
+ "RendererScheduler." |
+ "QueueingDurationWhenExpectedQueueingTime.GreaterThan.150ms", |
+ queueing_time); |
+ } |
+ |
+ if (expected_queueing_time_ms > 300) { |
+ UMA_HISTOGRAM_TIMES( |
+ "RendererScheduler." |
+ "QueueingDurationWhenExpectedQueueingTime.GreaterThan.300ms", |
+ queueing_time); |
+ } |
+ |
+ if (expected_queueing_time_ms > 450) { |
+ UMA_HISTOGRAM_TIMES( |
+ "RendererScheduler." |
+ "QueueingDurationWhenExpectedQueueingTime.GreaterThan.450ms", |
+ queueing_time); |
+ } |
+} |
+ |
} // namespace |
RenderWidgetHostLatencyTracker::RenderWidgetHostLatencyTracker() |
@@ -166,6 +227,10 @@ void RenderWidgetHostLatencyTracker::ComputeInputLatencyHistograms( |
UMA_HISTOGRAM_INPUT_LATENCY_MILLISECONDS( |
"Event.Latency.QueueingTime." + event_name + default_action_status, |
rwh_component, main_component); |
+ |
+ RecordEQTAccuracy( |
+ main_component.last_event_time - rwh_component.first_event_time, |
+ latency.expected_queueing_time_on_dispatch()); |
} |
} |