| 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());
|
| }
|
| }
|
|
|
|
|