| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/test/histogram_tester.h" | 5 #include "base/test/histogram_tester.h" |
| 6 #include "components/rappor/public/rappor_utils.h" | 6 #include "components/rappor/public/rappor_utils.h" |
| 7 #include "components/rappor/test_rappor_service.h" | 7 #include "components/rappor/test_rappor_service.h" |
| 8 #include "content/browser/renderer_host/input/render_widget_host_latency_tracker
.h" | 8 #include "content/browser/renderer_host/input/render_widget_host_latency_tracker
.h" |
| 9 #include "content/common/input/synthetic_web_input_event_builders.h" | 9 #include "content/common/input/synthetic_web_input_event_builders.h" |
| 10 #include "content/public/browser/native_web_keyboard_event.h" | 10 #include "content/public/browser/native_web_keyboard_event.h" |
| (...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 195 AddRenderingScheduledComponent(&wheel_latency, rendering_on_main, now); | 195 AddRenderingScheduledComponent(&wheel_latency, rendering_on_main, now); |
| 196 tracker()->OnInputEvent(wheel, &wheel_latency); | 196 tracker()->OnInputEvent(wheel, &wheel_latency); |
| 197 EXPECT_TRUE(wheel_latency.FindLatency( | 197 EXPECT_TRUE(wheel_latency.FindLatency( |
| 198 ui::INPUT_EVENT_LATENCY_BEGIN_RWH_COMPONENT, | 198 ui::INPUT_EVENT_LATENCY_BEGIN_RWH_COMPONENT, |
| 199 tracker()->latency_component_id(), nullptr)); | 199 tracker()->latency_component_id(), nullptr)); |
| 200 EXPECT_TRUE(wheel_latency.FindLatency( | 200 EXPECT_TRUE(wheel_latency.FindLatency( |
| 201 ui::INPUT_EVENT_LATENCY_ORIGINAL_COMPONENT, 0, nullptr)); | 201 ui::INPUT_EVENT_LATENCY_ORIGINAL_COMPONENT, 0, nullptr)); |
| 202 EXPECT_EQ(1U, wheel_latency.input_coordinates_size()); | 202 EXPECT_EQ(1U, wheel_latency.input_coordinates_size()); |
| 203 tracker()->OnInputEventAck(wheel, &wheel_latency, | 203 tracker()->OnInputEventAck(wheel, &wheel_latency, |
| 204 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 204 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
| 205 tracker()->OnFrameSwapped(wheel_latency); | 205 tracker()->OnGpuSwapBuffersCompleted(wheel_latency); |
| 206 | 206 |
| 207 // Rappor metrics. | 207 // Rappor metrics. |
| 208 EXPECT_TRUE( | 208 EXPECT_TRUE( |
| 209 RapporSampleAssert("Event.Latency.ScrollUpdate.Touch." | 209 RapporSampleAssert("Event.Latency.ScrollUpdate.Touch." |
| 210 "TimeToScrollUpdateSwapBegin2", | 210 "TimeToScrollUpdateSwapBegin2", |
| 211 0)); | 211 0)); |
| 212 EXPECT_TRUE( | 212 EXPECT_TRUE( |
| 213 RapporSampleAssert("Event.Latency.ScrollBegin.Touch." | 213 RapporSampleAssert("Event.Latency.ScrollBegin.Touch." |
| 214 "TimeToScrollUpdateSwapBegin2", | 214 "TimeToScrollUpdateSwapBegin2", |
| 215 0)); | 215 0)); |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 287 AddRenderingScheduledComponent(&wheel_latency, rendering_on_main, now); | 287 AddRenderingScheduledComponent(&wheel_latency, rendering_on_main, now); |
| 288 tracker()->OnInputEvent(wheel, &wheel_latency); | 288 tracker()->OnInputEvent(wheel, &wheel_latency); |
| 289 EXPECT_TRUE(wheel_latency.FindLatency( | 289 EXPECT_TRUE(wheel_latency.FindLatency( |
| 290 ui::INPUT_EVENT_LATENCY_BEGIN_RWH_COMPONENT, | 290 ui::INPUT_EVENT_LATENCY_BEGIN_RWH_COMPONENT, |
| 291 tracker()->latency_component_id(), nullptr)); | 291 tracker()->latency_component_id(), nullptr)); |
| 292 EXPECT_TRUE(wheel_latency.FindLatency( | 292 EXPECT_TRUE(wheel_latency.FindLatency( |
| 293 ui::INPUT_EVENT_LATENCY_ORIGINAL_COMPONENT, 0, nullptr)); | 293 ui::INPUT_EVENT_LATENCY_ORIGINAL_COMPONENT, 0, nullptr)); |
| 294 EXPECT_EQ(1U, wheel_latency.input_coordinates_size()); | 294 EXPECT_EQ(1U, wheel_latency.input_coordinates_size()); |
| 295 tracker()->OnInputEventAck(wheel, &wheel_latency, | 295 tracker()->OnInputEventAck(wheel, &wheel_latency, |
| 296 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 296 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
| 297 tracker()->OnFrameSwapped(wheel_latency); | 297 tracker()->OnGpuSwapBuffersCompleted(wheel_latency); |
| 298 EXPECT_TRUE(HistogramSizeEq("Event.Latency.Browser.WheelUI", 1)); | 298 EXPECT_TRUE(HistogramSizeEq("Event.Latency.Browser.WheelUI", 1)); |
| 299 EXPECT_TRUE(HistogramSizeEq("Event.Latency.Browser.WheelAcked", 1)); | 299 EXPECT_TRUE(HistogramSizeEq("Event.Latency.Browser.WheelAcked", 1)); |
| 300 | 300 |
| 301 EXPECT_TRUE( | 301 EXPECT_TRUE( |
| 302 HistogramSizeEq("Event.Latency.ScrollBegin.Wheel." | 302 HistogramSizeEq("Event.Latency.ScrollBegin.Wheel." |
| 303 "TimeToScrollUpdateSwapBegin2", | 303 "TimeToScrollUpdateSwapBegin2", |
| 304 0)); | 304 0)); |
| 305 EXPECT_TRUE(HistogramSizeEq( | 305 EXPECT_TRUE(HistogramSizeEq( |
| 306 "Event.Latency.ScrollBegin.Wheel.TimeToHandled2_Main", 0)); | 306 "Event.Latency.ScrollBegin.Wheel.TimeToHandled2_Main", 0)); |
| 307 EXPECT_TRUE(HistogramSizeEq( | 307 EXPECT_TRUE(HistogramSizeEq( |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 385 AddRenderingScheduledComponent(&touch_latency, rendering_on_main, now); | 385 AddRenderingScheduledComponent(&touch_latency, rendering_on_main, now); |
| 386 tracker()->OnInputEvent(touch, &touch_latency); | 386 tracker()->OnInputEvent(touch, &touch_latency); |
| 387 EXPECT_TRUE(touch_latency.FindLatency( | 387 EXPECT_TRUE(touch_latency.FindLatency( |
| 388 ui::INPUT_EVENT_LATENCY_BEGIN_RWH_COMPONENT, | 388 ui::INPUT_EVENT_LATENCY_BEGIN_RWH_COMPONENT, |
| 389 tracker()->latency_component_id(), nullptr)); | 389 tracker()->latency_component_id(), nullptr)); |
| 390 EXPECT_TRUE(touch_latency.FindLatency( | 390 EXPECT_TRUE(touch_latency.FindLatency( |
| 391 ui::INPUT_EVENT_LATENCY_ORIGINAL_COMPONENT, 0, nullptr)); | 391 ui::INPUT_EVENT_LATENCY_ORIGINAL_COMPONENT, 0, nullptr)); |
| 392 EXPECT_EQ(2U, touch_latency.input_coordinates_size()); | 392 EXPECT_EQ(2U, touch_latency.input_coordinates_size()); |
| 393 tracker()->OnInputEventAck(touch, &touch_latency, | 393 tracker()->OnInputEventAck(touch, &touch_latency, |
| 394 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 394 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
| 395 tracker()->OnFrameSwapped(touch_latency); | 395 tracker()->OnGpuSwapBuffersCompleted(touch_latency); |
| 396 } | 396 } |
| 397 | 397 |
| 398 // Rappor metrics. | 398 // Rappor metrics. |
| 399 EXPECT_TRUE( | 399 EXPECT_TRUE( |
| 400 RapporSampleAssert("Event.Latency.ScrollUpdate.Touch." | 400 RapporSampleAssert("Event.Latency.ScrollUpdate.Touch." |
| 401 "TimeToScrollUpdateSwapBegin2", | 401 "TimeToScrollUpdateSwapBegin2", |
| 402 0)); | 402 0)); |
| 403 EXPECT_TRUE( | 403 EXPECT_TRUE( |
| 404 RapporSampleAssert("Event.Latency.ScrollBegin.Touch." | 404 RapporSampleAssert("Event.Latency.ScrollBegin.Touch." |
| 405 "TimeToScrollUpdateSwapBegin2", | 405 "TimeToScrollUpdateSwapBegin2", |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 505 AddRenderingScheduledComponent(&touch_latency, rendering_on_main, now); | 505 AddRenderingScheduledComponent(&touch_latency, rendering_on_main, now); |
| 506 tracker()->OnInputEvent(touch, &touch_latency); | 506 tracker()->OnInputEvent(touch, &touch_latency); |
| 507 EXPECT_TRUE(touch_latency.FindLatency( | 507 EXPECT_TRUE(touch_latency.FindLatency( |
| 508 ui::INPUT_EVENT_LATENCY_BEGIN_RWH_COMPONENT, | 508 ui::INPUT_EVENT_LATENCY_BEGIN_RWH_COMPONENT, |
| 509 tracker()->latency_component_id(), nullptr)); | 509 tracker()->latency_component_id(), nullptr)); |
| 510 EXPECT_TRUE(touch_latency.FindLatency( | 510 EXPECT_TRUE(touch_latency.FindLatency( |
| 511 ui::INPUT_EVENT_LATENCY_ORIGINAL_COMPONENT, 0, nullptr)); | 511 ui::INPUT_EVENT_LATENCY_ORIGINAL_COMPONENT, 0, nullptr)); |
| 512 EXPECT_EQ(2U, touch_latency.input_coordinates_size()); | 512 EXPECT_EQ(2U, touch_latency.input_coordinates_size()); |
| 513 tracker()->OnInputEventAck(touch, &touch_latency, | 513 tracker()->OnInputEventAck(touch, &touch_latency, |
| 514 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 514 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
| 515 tracker()->OnFrameSwapped(touch_latency); | 515 tracker()->OnGpuSwapBuffersCompleted(touch_latency); |
| 516 } | 516 } |
| 517 | 517 |
| 518 // Rappor metrics. | 518 // Rappor metrics. |
| 519 EXPECT_TRUE( | 519 EXPECT_TRUE( |
| 520 RapporSampleAssert("Event.Latency.ScrollUpdate.Touch." | 520 RapporSampleAssert("Event.Latency.ScrollUpdate.Touch." |
| 521 "TimeToScrollUpdateSwapBegin2", | 521 "TimeToScrollUpdateSwapBegin2", |
| 522 2)); | 522 2)); |
| 523 EXPECT_TRUE( | 523 EXPECT_TRUE( |
| 524 RapporSampleAssert("Event.Latency.ScrollBegin.Touch." | 524 RapporSampleAssert("Event.Latency.ScrollBegin.Touch." |
| 525 "TimeToScrollUpdateSwapBegin2", | 525 "TimeToScrollUpdateSwapBegin2", |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 609 SyntheticWebTouchEvent touch; | 609 SyntheticWebTouchEvent touch; |
| 610 touch.PressPoint(0, 0); | 610 touch.PressPoint(0, 0); |
| 611 ui::LatencyInfo touch_latency; | 611 ui::LatencyInfo touch_latency; |
| 612 AddFakeComponents(*tracker(), &touch_latency); | 612 AddFakeComponents(*tracker(), &touch_latency); |
| 613 tracker()->OnInputEvent(touch, &touch_latency); | 613 tracker()->OnInputEvent(touch, &touch_latency); |
| 614 tracker()->OnInputEventAck(touch, &touch_latency, | 614 tracker()->OnInputEventAck(touch, &touch_latency, |
| 615 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 615 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
| 616 EXPECT_TRUE(touch_latency.FindLatency( | 616 EXPECT_TRUE(touch_latency.FindLatency( |
| 617 ui::INPUT_EVENT_LATENCY_TERMINATED_NO_SWAP_COMPONENT, 0, nullptr)); | 617 ui::INPUT_EVENT_LATENCY_TERMINATED_NO_SWAP_COMPONENT, 0, nullptr)); |
| 618 EXPECT_TRUE(touch_latency.terminated()); | 618 EXPECT_TRUE(touch_latency.terminated()); |
| 619 tracker()->OnFrameSwapped(touch_latency); | 619 tracker()->OnGpuSwapBuffersCompleted(touch_latency); |
| 620 } | 620 } |
| 621 | 621 |
| 622 { | 622 { |
| 623 auto mouse_move = SyntheticWebMouseEventBuilder::Build( | 623 auto mouse_move = SyntheticWebMouseEventBuilder::Build( |
| 624 blink::WebMouseEvent::MouseMove); | 624 blink::WebMouseEvent::MouseMove); |
| 625 ui::LatencyInfo mouse_latency; | 625 ui::LatencyInfo mouse_latency; |
| 626 AddFakeComponents(*tracker(), &mouse_latency); | 626 AddFakeComponents(*tracker(), &mouse_latency); |
| 627 tracker()->OnInputEvent(mouse_move, &mouse_latency); | 627 tracker()->OnInputEvent(mouse_move, &mouse_latency); |
| 628 tracker()->OnInputEventAck(mouse_move, &mouse_latency, | 628 tracker()->OnInputEventAck(mouse_move, &mouse_latency, |
| 629 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 629 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
| (...skipping 330 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 960 "Event.Latency.BlockingTime.TouchEndDefaultPrevented"), | 960 "Event.Latency.BlockingTime.TouchEndDefaultPrevented"), |
| 961 ElementsAre(Bucket( | 961 ElementsAre(Bucket( |
| 962 touchend_timestamps_ms[2] - touchend_timestamps_ms[1], 1))); | 962 touchend_timestamps_ms[2] - touchend_timestamps_ms[1], 1))); |
| 963 EXPECT_THAT(histogram_tester().GetAllSamples( | 963 EXPECT_THAT(histogram_tester().GetAllSamples( |
| 964 "Event.Latency.BlockingTime.TouchEndDefaultAllowed"), | 964 "Event.Latency.BlockingTime.TouchEndDefaultAllowed"), |
| 965 ElementsAre(Bucket( | 965 ElementsAre(Bucket( |
| 966 touchend_timestamps_ms[2] - touchend_timestamps_ms[1], 1))); | 966 touchend_timestamps_ms[2] - touchend_timestamps_ms[1], 1))); |
| 967 } | 967 } |
| 968 | 968 |
| 969 } // namespace content | 969 } // namespace content |
| OLD | NEW |