Index: content/browser/renderer_host/render_widget_host_view_aura_unittest.cc |
diff --git a/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc b/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc |
index 11120ab8ed0301201af26d5da40e75b709b92280..b30fbe6e763bc66de70867871cad15734c0f110a 100644 |
--- a/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc |
+++ b/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc |
@@ -3220,23 +3220,27 @@ TEST_F(RenderWidgetHostViewAuraOverscrollTest, WheelNotPreciseScrollEvent) { |
SendInputEventACK(WebInputEvent::MouseWheel, |
INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
- // ScrollBegin, ScrollUpdate, MouseWheel will be queued events |
+ // ScrollBegin, ScrollUpdate, and MouseWheel will be queued events. |
EXPECT_EQ(3U, GetSentMessageCountAndResetSink()); |
SendInputEventACK(WebInputEvent::GestureScrollUpdate, |
INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); |
EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); |
+ // ScrollEnd will be the queued event. |
+ EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
SendInputEventACK(WebInputEvent::MouseWheel, |
INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
- // ScrollUpdate, MouseWheel will be queued events |
- EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
+ // ScrollBegin and ScrollUpdate will be queued events. |
+ EXPECT_EQ(2U, GetSentMessageCountAndResetSink()); |
SendInputEventACK(WebInputEvent::GestureScrollUpdate, |
INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); |
EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); |
+ // ScrollEnd will be the queued event. |
+ EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
} |
TEST_F(RenderWidgetHostViewAuraOverscrollTest, WheelScrollEventOverscrolls) { |
@@ -3256,28 +3260,35 @@ TEST_F(RenderWidgetHostViewAuraOverscrollTest, WheelScrollEventOverscrolls) { |
SendInputEventACK(WebInputEvent::MouseWheel, |
INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
- // ScrollBegin, ScrollUpdate, MouseWheel will be queued events |
+ // ScrollBegin, ScrollUpdate, and MouseWheel will be queued events. |
EXPECT_EQ(3U, GetSentMessageCountAndResetSink()); |
SendInputEventACK(WebInputEvent::GestureScrollUpdate, |
INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); |
EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); |
+ // ScrollEnd will be the queued event. |
+ EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
// Receive ACK for the second (coalesced) event as not processed. This will |
// start a back navigation. However, this will also cause the queued next |
// event to be sent to the renderer. But since overscroll navigation has |
// started, that event will also be included in the overscroll computation |
// instead of being sent to the renderer. So the result will be an overscroll |
- // back navigation, and no event will be sent to the renderer. |
+ // back navigation, and no ScrollUpdate event will be sent to the renderer. |
SendInputEventACK(WebInputEvent::MouseWheel, |
INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
- // ScrollUpdate, MouseWheel will be queued events |
- EXPECT_EQ(2U, GetSentMessageCountAndResetSink()); |
+ // ScrollBegin, ScrollUpdate, and MouseWheel will be queued events. |
+ EXPECT_EQ(3U, GetSentMessageCountAndResetSink()); |
SendInputEventACK(WebInputEvent::GestureScrollUpdate, |
INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
+ // ScrollEnd will be the queued event. |
+ EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
+ |
SendInputEventACK(WebInputEvent::MouseWheel, |
INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
+ // ScrollBegin and ScrollEnd will be queued events. |
+ EXPECT_EQ(2U, GetSentMessageCountAndResetSink()); |
EXPECT_EQ(OVERSCROLL_WEST, overscroll_mode()); |
EXPECT_EQ(OVERSCROLL_WEST, overscroll_delegate()->current_mode()); |
@@ -3312,10 +3323,12 @@ TEST_F(RenderWidgetHostViewAuraOverscrollTest, |
// Receive ACK the first wheel event as processed. |
SendInputEventACK(WebInputEvent::MouseWheel, |
INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
- // ScrollBegin, ScrollUpdate, MouseWheel will be queued events |
+ // ScrollBegin, ScrollUpdate, and MouseWheel will be queued events. |
EXPECT_EQ(3U, GetSentMessageCountAndResetSink()); |
SendInputEventACK(WebInputEvent::GestureScrollUpdate, |
INPUT_EVENT_ACK_STATE_CONSUMED); |
+ // ScrollEnd will be the queued event. |
+ EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); |
EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); |
@@ -3327,19 +3340,21 @@ TEST_F(RenderWidgetHostViewAuraOverscrollTest, |
SendInputEventACK(WebInputEvent::MouseWheel, |
INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); |
- // ScrollUpdate, MouseWheel will be queued events |
- EXPECT_EQ(2U, GetSentMessageCountAndResetSink()); |
+ // ScrollBegin, ScrollUpdate, and MouseWheel will be queued events. |
+ EXPECT_EQ(3U, GetSentMessageCountAndResetSink()); |
SendInputEventACK(WebInputEvent::GestureScrollUpdate, |
INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
+ // ScrollEnd will be the queued event. |
+ EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
SendInputEventACK(WebInputEvent::MouseWheel, |
INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
- // ScrollUpdate will be queued events |
- EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
+ // ScrollBegin, ScrollUpdate, and MouseWheel will be queued events. |
+ EXPECT_EQ(2U, GetSentMessageCountAndResetSink()); |
SendInputEventACK(WebInputEvent::GestureScrollUpdate, |
INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
- |
- EXPECT_EQ(0U, sink_->message_count()); |
+ // ScrollEnd will be the queued event. |
+ EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); |
} |
@@ -3353,9 +3368,12 @@ TEST_F(RenderWidgetHostViewAuraOverscrollTest, WheelScrollOverscrollToggle) { |
EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
SendInputEventACK(WebInputEvent::MouseWheel, |
INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
+ // ScrollBegin and ScrollUpdate will be queued events. |
EXPECT_EQ(2U, GetSentMessageCountAndResetSink()); |
SendInputEventACK(WebInputEvent::GestureScrollUpdate, |
INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
+ // ScrollEnd will be the queued event. |
+ EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); |
EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); |
@@ -3364,9 +3382,12 @@ TEST_F(RenderWidgetHostViewAuraOverscrollTest, WheelScrollOverscrollToggle) { |
EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
SendInputEventACK(WebInputEvent::MouseWheel, |
INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
- EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
+ // ScrollBegin and ScrollUpdate will be queued events. |
+ EXPECT_EQ(2U, GetSentMessageCountAndResetSink()); |
SendInputEventACK(WebInputEvent::GestureScrollUpdate, |
INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
+ // ScrollEnd will be the queued event. |
+ EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); |
EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); |
@@ -3375,9 +3396,12 @@ TEST_F(RenderWidgetHostViewAuraOverscrollTest, WheelScrollOverscrollToggle) { |
EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
SendInputEventACK(WebInputEvent::MouseWheel, |
INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
- EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
+ // ScrollBegin and ScrollUpdate will be queued events. |
+ EXPECT_EQ(2U, GetSentMessageCountAndResetSink()); |
SendInputEventACK(WebInputEvent::GestureScrollUpdate, |
INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
+ // ScrollEnd will be the queued event. |
+ EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
EXPECT_EQ(OVERSCROLL_EAST, overscroll_mode()); |
EXPECT_EQ(OVERSCROLL_EAST, overscroll_delegate()->current_mode()); |
EXPECT_EQ(60.f, overscroll_delta_x()); |
@@ -3389,7 +3413,8 @@ TEST_F(RenderWidgetHostViewAuraOverscrollTest, WheelScrollOverscrollToggle) { |
EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
SendInputEventACK(WebInputEvent::MouseWheel, |
INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
- EXPECT_EQ(0U, sink_->message_count()); |
+ // ScrollBegin and ScrollEnd will be queued events. |
+ EXPECT_EQ(2U, GetSentMessageCountAndResetSink()); |
EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); |
EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); |
@@ -3398,10 +3423,12 @@ TEST_F(RenderWidgetHostViewAuraOverscrollTest, WheelScrollOverscrollToggle) { |
EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
SendInputEventACK(WebInputEvent::MouseWheel, |
INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
- EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
+ // ScrollBegin and ScrollUpdate will be queued events. |
+ EXPECT_EQ(2U, GetSentMessageCountAndResetSink()); |
SendInputEventACK(WebInputEvent::GestureScrollUpdate, |
INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
- EXPECT_EQ(0U, GetSentMessageCountAndResetSink()); |
+ // ScrollEnd will be the queued event. |
+ EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); |
EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); |
@@ -3411,10 +3438,12 @@ TEST_F(RenderWidgetHostViewAuraOverscrollTest, WheelScrollOverscrollToggle) { |
EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
SendInputEventACK(WebInputEvent::MouseWheel, |
INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
- EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
+ // ScrollBegin and ScrollUpdate will be the queued events. |
+ EXPECT_EQ(2U, GetSentMessageCountAndResetSink()); |
SendInputEventACK(WebInputEvent::GestureScrollUpdate, |
INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
- EXPECT_EQ(0U, GetSentMessageCountAndResetSink()); |
+ // ScrollEnd will be the queued event. |
+ EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
EXPECT_EQ(OVERSCROLL_WEST, overscroll_mode()); |
EXPECT_EQ(OVERSCROLL_WEST, overscroll_delegate()->current_mode()); |
EXPECT_EQ(-75.f, overscroll_delta_x()); |
@@ -3432,12 +3461,14 @@ TEST_F(RenderWidgetHostViewAuraOverscrollTest, |
EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
SendInputEventACK(WebInputEvent::MouseWheel, |
INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
+ // ScrollBegin and ScrollUpdate will be queued events. |
EXPECT_EQ(2U, GetSentMessageCountAndResetSink()); |
SendInputEventACK(WebInputEvent::GestureScrollUpdate, |
INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); |
EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); |
- EXPECT_EQ(0U, GetSentMessageCountAndResetSink()); |
+ // ScrollEnd will be the queued event. |
+ EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
// Scroll some more so as to not overscroll. |
SimulateWheelEvent(20, 0, 0, true); |
@@ -3457,7 +3488,8 @@ TEST_F(RenderWidgetHostViewAuraOverscrollTest, |
INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
SendInputEventACK(WebInputEvent::GestureScrollUpdate, |
INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
- EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
+ // ScrollBegin, ScrollUpdate, and ScrollEnd will be queued events. |
+ EXPECT_EQ(3U, GetSentMessageCountAndResetSink()); |
EXPECT_EQ(OVERSCROLL_EAST, overscroll_mode()); |
EXPECT_EQ(OVERSCROLL_EAST, overscroll_delegate()->current_mode()); |
EXPECT_EQ(60.f, overscroll_delta_x()); |
@@ -3472,7 +3504,8 @@ TEST_F(RenderWidgetHostViewAuraOverscrollTest, |
blink::WebGestureDeviceTouchscreen); |
SimulateGestureFlingStartEvent(0.f, 0.1f, blink::WebGestureDeviceTouchpad); |
EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); |
- EXPECT_EQ(3U, sink_->message_count()); |
+ // ScrollBegin and FlingStart will be queued events. |
+ EXPECT_EQ(2U, sink_->message_count()); |
} |
// Same as ScrollEventsOverscrollWithFling, but with zero velocity. Checks that |
@@ -3487,34 +3520,43 @@ TEST_F(RenderWidgetHostViewAuraOverscrollTest, |
EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
SendInputEventACK(WebInputEvent::MouseWheel, |
INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
+ // ScrollBegin and ScrollUpdate will be queued events. |
EXPECT_EQ(2U, GetSentMessageCountAndResetSink()); |
SendInputEventACK(WebInputEvent::GestureScrollUpdate, |
INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); |
EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); |
- EXPECT_EQ(0U, GetSentMessageCountAndResetSink()); |
+ // ScrollEnd will be the queued event. |
+ EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
// Scroll some more so as to not overscroll. |
SimulateWheelEvent(20, 0, 0, true); |
EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
SendInputEventACK(WebInputEvent::MouseWheel, |
INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
- EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
+ // ScrollBegin and ScrollUpdate will be queued events. |
+ EXPECT_EQ(2U, GetSentMessageCountAndResetSink()); |
SendInputEventACK(WebInputEvent::GestureScrollUpdate, |
INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); |
EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); |
+ // ScrollEnd will be the queued event. |
+ EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
// Scroll some more to initiate an overscroll. |
SimulateWheelEvent(30, 0, 0, true); |
EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
SendInputEventACK(WebInputEvent::MouseWheel, |
INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
- EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
+ // ScrollBegin and ScrollUpdate will be queued events. |
+ EXPECT_EQ(2U, GetSentMessageCountAndResetSink()); |
SendInputEventACK(WebInputEvent::GestureScrollUpdate, |
INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
EXPECT_EQ(OVERSCROLL_EAST, overscroll_mode()); |
EXPECT_EQ(OVERSCROLL_EAST, overscroll_delegate()->current_mode()); |
+ // ScrollEnd will be the queued event. |
+ EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
+ |
EXPECT_EQ(60.f, overscroll_delta_x()); |
EXPECT_EQ(10.f, overscroll_delegate()->delta_x()); |
EXPECT_EQ(0.f, overscroll_delegate()->delta_y()); |
@@ -3527,7 +3569,8 @@ TEST_F(RenderWidgetHostViewAuraOverscrollTest, |
blink::WebGestureDeviceTouchscreen); |
SimulateGestureFlingStartEvent(10.f, 0.f, blink::WebGestureDeviceTouchpad); |
EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); |
- EXPECT_EQ(3U, sink_->message_count()); |
+ // scrollBeign and FlingStart will be queued events. |
+ EXPECT_EQ(2U, sink_->message_count()); |
} |
// Tests that a fling in the opposite direction of the overscroll cancels the |
@@ -3984,13 +4027,14 @@ TEST_F(RenderWidgetHostViewAuraOverscrollTest, |
EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
SendInputEventACK(WebInputEvent::MouseWheel, |
INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
- |
- // ScrollBegin, ScrollUpdate messages. |
+ // ScrollBegin and ScrollUpdate will be queued events. |
EXPECT_EQ(2U, GetSentMessageCountAndResetSink()); |
SendInputEventACK(WebInputEvent::GestureScrollUpdate, |
INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
EXPECT_EQ(OVERSCROLL_EAST, overscroll_mode()); |
EXPECT_EQ(OVERSCROLL_EAST, overscroll_delegate()->current_mode()); |
+ // ScrollEnd will be the queued event. |
+ EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
// Send another wheel event, but in the reverse direction. The overscroll |
// controller will not consume the event, because it is not triggering |
@@ -4001,13 +4045,16 @@ TEST_F(RenderWidgetHostViewAuraOverscrollTest, |
SendInputEventACK(WebInputEvent::MouseWheel, |
INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); |
- EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
+ // ScrollBegin and ScrollUpdate will be queued events. |
+ EXPECT_EQ(2U, GetSentMessageCountAndResetSink()); |
SendInputEventACK(WebInputEvent::GestureScrollUpdate, |
INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
// Since it was unhandled; the overscroll should now be west |
EXPECT_EQ(OVERSCROLL_WEST, overscroll_mode()); |
EXPECT_EQ(OVERSCROLL_WEST, overscroll_delegate()->current_mode()); |
+ // ScrollEnd will be the queued event. |
+ EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
SimulateWheelEvent(-20, 0, 0, true); |
EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
@@ -4016,7 +4063,8 @@ TEST_F(RenderWidgetHostViewAuraOverscrollTest, |
// wheel event ack generates gesture scroll update; which gets consumed |
// solely by the overflow controller. |
- EXPECT_EQ(0U, GetSentMessageCountAndResetSink()); |
+ // No ScrollUpdates, only ScrollBegin and ScrollEnd will be queued events. |
+ EXPECT_EQ(2U, GetSentMessageCountAndResetSink()); |
EXPECT_EQ(OVERSCROLL_WEST, overscroll_mode()); |
EXPECT_EQ(OVERSCROLL_WEST, overscroll_delegate()->current_mode()); |
} |
@@ -4035,22 +4083,28 @@ TEST_F(RenderWidgetHostViewAuraOverscrollTest, OverscrollMouseMoveCompletion) { |
// Receive ACK the first wheel event as not processed. |
SendInputEventACK(WebInputEvent::MouseWheel, |
INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
+ // ScrollBegin, ScrollUpdate, and the second MouseWheel will be queued |
+ // events. |
EXPECT_EQ(3U, GetSentMessageCountAndResetSink()); |
SendInputEventACK(WebInputEvent::GestureScrollUpdate, |
INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); |
EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); |
+ // ScrollEnd will be the queued event. |
+ EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
// Receive ACK for the second (coalesced) event as not processed. This will |
// start an overcroll gesture. |
SendInputEventACK(WebInputEvent::MouseWheel, |
INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
- EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
+ // ScrollBegin and ScrollUpdate will be queued events. |
+ EXPECT_EQ(2U, GetSentMessageCountAndResetSink()); |
SendInputEventACK(WebInputEvent::GestureScrollUpdate, |
INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
EXPECT_EQ(OVERSCROLL_WEST, overscroll_mode()); |
EXPECT_EQ(OVERSCROLL_WEST, overscroll_delegate()->current_mode()); |
- EXPECT_EQ(0U, sink_->message_count()); |
+ // ScrollEnd will be the queued event. |
+ EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
// Send a mouse-move event. This should cancel the overscroll navigation |
// (since the amount overscrolled is not above the threshold), and so the |
@@ -4123,7 +4177,9 @@ TEST_F(RenderWidgetHostViewAuraOverscrollTest, |
SendInputEventACK(WebInputEvent::GestureScrollUpdate, |
INPUT_EVENT_ACK_STATE_CONSUMED); |
EXPECT_TRUE(ScrollStateIsContentScrolling()); |
- EXPECT_EQ(3U, GetSentMessageCountAndResetSink()); |
+ // ScrollBegin, ScrollUpdate, the second MouseWheel, and ScrollEnd will be |
+ // queued events. |
+ EXPECT_EQ(4U, GetSentMessageCountAndResetSink()); |
// The second wheel event is consumed. |
SendInputEventACK(WebInputEvent::MouseWheel, |
@@ -4131,6 +4187,8 @@ TEST_F(RenderWidgetHostViewAuraOverscrollTest, |
SendInputEventACK(WebInputEvent::GestureScrollUpdate, |
INPUT_EVENT_ACK_STATE_CONSUMED); |
EXPECT_TRUE(ScrollStateIsContentScrolling()); |
+ // ScrollBegin, ScrollUpdate, and ScrollEnd will be queued events. |
+ EXPECT_EQ(3U, sink_->message_count()); |
// Touchpad scroll can end with a zero-velocity fling. But it is not |
// dispatched, but it should still reset the overscroll controller state. |
@@ -4138,7 +4196,9 @@ TEST_F(RenderWidgetHostViewAuraOverscrollTest, |
blink::WebGestureDeviceTouchscreen); |
SimulateGestureFlingStartEvent(0.f, 0.f, blink::WebGestureDeviceTouchpad); |
EXPECT_TRUE(ScrollStateIsUnknown()); |
- EXPECT_EQ(3U, sink_->message_count()); |
+ // ScrollBegin, ScrollUpdate, ScrollEnd, and ScrollBegin will be queued |
+ // events. |
+ EXPECT_EQ(4U, sink_->message_count()); |
// Dropped flings should neither propagate *nor* indicate that they were |
// consumed and have triggered a fling animation (as tracked by the router). |
@@ -4146,12 +4206,15 @@ TEST_F(RenderWidgetHostViewAuraOverscrollTest, |
SimulateGestureEvent(WebInputEvent::GestureScrollEnd, |
blink::WebGestureDeviceTouchscreen); |
+ // ScrollBegin, ScrollUpdate, ScrollEnd, ScrollBegin, and ScrollEnd will be |
+ // queued events. |
+ EXPECT_EQ(5U, GetSentMessageCountAndResetSink()); |
SimulateWheelEvent(-5, 0, 0, true); // sent directly |
SimulateWheelEvent(-60, 0, 0, true); // enqueued |
SimulateWheelEvent(-100, 0, 0, true); // coalesced into previous event |
EXPECT_TRUE(ScrollStateIsUnknown()); |
- EXPECT_EQ(5U, GetSentMessageCountAndResetSink()); |
+ EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
// The first wheel scroll did not scroll content. Overscroll should not start |
// yet, since enough hasn't been scrolled. |
@@ -4160,7 +4223,9 @@ TEST_F(RenderWidgetHostViewAuraOverscrollTest, |
SendInputEventACK(WebInputEvent::GestureScrollUpdate, |
INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
EXPECT_TRUE(ScrollStateIsUnknown()); |
- EXPECT_EQ(3U, GetSentMessageCountAndResetSink()); |
+ // ScrollBegin, ScrollUpdate, the second Mousewheel, and ScrollEnd will be |
+ // queued events. |
+ EXPECT_EQ(4U, GetSentMessageCountAndResetSink()); |
SendInputEventACK(WebInputEvent::MouseWheel, |
INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
@@ -4168,7 +4233,8 @@ TEST_F(RenderWidgetHostViewAuraOverscrollTest, |
INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
EXPECT_EQ(OVERSCROLL_WEST, overscroll_mode()); |
EXPECT_TRUE(ScrollStateIsOverscrolling()); |
- EXPECT_EQ(1U, sink_->message_count()); |
+ // ScrollBegin, ScrollUpdate, and ScrollEnd will be queued events. |
+ EXPECT_EQ(3U, GetSentMessageCountAndResetSink()); |
// The GestureScrollBegin will reset the delegate's mode, so check it here. |
EXPECT_EQ(OVERSCROLL_WEST, overscroll_delegate()->current_mode()); |
@@ -4177,7 +4243,8 @@ TEST_F(RenderWidgetHostViewAuraOverscrollTest, |
SimulateGestureFlingStartEvent(0.f, 0.f, blink::WebGestureDeviceTouchpad); |
EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); |
EXPECT_TRUE(ScrollStateIsUnknown()); |
- EXPECT_EQ(3U, sink_->message_count()); |
+ // ScrollBegin will be the queued event. |
+ EXPECT_EQ(1U, sink_->message_count()); |
EXPECT_FALSE(parent_host_->input_router()->HasPendingEvents()); |
} |