diff options
Diffstat (limited to 'chromium/content/browser/renderer_host/input/touch_event_queue_unittest.cc')
-rw-r--r-- | chromium/content/browser/renderer_host/input/touch_event_queue_unittest.cc | 98 |
1 files changed, 50 insertions, 48 deletions
diff --git a/chromium/content/browser/renderer_host/input/touch_event_queue_unittest.cc b/chromium/content/browser/renderer_host/input/touch_event_queue_unittest.cc index f1091d48172..f2362b2bb18 100644 --- a/chromium/content/browser/renderer_host/input/touch_event_queue_unittest.cc +++ b/chromium/content/browser/renderer_host/input/touch_event_queue_unittest.cc @@ -84,6 +84,9 @@ class TouchEventQueueTest : public testing::Test, } } + void OnFilteringTouchEvent(const blink::WebTouchEvent& touch_event) override { + } + protected: void SetUpForTouchMoveSlopTesting(double slop_length_dips) { slop_length_dips_ = slop_length_dips; @@ -105,17 +108,16 @@ class TouchEventQueueTest : public testing::Test, void SendTouchEvent(WebTouchEvent event) { if (slop_length_dips_) { - event.causesScrollingIfUncanceled = false; + event.movedBeyondSlopRegion = false; if (WebTouchEventTraits::IsTouchSequenceStart(event)) anchor_ = event.touches[0].position; if (event.type == WebInputEvent::TouchMove) { gfx::Vector2dF delta = anchor_ - event.touches[0].position; if (delta.LengthSquared() > slop_length_dips_ * slop_length_dips_) - event.causesScrollingIfUncanceled = true; + event.movedBeyondSlopRegion = true; } } else { - event.causesScrollingIfUncanceled = - event.type == WebInputEvent::TouchMove; + event.movedBeyondSlopRegion = event.type == WebInputEvent::TouchMove; } queue_->QueueEvent(TouchEventWithLatencyInfo(event, ui::LatencyInfo())); } @@ -190,7 +192,7 @@ class TouchEventQueueTest : public testing::Test, point.radiusX = radius_x; point.radiusY = radius_y; touch_event_.touches[index].state = WebTouchPoint::StateMoved; - touch_event_.causesScrollingIfUncanceled = true; + touch_event_.movedBeyondSlopRegion = true; WebTouchEventTraits::ResetType(WebInputEvent::TouchMove, touch_event_.timeStampSeconds, &touch_event_); @@ -203,7 +205,7 @@ class TouchEventQueueTest : public testing::Test, WebTouchPoint& point = touch_event_.touches[index]; point.rotationAngle = rotation_angle; touch_event_.touches[index].state = WebTouchPoint::StateMoved; - touch_event_.causesScrollingIfUncanceled = true; + touch_event_.movedBeyondSlopRegion = true; WebTouchEventTraits::ResetType(WebInputEvent::TouchMove, touch_event_.timeStampSeconds, &touch_event_); @@ -216,7 +218,7 @@ class TouchEventQueueTest : public testing::Test, WebTouchPoint& point = touch_event_.touches[index]; point.force = force; touch_event_.touches[index].state = WebTouchPoint::StateMoved; - touch_event_.causesScrollingIfUncanceled = true; + touch_event_.movedBeyondSlopRegion = true; WebTouchEventTraits::ResetType(WebInputEvent::TouchMove, touch_event_.timeStampSeconds, &touch_event_); @@ -354,7 +356,7 @@ TEST_F(TouchEventQueueTest, Basic) { EXPECT_EQ(1U, GetAndResetSentEventCount()); EXPECT_EQ(1U, GetAndResetAckedEventCount()); EXPECT_EQ(WebInputEvent::TouchStart, acked_event().type); - EXPECT_TRUE(acked_event().cancelable); + EXPECT_EQ(WebInputEvent::Blocking, acked_event().dispatchType); // Receive an ACK for the second touch-event. SendTouchEventAck(INPUT_EVENT_ACK_STATE_CONSUMED); @@ -362,7 +364,7 @@ TEST_F(TouchEventQueueTest, Basic) { EXPECT_EQ(0U, GetAndResetSentEventCount()); EXPECT_EQ(1U, GetAndResetAckedEventCount()); EXPECT_EQ(WebInputEvent::TouchMove, acked_event().type); - EXPECT_TRUE(acked_event().cancelable); + EXPECT_EQ(WebInputEvent::Blocking, acked_event().dispatchType); } // Tests that touch-events with multiple points are queued properly. @@ -1070,7 +1072,7 @@ TEST_F(TouchEventQueueTest, TouchTimeoutBasic) { SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); EXPECT_FALSE(IsTimeoutRunning()); EXPECT_EQ(WebInputEvent::TouchCancel, sent_event().type); - EXPECT_FALSE(sent_event().cancelable); + EXPECT_NE(WebInputEvent::Blocking, sent_event().dispatchType); EXPECT_EQ(0U, GetAndResetAckedEventCount()); EXPECT_EQ(1U, GetAndResetSentEventCount()); @@ -1092,7 +1094,7 @@ TEST_F(TouchEventQueueTest, TouchTimeoutBasic) { // Subsequent events should be handled normally. PressTouchPoint(0, 1); EXPECT_EQ(WebInputEvent::TouchStart, sent_event().type); - EXPECT_TRUE(sent_event().cancelable); + EXPECT_EQ(WebInputEvent::Blocking, sent_event().dispatchType); EXPECT_EQ(1U, GetAndResetSentEventCount()); EXPECT_EQ(0U, GetAndResetAckedEventCount()); } @@ -1608,7 +1610,7 @@ TEST_F(TouchEventQueueTest, AsyncTouch) { MoveTouchPoint(0, 10, 5+i); SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); EXPECT_FALSE(HasPendingAsyncTouchMove()); - EXPECT_TRUE(sent_event().cancelable); + EXPECT_EQ(WebInputEvent::Blocking, sent_event().dispatchType); EXPECT_EQ(0U, queued_event_count()); EXPECT_EQ(1U, GetAndResetSentEventCount()); @@ -1668,9 +1670,9 @@ TEST_F(TouchEventQueueTest, AsyncTouchThrottledAfterScroll) { EXPECT_FALSE(HasPendingAsyncTouchMove()); EXPECT_EQ(2U, all_sent_events().size()); EXPECT_EQ(WebInputEvent::TouchMove, all_sent_events()[0].type); - EXPECT_FALSE(all_sent_events()[0].cancelable); + EXPECT_NE(WebInputEvent::Blocking, all_sent_events()[0].dispatchType); EXPECT_EQ(WebInputEvent::TouchEnd, all_sent_events()[1].type); - EXPECT_FALSE(all_sent_events()[1].cancelable); + EXPECT_NE(WebInputEvent::Blocking, all_sent_events()[1].dispatchType); EXPECT_EQ(2U, GetAndResetSentEventCount()); EXPECT_EQ(0U, GetAndResetAckedEventCount()); EXPECT_EQ(1U, queued_event_count()); @@ -1730,7 +1732,7 @@ TEST_F(TouchEventQueueTest, AsyncTouchThrottledAfterScroll) { MoveTouchPoint(0, 0, 15); SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); EXPECT_FALSE(HasPendingAsyncTouchMove()); - EXPECT_FALSE(sent_event().cancelable); + EXPECT_NE(WebInputEvent::Blocking, sent_event().dispatchType); EXPECT_EQ(0U, queued_event_count()); EXPECT_EQ(1U, GetAndResetSentEventCount()); EXPECT_EQ(1U, GetAndResetAckedEventCount()); @@ -1747,9 +1749,9 @@ TEST_F(TouchEventQueueTest, AsyncTouchThrottledAfterScroll) { EXPECT_FALSE(HasPendingAsyncTouchMove()); EXPECT_EQ(2U, all_sent_events().size()); EXPECT_EQ(WebInputEvent::TouchMove, all_sent_events()[0].type); - EXPECT_FALSE(all_sent_events()[0].cancelable); + EXPECT_NE(WebInputEvent::Blocking, all_sent_events()[0].dispatchType); EXPECT_EQ(WebInputEvent::TouchStart, all_sent_events()[1].type); - EXPECT_TRUE(all_sent_events()[1].cancelable); + EXPECT_EQ(WebInputEvent::Blocking, all_sent_events()[1].dispatchType); EXPECT_EQ(2U, GetAndResetSentEventCount()); EXPECT_EQ(0U, GetAndResetAckedEventCount()); EXPECT_EQ(1U, queued_event_count()); @@ -1775,7 +1777,7 @@ TEST_F(TouchEventQueueTest, AsyncTouchThrottledAfterScroll) { // The pending touchmove should be coalesced with the next (now synchronous) // touchmove. MoveTouchPoint(0, 0, 26); - EXPECT_TRUE(sent_event().cancelable); + EXPECT_EQ(WebInputEvent::Blocking, sent_event().dispatchType); EXPECT_FALSE(HasPendingAsyncTouchMove()); EXPECT_EQ(WebInputEvent::TouchMove, sent_event().type); EXPECT_EQ(WebTouchPoint::StateMoved, sent_event().touches[0].state); @@ -1791,14 +1793,14 @@ TEST_F(TouchEventQueueTest, AsyncTouchThrottledAfterScroll) { ReleaseTouchPoint(0); EXPECT_EQ(3U, queued_event_count()); SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); - EXPECT_TRUE(sent_event().cancelable); + EXPECT_EQ(WebInputEvent::Blocking, sent_event().dispatchType); EXPECT_EQ(WebInputEvent::TouchEnd, sent_event().type); EXPECT_EQ(2U, queued_event_count()); EXPECT_EQ(1U, GetAndResetSentEventCount()); EXPECT_EQ(1U, GetAndResetAckedEventCount()); SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); - EXPECT_TRUE(sent_event().cancelable); + EXPECT_EQ(WebInputEvent::Blocking, sent_event().dispatchType); EXPECT_EQ(WebInputEvent::TouchEnd, sent_event().type); EXPECT_EQ(1U, queued_event_count()); EXPECT_EQ(1U, GetAndResetSentEventCount()); @@ -1854,11 +1856,11 @@ TEST_F(TouchEventQueueTest, AsyncTouchFlushedByTouchEnd) { EXPECT_FALSE(HasPendingAsyncTouchMove()); EXPECT_EQ(2U, all_sent_events().size()); EXPECT_EQ(WebInputEvent::TouchMove, all_sent_events()[0].type); - EXPECT_FALSE(all_sent_events()[0].cancelable); + EXPECT_NE(WebInputEvent::Blocking, all_sent_events()[0].dispatchType); EXPECT_EQ(0, all_sent_events()[0].touches[0].position.x); EXPECT_EQ(0, all_sent_events()[0].touches[0].position.y); EXPECT_EQ(WebInputEvent::TouchEnd, all_sent_events()[1].type); - EXPECT_FALSE(all_sent_events()[1].cancelable); + EXPECT_NE(WebInputEvent::Blocking, all_sent_events()[1].dispatchType); EXPECT_EQ(2U, GetAndResetSentEventCount()); EXPECT_EQ(0U, GetAndResetAckedEventCount()); } @@ -1900,7 +1902,7 @@ TEST_F(TouchEventQueueTest, AsyncTouchWithAckTimeout) { MoveTouchPoint(0, 5, 5); EXPECT_FALSE(IsTimeoutRunning()); EXPECT_FALSE(HasPendingAsyncTouchMove()); - EXPECT_FALSE(sent_event().cancelable); + EXPECT_NE(WebInputEvent::Blocking, sent_event().dispatchType); EXPECT_EQ(1U, GetAndResetAckedEventCount()); EXPECT_EQ(1U, GetAndResetSentEventCount()); @@ -1910,7 +1912,7 @@ TEST_F(TouchEventQueueTest, AsyncTouchWithAckTimeout) { INPUT_EVENT_ACK_STATE_NOT_CONSUMED); MoveTouchPoint(0, 20, 5); EXPECT_TRUE(IsTimeoutRunning()); - EXPECT_TRUE(sent_event().cancelable); + EXPECT_EQ(WebInputEvent::Blocking, sent_event().dispatchType); EXPECT_EQ(1U, GetAndResetSentEventCount()); // The timeout should fire, disabling touch forwarding until both acks are @@ -1923,7 +1925,7 @@ TEST_F(TouchEventQueueTest, AsyncTouchWithAckTimeout) { // Ack'ing the original event should trigger a cancel event. SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); - EXPECT_FALSE(sent_event().cancelable); + EXPECT_NE(WebInputEvent::Blocking, sent_event().dispatchType); EXPECT_EQ(0U, GetAndResetAckedEventCount()); EXPECT_EQ(1U, GetAndResetSentEventCount()); @@ -1976,9 +1978,9 @@ TEST_F(TouchEventQueueTest, AsyncTouchWithTouchCancelAfterAck) { EXPECT_EQ(1U, queued_event_count()); EXPECT_EQ(2U, all_sent_events().size()); EXPECT_EQ(WebInputEvent::TouchMove, all_sent_events()[0].type); - EXPECT_FALSE(all_sent_events()[0].cancelable); + EXPECT_NE(WebInputEvent::Blocking, all_sent_events()[0].dispatchType); EXPECT_EQ(WebInputEvent::TouchCancel, all_sent_events()[1].type); - EXPECT_FALSE(all_sent_events()[1].cancelable); + EXPECT_NE(WebInputEvent::Blocking, all_sent_events()[1].dispatchType); EXPECT_EQ(2U, GetAndResetSentEventCount()); // Sending the ack is because the async touchmove is not ready for // dispatching send the ack immediately. @@ -2064,7 +2066,7 @@ TEST_F(TouchEventQueueTest, SendNextThrottledAsyncTouchMoveAfterAck) { // Dispatch the touch move event when sufficient time has passed. MoveTouchPoint(0, 0, 40); EXPECT_FALSE(HasPendingAsyncTouchMove()); - EXPECT_FALSE(sent_event().cancelable); + EXPECT_NE(WebInputEvent::Blocking, sent_event().dispatchType); // When we dispatch an async touchmove, we do not put it back to the queue // any more and we will ack to client right away. EXPECT_EQ(0U, queued_event_count()); @@ -2124,7 +2126,7 @@ TEST_F(TouchEventQueueTest, SendNextAsyncTouchMoveAfterAckAndTimeExpire) { AdvanceTouchTime(kMinSecondsBetweenThrottledTouchmoves + 0.1); MoveTouchPoint(0, 0, 40); EXPECT_FALSE(HasPendingAsyncTouchMove()); - EXPECT_FALSE(sent_event().cancelable); + EXPECT_NE(WebInputEvent::Blocking, sent_event().dispatchType); // When we dispatch an async touchmove, we do not put it back to the queue // any more and we will ack to client right away. EXPECT_EQ(0U, queued_event_count()); @@ -2147,7 +2149,7 @@ TEST_F(TouchEventQueueTest, SendNextAsyncTouchMoveAfterAckAndTimeExpire) { MoveTouchPoint(0, 0, 50); EXPECT_FALSE(HasPendingAsyncTouchMove()); EXPECT_EQ(WebInputEvent::TouchMove, sent_event().type); - EXPECT_FALSE(sent_event().cancelable); + EXPECT_NE(WebInputEvent::Blocking, sent_event().dispatchType); EXPECT_EQ(0U, queued_event_count()); EXPECT_EQ(1U, GetAndResetSentEventCount()); EXPECT_EQ(1U, GetAndResetAckedEventCount()); @@ -2182,7 +2184,7 @@ TEST_F(TouchEventQueueTest, AsyncTouchFlushedByNonTouchMove) { AdvanceTouchTime(kMinSecondsBetweenThrottledTouchmoves + 0.1); MoveTouchPoint(0, 0, 40); EXPECT_FALSE(HasPendingAsyncTouchMove()); - EXPECT_FALSE(sent_event().cancelable); + EXPECT_NE(WebInputEvent::Blocking, sent_event().dispatchType); // When we dispatch an async touchmove, we do not put it back to the queue // any more and we will ack to client right away. EXPECT_EQ(0U, queued_event_count()); @@ -2208,13 +2210,13 @@ TEST_F(TouchEventQueueTest, AsyncTouchFlushedByNonTouchMove) { EXPECT_FALSE(HasPendingAsyncTouchMove()); EXPECT_EQ(2U, all_sent_events().size()); EXPECT_EQ(WebInputEvent::TouchMove, all_sent_events()[0].type); - EXPECT_FALSE(all_sent_events()[0].cancelable); + EXPECT_NE(WebInputEvent::Blocking, all_sent_events()[0].dispatchType); EXPECT_EQ(10 + 10 * i, all_sent_events()[0].touches[0].position.x); EXPECT_EQ(10 + 10 * i, all_sent_events()[0].touches[0].position.y); EXPECT_EQ(static_cast<size_t>(i + 2), uncancelable_touch_moves_pending_ack_count()); EXPECT_EQ(WebInputEvent::TouchStart, all_sent_events()[1].type); - EXPECT_TRUE(all_sent_events()[1].cancelable); + EXPECT_EQ(WebInputEvent::Blocking, all_sent_events()[1].dispatchType); EXPECT_EQ(2U, GetAndResetSentEventCount()); EXPECT_EQ(0U, GetAndResetAckedEventCount()); @@ -2260,7 +2262,7 @@ TEST_F(TouchEventQueueTest, AsyncTouchFlushedByNonTouchMove) { EXPECT_FALSE(HasPendingAsyncTouchMove()); EXPECT_EQ(0U, queued_event_count()); EXPECT_EQ(WebInputEvent::TouchMove, sent_event().type); - EXPECT_FALSE(sent_event().cancelable); + EXPECT_NE(WebInputEvent::Blocking, sent_event().dispatchType); EXPECT_EQ(1U, GetAndResetSentEventCount()); EXPECT_EQ(0U, GetAndResetAckedEventCount()); } @@ -2296,7 +2298,7 @@ TEST_F(TouchEventQueueTest, DoNotIncreaseIfClientConsumeAsyncTouchMove) { AdvanceTouchTime(kMinSecondsBetweenThrottledTouchmoves + 0.1); MoveTouchPoint(0, 0, 40); EXPECT_FALSE(HasPendingAsyncTouchMove()); - EXPECT_FALSE(sent_event().cancelable); + EXPECT_NE(WebInputEvent::Blocking, sent_event().dispatchType); // When we dispatch an async touchmove, we do not put it back to the queue // any more and we will ack to client right away. EXPECT_EQ(0U, queued_event_count()); @@ -2322,7 +2324,7 @@ TEST_F(TouchEventQueueTest, DoNotIncreaseIfClientConsumeAsyncTouchMove) { MoveTouchPoint(0, 0, 50); EXPECT_FALSE(HasPendingAsyncTouchMove()); EXPECT_EQ(WebInputEvent::TouchMove, sent_event().type); - EXPECT_FALSE(sent_event().cancelable); + EXPECT_NE(WebInputEvent::Blocking, sent_event().dispatchType); EXPECT_EQ(0U, queued_event_count()); EXPECT_EQ(1U, GetAndResetSentEventCount()); EXPECT_EQ(1U, GetAndResetAckedEventCount()); @@ -2347,7 +2349,7 @@ TEST_F(TouchEventQueueTest, TouchAbsorptionWithConsumedFirstMove) { MoveTouchPoint(0, 60, 5); SendTouchEventAck(INPUT_EVENT_ACK_STATE_CONSUMED); EXPECT_EQ(0U, queued_event_count()); - EXPECT_TRUE(sent_event().cancelable); + EXPECT_EQ(WebInputEvent::Blocking, sent_event().dispatchType); EXPECT_EQ(1U, GetAndResetSentEventCount()); MoveTouchPoint(0, 20, 5); @@ -2358,7 +2360,7 @@ TEST_F(TouchEventQueueTest, TouchAbsorptionWithConsumedFirstMove) { SendGestureEventAck(WebInputEvent::GestureScrollUpdate, INPUT_EVENT_ACK_STATE_CONSUMED); EXPECT_EQ(0U, queued_event_count()); - EXPECT_TRUE(sent_event().cancelable); + EXPECT_EQ(WebInputEvent::Blocking, sent_event().dispatchType); EXPECT_EQ(1U, GetAndResetSentEventCount()); // Touch move event is throttled. @@ -2372,39 +2374,39 @@ TEST_F(TouchEventQueueTest, TouchStartCancelableDuringScroll) { // active scroll sequence. PressTouchPoint(0, 1); SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); - EXPECT_TRUE(sent_event().cancelable); + EXPECT_EQ(WebInputEvent::Blocking, sent_event().dispatchType); ASSERT_EQ(1U, GetAndResetSentEventCount()); MoveTouchPoint(0, 20, 5); - EXPECT_TRUE(sent_event().cancelable); + EXPECT_EQ(WebInputEvent::Blocking, sent_event().dispatchType); SendGestureEvent(blink::WebInputEvent::GestureScrollBegin); SendGestureEvent(blink::WebInputEvent::GestureScrollUpdate); SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); - EXPECT_TRUE(sent_event().cancelable); + EXPECT_EQ(WebInputEvent::Blocking, sent_event().dispatchType); ASSERT_EQ(1U, GetAndResetSentEventCount()); // Even though scrolling has begun, touchstart events should be cancelable, // allowing, for example, customized pinch processing. PressTouchPoint(10, 11); SendTouchEventAck(INPUT_EVENT_ACK_STATE_CONSUMED); - EXPECT_TRUE(sent_event().cancelable); + EXPECT_EQ(WebInputEvent::Blocking, sent_event().dispatchType); ASSERT_EQ(1U, GetAndResetSentEventCount()); // As the touch start was consumed, touchmoves should no longer be throttled. MoveTouchPoint(1, 11, 11); SendTouchEventAck(INPUT_EVENT_ACK_STATE_CONSUMED); - EXPECT_TRUE(sent_event().cancelable); + EXPECT_EQ(WebInputEvent::Blocking, sent_event().dispatchType); ASSERT_EQ(1U, GetAndResetSentEventCount()); // With throttling disabled, touchend and touchmove events should also be // cancelable. MoveTouchPoint(1, 12, 12); SendTouchEventAck(INPUT_EVENT_ACK_STATE_CONSUMED); - EXPECT_TRUE(sent_event().cancelable); + EXPECT_EQ(WebInputEvent::Blocking, sent_event().dispatchType); ASSERT_EQ(1U, GetAndResetSentEventCount()); ReleaseTouchPoint(1); SendTouchEventAck(INPUT_EVENT_ACK_STATE_CONSUMED); - EXPECT_TRUE(sent_event().cancelable); + EXPECT_EQ(WebInputEvent::Blocking, sent_event().dispatchType); ASSERT_EQ(1U, GetAndResetSentEventCount()); // If subsequent touchmoves aren't consumed, the generated scroll events @@ -2412,17 +2414,17 @@ TEST_F(TouchEventQueueTest, TouchStartCancelableDuringScroll) { MoveTouchPoint(0, 25, 5); SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); SendGestureEvent(blink::WebInputEvent::GestureScrollUpdate); - EXPECT_TRUE(sent_event().cancelable); + EXPECT_EQ(WebInputEvent::Blocking, sent_event().dispatchType); ASSERT_EQ(1U, GetAndResetSentEventCount()); AdvanceTouchTime(kMinSecondsBetweenThrottledTouchmoves + 0.1); MoveTouchPoint(0, 30, 5); SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); - EXPECT_FALSE(sent_event().cancelable); + EXPECT_NE(WebInputEvent::Blocking, sent_event().dispatchType); ASSERT_EQ(1U, GetAndResetSentEventCount()); // The touchend will be uncancelable during an active scroll sequence. ReleaseTouchPoint(0); - EXPECT_FALSE(sent_event().cancelable); + EXPECT_NE(WebInputEvent::Blocking, sent_event().dispatchType); ASSERT_EQ(1U, GetAndResetSentEventCount()); } |