Index: content/browser/renderer_host/input/mouse_wheel_event_queue_unittest.cc |
diff --git a/content/browser/renderer_host/input/mouse_wheel_event_queue_unittest.cc b/content/browser/renderer_host/input/mouse_wheel_event_queue_unittest.cc |
index 83c4ceb12090ad71b30f4709f7cdbeccee1947f4..1653afcbecf7dddbe8c4b9a3d340b093fc064d5b 100644 |
--- a/content/browser/renderer_host/input/mouse_wheel_event_queue_unittest.cc |
+++ b/content/browser/renderer_host/input/mouse_wheel_event_queue_unittest.cc |
@@ -297,15 +297,24 @@ class MouseWheelEventQueueTest : public testing::TestWithParam<bool>, |
EXPECT_TRUE(event_in_flight()); |
EXPECT_EQ(WebInputEvent::MouseWheel, acked_event().type()); |
EXPECT_EQ(1U, GetAndResetAckedEventCount()); |
- EXPECT_EQ(3U, all_sent_events().size()); |
- EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0)); |
- EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1)); |
- EXPECT_MOUSE_WHEEL(sent_input_event(2)); |
- EXPECT_EQ(3U, GetAndResetSentEventCount()); |
+ if (scroll_latching_enabled_) { |
+ EXPECT_EQ(3U, all_sent_events().size()); |
+ EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0)); |
+ EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1)); |
+ EXPECT_MOUSE_WHEEL(sent_input_event(2)); |
+ EXPECT_EQ(3U, GetAndResetSentEventCount()); |
- RunTasksAndWait(DefaultScrollEndTimeoutDelay() * 2); |
- EXPECT_EQ(1U, all_sent_events().size()); |
- EXPECT_GESTURE_SCROLL_END(sent_gesture_event(0)); |
+ RunTasksAndWait(DefaultScrollEndTimeoutDelay() * 2); |
+ EXPECT_EQ(1U, all_sent_events().size()); |
+ EXPECT_GESTURE_SCROLL_END(sent_gesture_event(0)); |
+ } else { |
+ EXPECT_EQ(4U, all_sent_events().size()); |
+ EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0)); |
+ EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1)); |
+ EXPECT_GESTURE_SCROLL_END(sent_gesture_event(2)); |
+ EXPECT_MOUSE_WHEEL(sent_input_event(3)); |
+ EXPECT_EQ(4U, GetAndResetSentEventCount()); |
+ } |
} |
void PhaseGestureSendingTest(bool high_precision) { |
@@ -509,16 +518,29 @@ TEST_P(MouseWheelEventQueueTest, GestureSendingInterrupted) { |
EXPECT_FALSE(event_in_flight()); |
EXPECT_EQ(WebInputEvent::MouseWheel, acked_event().type()); |
EXPECT_EQ(1U, GetAndResetAckedEventCount()); |
- EXPECT_EQ(2U, all_sent_events().size()); |
- EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0)); |
- EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1)); |
- EXPECT_EQ(2U, GetAndResetSentEventCount()); |
+ if (scroll_latching_enabled_) { |
+ EXPECT_EQ(2U, all_sent_events().size()); |
+ EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0)); |
+ EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1)); |
+ EXPECT_EQ(2U, GetAndResetSentEventCount()); |
+ } else { |
+ EXPECT_EQ(3U, all_sent_events().size()); |
+ EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0)); |
+ EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1)); |
+ EXPECT_GESTURE_SCROLL_END(sent_gesture_event(2)); |
+ EXPECT_EQ(3U, GetAndResetSentEventCount()); |
+ } |
// Ensure that a gesture scroll begin terminates the current scroll event. |
SendGestureEvent(WebInputEvent::GestureScrollBegin); |
- EXPECT_EQ(1U, all_sent_events().size()); |
- EXPECT_GESTURE_SCROLL_END(sent_gesture_event(0)); |
- EXPECT_EQ(1U, GetAndResetSentEventCount()); |
+ if (scroll_latching_enabled_) { |
+ EXPECT_EQ(1U, all_sent_events().size()); |
+ EXPECT_GESTURE_SCROLL_END(sent_gesture_event(0)); |
+ EXPECT_EQ(1U, GetAndResetSentEventCount()); |
+ } else { |
+ // ScrollEnd has already been sent. |
+ EXPECT_EQ(0U, all_sent_events().size()); |
+ } |
SendMouseWheel(kWheelScrollX, kWheelScrollY, kWheelScrollGlobalX, |
kWheelScrollGlobalY, 1, 1, 0, false); |
@@ -550,10 +572,18 @@ TEST_P(MouseWheelEventQueueTest, GestureSendingInterrupted) { |
EXPECT_FALSE(event_in_flight()); |
EXPECT_EQ(WebInputEvent::MouseWheel, acked_event().type()); |
EXPECT_EQ(1U, GetAndResetAckedEventCount()); |
- EXPECT_EQ(2U, all_sent_events().size()); |
- EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0)); |
- EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1)); |
- EXPECT_EQ(2U, GetAndResetSentEventCount()); |
+ if (scroll_latching_enabled_) { |
+ EXPECT_EQ(2U, all_sent_events().size()); |
+ EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0)); |
+ EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1)); |
+ EXPECT_EQ(2U, GetAndResetSentEventCount()); |
+ } else { |
+ EXPECT_EQ(3U, all_sent_events().size()); |
+ EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0)); |
+ EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1)); |
+ EXPECT_GESTURE_SCROLL_END(sent_gesture_event(2)); |
+ EXPECT_EQ(3U, GetAndResetSentEventCount()); |
+ } |
} |
TEST_P(MouseWheelEventQueueTest, GestureRailScrolling) { |
@@ -572,17 +602,26 @@ TEST_P(MouseWheelEventQueueTest, GestureRailScrolling) { |
EXPECT_FALSE(event_in_flight()); |
EXPECT_EQ(WebInputEvent::MouseWheel, acked_event().type()); |
EXPECT_EQ(1U, GetAndResetAckedEventCount()); |
- EXPECT_EQ(2U, all_sent_events().size()); |
- EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0)); |
- EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1)); |
- EXPECT_EQ(1U, sent_gesture_event(1)->data.scrollUpdate.deltaX); |
- EXPECT_EQ(0U, sent_gesture_event(1)->data.scrollUpdate.deltaY); |
- EXPECT_EQ(2U, GetAndResetSentEventCount()); |
- |
- RunTasksAndWait(DefaultScrollEndTimeoutDelay() * 2); |
- EXPECT_EQ(1U, all_sent_events().size()); |
- EXPECT_GESTURE_SCROLL_END(sent_gesture_event(0)); |
- EXPECT_EQ(1U, GetAndResetSentEventCount()); |
+ if (scroll_latching_enabled_) { |
+ EXPECT_EQ(2U, all_sent_events().size()); |
+ EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0)); |
+ EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1)); |
+ EXPECT_EQ(1U, sent_gesture_event(1)->data.scrollUpdate.deltaX); |
+ EXPECT_EQ(0U, sent_gesture_event(1)->data.scrollUpdate.deltaY); |
+ EXPECT_EQ(2U, GetAndResetSentEventCount()); |
+ RunTasksAndWait(DefaultScrollEndTimeoutDelay() * 2); |
+ EXPECT_EQ(1U, all_sent_events().size()); |
+ EXPECT_GESTURE_SCROLL_END(sent_gesture_event(0)); |
+ EXPECT_EQ(1U, GetAndResetSentEventCount()); |
+ } else { |
+ EXPECT_EQ(3U, all_sent_events().size()); |
+ EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0)); |
+ EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1)); |
+ EXPECT_GESTURE_SCROLL_END(sent_gesture_event(2)); |
+ EXPECT_EQ(1U, sent_gesture_event(1)->data.scrollUpdate.deltaX); |
+ EXPECT_EQ(0U, sent_gesture_event(1)->data.scrollUpdate.deltaY); |
+ EXPECT_EQ(3U, GetAndResetSentEventCount()); |
+ } |
SendMouseWheel(kWheelScrollX, kWheelScrollY, kWheelScrollGlobalX, |
kWheelScrollGlobalY, 1, 1, 0, false, |
@@ -597,15 +636,28 @@ TEST_P(MouseWheelEventQueueTest, GestureRailScrolling) { |
EXPECT_FALSE(event_in_flight()); |
EXPECT_EQ(WebInputEvent::MouseWheel, acked_event().type()); |
EXPECT_EQ(1U, GetAndResetAckedEventCount()); |
- EXPECT_EQ(2U, all_sent_events().size()); |
- EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0)); |
- EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1)); |
+ if (scroll_latching_enabled_) { |
+ EXPECT_EQ(2U, all_sent_events().size()); |
+ EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0)); |
+ EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1)); |
+ } else { |
+ EXPECT_EQ(3U, all_sent_events().size()); |
+ EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0)); |
+ EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1)); |
+ EXPECT_GESTURE_SCROLL_END(sent_gesture_event(2)); |
+ } |
EXPECT_EQ(0U, sent_gesture_event(1)->data.scrollUpdate.deltaX); |
EXPECT_EQ(1U, sent_gesture_event(1)->data.scrollUpdate.deltaY); |
- EXPECT_EQ(2U, GetAndResetSentEventCount()); |
+ if (scroll_latching_enabled_) |
+ EXPECT_EQ(2U, GetAndResetSentEventCount()); |
+ else |
+ EXPECT_EQ(3U, GetAndResetSentEventCount()); |
} |
TEST_P(MouseWheelEventQueueTest, WheelScrollLatching) { |
+ if (!scroll_latching_enabled_) |
+ return; |
+ |
const WebGestureEvent::ScrollUnits scroll_units = WebGestureEvent::Pixels; |
SendMouseWheel(kWheelScrollX, kWheelScrollY, kWheelScrollGlobalX, |
kWheelScrollGlobalY, 1, 1, 0, false, |
@@ -627,13 +679,8 @@ TEST_P(MouseWheelEventQueueTest, WheelScrollLatching) { |
EXPECT_EQ(1U, sent_gesture_event(1)->data.scrollUpdate.deltaY); |
EXPECT_EQ(2U, GetAndResetSentEventCount()); |
- RunTasksAndWait(base::TimeDelta::FromMilliseconds(1)); |
- if (!scroll_latching_enabled_) { |
- EXPECT_GESTURE_SCROLL_END(sent_gesture_event(0)); |
- EXPECT_EQ(1U, GetAndResetSentEventCount()); |
- } else { |
- EXPECT_EQ(0U, GetAndResetSentEventCount()); |
- } |
+ RunTasksAndWait(DefaultScrollEndTimeoutDelay() / 2); |
+ EXPECT_EQ(0U, GetAndResetSentEventCount()); |
SendMouseWheel(kWheelScrollX, kWheelScrollY, kWheelScrollGlobalX, |
kWheelScrollGlobalY, 1, 1, 0, false, |
WebInputEvent::RailsModeVertical); |
@@ -648,22 +695,12 @@ TEST_P(MouseWheelEventQueueTest, WheelScrollLatching) { |
EXPECT_EQ(WebInputEvent::MouseWheel, acked_event().type()); |
EXPECT_EQ(1U, GetAndResetAckedEventCount()); |
- int updateEventIndex = -1; |
- if (!scroll_latching_enabled_) { |
- EXPECT_EQ(2U, all_sent_events().size()); |
- EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0)); |
- updateEventIndex = 1; |
- } else { |
- // Scroll latching: no new scroll begin expected. |
- EXPECT_EQ(1U, all_sent_events().size()); |
- updateEventIndex = 0; |
- } |
- EXPECT_GE(updateEventIndex, 0); |
- EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(updateEventIndex)); |
- EXPECT_EQ(0U, sent_gesture_event(updateEventIndex)->data.scrollUpdate.deltaX); |
- EXPECT_EQ(1U, sent_gesture_event(updateEventIndex)->data.scrollUpdate.deltaY); |
- EXPECT_EQ(static_cast<size_t>(updateEventIndex + 1), |
- GetAndResetSentEventCount()); |
+ // Scroll latching: no new scroll begin expected. |
+ EXPECT_EQ(1U, all_sent_events().size()); |
+ EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(0)); |
+ EXPECT_EQ(0U, sent_gesture_event(0)->data.scrollUpdate.deltaX); |
+ EXPECT_EQ(1U, sent_gesture_event(0)->data.scrollUpdate.deltaY); |
+ EXPECT_EQ(1U, GetAndResetSentEventCount()); |
} |
INSTANTIATE_TEST_CASE_P(MouseWheelEventQueueTests, |