Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 Loading... | |
| 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 Loading... | |
| 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 |
| OLD | NEW |