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

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

Issue 1888163003: Articulate the cancel behavior in the WebTouchEvent. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Modify PlatformTouchEvent and address comments in patch set 1 Created 4 years, 8 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/touch_event_queue_unittest.cc
diff --git a/content/browser/renderer_host/input/touch_event_queue_unittest.cc b/content/browser/renderer_host/input/touch_event_queue_unittest.cc
index 26233c1096ed3c4eede21f492011d8dc2e0ed089..172cd5430e7fd2c467f1666c0e1b00fef36f9192 100644
--- a/content/browser/renderer_host/input/touch_event_queue_unittest.cc
+++ b/content/browser/renderer_host/input/touch_event_queue_unittest.cc
@@ -357,7 +357,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);
@@ -365,7 +365,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.
@@ -1073,7 +1073,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());
@@ -1095,7 +1095,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());
}
@@ -1611,7 +1611,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());
@@ -1671,9 +1671,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());
@@ -1733,7 +1733,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());
@@ -1750,9 +1750,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());
@@ -1778,7 +1778,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);
@@ -1794,14 +1794,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());
@@ -1857,11 +1857,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());
}
@@ -1903,7 +1903,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());
@@ -1913,7 +1913,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
@@ -1926,7 +1926,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());
@@ -1979,9 +1979,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.
@@ -2067,7 +2067,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());
@@ -2127,7 +2127,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());
@@ -2150,7 +2150,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());
@@ -2185,7 +2185,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());
@@ -2211,13 +2211,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());
@@ -2263,7 +2263,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());
}
@@ -2299,7 +2299,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());
@@ -2325,7 +2325,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());
@@ -2350,7 +2350,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);
@@ -2361,7 +2361,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.
@@ -2375,39 +2375,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
@@ -2415,17 +2415,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());
}

Powered by Google App Engine
This is Rietveld 408576698