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

Side by Side Diff: content/browser/renderer_host/input/mouse_wheel_event_queue_unittest.cc

Issue 1716283002: Fix x/y position of gesture scroll events. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master_wheel_regression
Patch Set: Created 4 years, 10 months 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
« no previous file with comments | « content/browser/renderer_host/input/mouse_wheel_event_queue.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "content/browser/renderer_host/input/mouse_wheel_event_queue.h" 5 #include "content/browser/renderer_host/input/mouse_wheel_event_queue.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/location.h" 10 #include "base/location.h"
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
118 static void RunTasksAndWait(base::TimeDelta delay) { 118 static void RunTasksAndWait(base::TimeDelta delay) {
119 base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( 119 base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
120 FROM_HERE, base::MessageLoop::QuitWhenIdleClosure(), delay); 120 FROM_HERE, base::MessageLoop::QuitWhenIdleClosure(), delay);
121 base::MessageLoop::current()->Run(); 121 base::MessageLoop::current()->Run();
122 } 122 }
123 123
124 void GestureSendingTest(bool high_precision) { 124 void GestureSendingTest(bool high_precision) {
125 const WebGestureEvent::ScrollUnits scroll_units = 125 const WebGestureEvent::ScrollUnits scroll_units =
126 high_precision ? WebGestureEvent::PrecisePixels 126 high_precision ? WebGestureEvent::PrecisePixels
127 : WebGestureEvent::Pixels; 127 : WebGestureEvent::Pixels;
128 SendMouseWheel(10, 10, 1, 1, 0, high_precision); 128 SendMouseWheel(10, 12, 1, 1, 0, high_precision);
129 EXPECT_EQ(0U, queued_event_count()); 129 EXPECT_EQ(0U, queued_event_count());
130 EXPECT_TRUE(event_in_flight()); 130 EXPECT_TRUE(event_in_flight());
131 EXPECT_EQ(1U, GetAndResetSentEventCount()); 131 EXPECT_EQ(1U, GetAndResetSentEventCount());
132 132
133 // The second mouse wheel should not be sent since one is already in queue. 133 // The second mouse wheel should not be sent since one is already in queue.
134 SendMouseWheel(10, 10, 5, 5, 0, high_precision); 134 SendMouseWheel(10, 12, 5, 5, 0, high_precision);
135 EXPECT_EQ(1U, queued_event_count()); 135 EXPECT_EQ(1U, queued_event_count());
136 EXPECT_TRUE(event_in_flight()); 136 EXPECT_TRUE(event_in_flight());
137 EXPECT_EQ(0U, GetAndResetSentEventCount()); 137 EXPECT_EQ(0U, GetAndResetSentEventCount());
138 138
139 // Receive an ACK for the mouse wheel event and release the next 139 // Receive an ACK for the mouse wheel event and release the next
140 // mouse wheel event. 140 // mouse wheel event.
141 SendMouseWheelEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); 141 SendMouseWheelEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
142 EXPECT_EQ(0U, queued_event_count()); 142 EXPECT_EQ(0U, queued_event_count());
143 EXPECT_TRUE(event_in_flight()); 143 EXPECT_TRUE(event_in_flight());
144 EXPECT_EQ(WebInputEvent::MouseWheel, acked_event().type); 144 EXPECT_EQ(WebInputEvent::MouseWheel, acked_event().type);
145 EXPECT_EQ(1U, GetAndResetAckedEventCount()); 145 EXPECT_EQ(1U, GetAndResetAckedEventCount());
146 EXPECT_EQ(3U, all_sent_events().size()); 146 EXPECT_EQ(3U, all_sent_events().size());
147 EXPECT_EQ(WebInputEvent::GestureScrollBegin, all_sent_events()[0].type); 147 EXPECT_EQ(WebInputEvent::GestureScrollBegin, all_sent_events()[0].type);
148 EXPECT_EQ(scroll_units, 148 EXPECT_EQ(scroll_units,
149 sent_gesture_events()[0].data.scrollBegin.deltaHintUnits); 149 sent_gesture_events()[0].data.scrollBegin.deltaHintUnits);
150 EXPECT_EQ(10, sent_gesture_events()[0].x);
151 EXPECT_EQ(12, sent_gesture_events()[0].y);
tdresser 2016/02/22 19:58:48 Let's check globalX/globalY somewhere at least.
dtapuska 2016/02/22 20:28:46 Done.
150 EXPECT_EQ(WebInputEvent::GestureScrollUpdate, all_sent_events()[1].type); 152 EXPECT_EQ(WebInputEvent::GestureScrollUpdate, all_sent_events()[1].type);
151 EXPECT_EQ(scroll_units, 153 EXPECT_EQ(scroll_units,
152 sent_gesture_events()[1].data.scrollUpdate.deltaUnits); 154 sent_gesture_events()[1].data.scrollUpdate.deltaUnits);
155 EXPECT_EQ(10, sent_gesture_events()[1].x);
156 EXPECT_EQ(12, sent_gesture_events()[1].y);
153 EXPECT_EQ(WebInputEvent::MouseWheel, all_sent_events()[2].type); 157 EXPECT_EQ(WebInputEvent::MouseWheel, all_sent_events()[2].type);
154 EXPECT_EQ(3U, GetAndResetSentEventCount()); 158 EXPECT_EQ(3U, GetAndResetSentEventCount());
155 159
156 RunTasksAndWait(DefaultScrollEndTimeoutDelay() * 2); 160 RunTasksAndWait(DefaultScrollEndTimeoutDelay() * 2);
157 EXPECT_EQ(1U, all_sent_events().size()); 161 EXPECT_EQ(1U, all_sent_events().size());
158 EXPECT_EQ(WebInputEvent::GestureScrollEnd, all_sent_events()[0].type); 162 EXPECT_EQ(WebInputEvent::GestureScrollEnd, all_sent_events()[0].type);
159 EXPECT_EQ(scroll_units, sent_gesture_events()[0].data.scrollEnd.deltaUnits); 163 EXPECT_EQ(scroll_units, sent_gesture_events()[0].data.scrollEnd.deltaUnits);
164 EXPECT_EQ(10, sent_gesture_events()[0].x);
165 EXPECT_EQ(12, sent_gesture_events()[0].y);
160 } 166 }
161 167
162 scoped_ptr<MouseWheelEventQueue> queue_; 168 scoped_ptr<MouseWheelEventQueue> queue_;
163 std::vector<WebInputEvent> sent_events_; 169 std::vector<WebInputEvent> sent_events_;
164 std::vector<WebGestureEvent> sent_gesture_events_; 170 std::vector<WebGestureEvent> sent_gesture_events_;
165 size_t acked_event_count_; 171 size_t acked_event_count_;
166 InputEventAckState last_acked_event_state_; 172 InputEventAckState last_acked_event_state_;
167 base::MessageLoopForUI message_loop_; 173 base::MessageLoopForUI message_loop_;
168 WebMouseWheelEvent last_acked_event_; 174 WebMouseWheelEvent last_acked_event_;
169 }; 175 };
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
260 EXPECT_FALSE(event_in_flight()); 266 EXPECT_FALSE(event_in_flight());
261 EXPECT_EQ(WebInputEvent::MouseWheel, acked_event().type); 267 EXPECT_EQ(WebInputEvent::MouseWheel, acked_event().type);
262 EXPECT_EQ(1U, GetAndResetAckedEventCount()); 268 EXPECT_EQ(1U, GetAndResetAckedEventCount());
263 EXPECT_EQ(2U, all_sent_events().size()); 269 EXPECT_EQ(2U, all_sent_events().size());
264 EXPECT_EQ(WebInputEvent::GestureScrollBegin, all_sent_events()[0].type); 270 EXPECT_EQ(WebInputEvent::GestureScrollBegin, all_sent_events()[0].type);
265 EXPECT_EQ(WebInputEvent::GestureScrollUpdate, all_sent_events()[1].type); 271 EXPECT_EQ(WebInputEvent::GestureScrollUpdate, all_sent_events()[1].type);
266 EXPECT_EQ(2U, GetAndResetSentEventCount()); 272 EXPECT_EQ(2U, GetAndResetSentEventCount());
267 } 273 }
268 274
269 } // namespace content 275 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/renderer_host/input/mouse_wheel_event_queue.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698