Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(72)

Side by Side Diff: content/browser/renderer_host/render_widget_host_latency_tracker_unittest.cc

Issue 786113002: Only terminate latency components when no rendering is scheduled (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Histogram fix Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "content/browser/renderer_host/render_widget_host_latency_tracker.h"
6 #include "content/common/input/synthetic_web_input_event_builders.h"
7 #include "testing/gtest/include/gtest/gtest.h"
8
9 namespace content {
10 namespace {
11
12 const int kTestRoutingId = 3;
13 const int kTestProcessId = 1;
14
15 } // namespace
16
17 TEST(RenderWidgetHostLatencyTrackerTest, Basic) {
18 RenderWidgetHostLatencyTracker tracker;
19 tracker.Initialize(kTestRoutingId, kTestProcessId);
20
21 {
22 auto scroll =
23 SyntheticWebGestureEventBuilder::BuildScrollUpdate(5.f, -5.f, 0);
24 ui::LatencyInfo scroll_latency;
25 tracker.OnInputEvent(scroll, &scroll_latency);
26 EXPECT_TRUE(
27 scroll_latency.FindLatency(ui::INPUT_EVENT_LATENCY_BEGIN_RWH_COMPONENT,
28 tracker.latency_component_id(), nullptr));
29 EXPECT_TRUE(scroll_latency.FindLatency(
30 ui::INPUT_EVENT_LATENCY_SCROLL_UPDATE_RWH_COMPONENT,
31 tracker.latency_component_id(), nullptr));
32 EXPECT_EQ(1U, scroll_latency.input_coordinates_size);
33 }
34
35 {
36 auto wheel = SyntheticWebMouseWheelEventBuilder::Build(
37 blink::WebMouseWheelEvent::PhaseChanged);
38 ui::LatencyInfo wheel_latency;
39 tracker.OnInputEvent(wheel, &wheel_latency);
40 EXPECT_TRUE(
41 wheel_latency.FindLatency(ui::INPUT_EVENT_LATENCY_BEGIN_RWH_COMPONENT,
42 tracker.latency_component_id(), nullptr));
43 EXPECT_EQ(1U, wheel_latency.input_coordinates_size);
44 }
45
46 {
47 SyntheticWebTouchEvent touch;
48 touch.PressPoint(0, 0);
49 touch.PressPoint(1, 1);
50 ui::LatencyInfo touch_latency;
51 tracker.OnInputEvent(touch, &touch_latency);
52 EXPECT_TRUE(
53 touch_latency.FindLatency(ui::INPUT_EVENT_LATENCY_BEGIN_RWH_COMPONENT,
54 tracker.latency_component_id(), nullptr));
55 EXPECT_EQ(2U, touch_latency.input_coordinates_size);
56 }
57 }
58
59 TEST(RenderWidgetHostLatencyTrackerTest,
60 LatencyTerminatedOnAckIfRenderingNotScheduled) {
61 RenderWidgetHostLatencyTracker tracker;
62 tracker.Initialize(kTestRoutingId, kTestProcessId);
63
64 {
65 auto scroll = SyntheticWebGestureEventBuilder::BuildScrollBegin(5.f, -5.f);
66 ui::LatencyInfo scroll_latency;
67 tracker.OnInputEvent(scroll, &scroll_latency);
68 tracker.OnInputEventAck(scroll, &scroll_latency);
69 EXPECT_TRUE(scroll_latency.FindLatency(
70 ui::INPUT_EVENT_LATENCY_TERMINATED_GESTURE_COMPONENT, 0, nullptr));
71 EXPECT_TRUE(scroll_latency.terminated);
72 }
73
74 {
75 auto wheel = SyntheticWebMouseWheelEventBuilder::Build(
76 blink::WebMouseWheelEvent::PhaseChanged);
77 ui::LatencyInfo wheel_latency;
78 tracker.OnInputEvent(wheel, &wheel_latency);
79 tracker.OnInputEventAck(wheel, &wheel_latency);
80 EXPECT_TRUE(wheel_latency.FindLatency(
81 ui::INPUT_EVENT_LATENCY_TERMINATED_MOUSE_COMPONENT, 0, nullptr));
82 EXPECT_TRUE(wheel_latency.terminated);
83 }
84
85 {
86 SyntheticWebTouchEvent touch;
87 touch.PressPoint(0, 0);
88 ui::LatencyInfo touch_latency;
89 tracker.OnInputEvent(touch, &touch_latency);
90 tracker.OnInputEventAck(touch, &touch_latency);
91 EXPECT_TRUE(touch_latency.FindLatency(
92 ui::INPUT_EVENT_LATENCY_TERMINATED_TOUCH_COMPONENT, 0, nullptr));
93 EXPECT_TRUE(touch_latency.terminated);
94 }
95 }
96
97 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/renderer_host/render_widget_host_latency_tracker.cc ('k') | content/content_tests.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698