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

Unified Diff: content/browser/renderer_host/input/mouse_wheel_event_queue_unittest.cc

Issue 2782733002: MouseWheelEventQueue sends scrollEnd right away when latching is disabled. (Closed)
Patch Set: review comments addressed. Created 3 years, 9 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 side-by-side diff with in-line comments
Download patch
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,

Powered by Google App Engine
This is Rietveld 408576698