| 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 88b612307fe8059c6cb8d6dfae8670b49df4eccb..110688d97245e8999f39c3f8e8b96abc24953fc6 100644
|
| --- a/content/browser/renderer_host/input/touch_event_queue_unittest.cc
|
| +++ b/content/browser/renderer_host/input/touch_event_queue_unittest.cc
|
| @@ -1399,39 +1399,45 @@ TEST_F(TouchEventQueueTest, TouchMoveSuppressionIncludingSlopBoundary) {
|
| ASSERT_EQ(1U, GetAndResetSentEventCount());
|
| ASSERT_EQ(1U, GetAndResetAckedEventCount());
|
|
|
| - // TouchMove's within the region should be suppressed.
|
| + // TouchMove's within the region will not be suppressed in the browser side,
|
| + // but its movedBeyondSlopRegion is set to false.
|
| MoveTouchPoint(0, 0, kHalfSlopLengthDips);
|
| - EXPECT_EQ(0U, queued_event_count());
|
| - EXPECT_EQ(0U, GetAndResetSentEventCount());
|
| + EXPECT_EQ(1U, queued_event_count());
|
| + SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
|
| + EXPECT_EQ(1U, GetAndResetSentEventCount());
|
| EXPECT_EQ(1U, GetAndResetAckedEventCount());
|
| - EXPECT_EQ(INPUT_EVENT_ACK_STATE_NOT_CONSUMED, acked_event_state());
|
| + EXPECT_FALSE(acked_event().movedBeyondSlopRegion);
|
|
|
| MoveTouchPoint(0, kHalfSlopLengthDips, 0);
|
| - EXPECT_EQ(0U, queued_event_count());
|
| - EXPECT_EQ(0U, GetAndResetSentEventCount());
|
| + EXPECT_EQ(1U, queued_event_count());
|
| + SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
|
| + EXPECT_EQ(1U, GetAndResetSentEventCount());
|
| EXPECT_EQ(1U, GetAndResetAckedEventCount());
|
| - EXPECT_EQ(INPUT_EVENT_ACK_STATE_NOT_CONSUMED, acked_event_state());
|
| + EXPECT_FALSE(acked_event().movedBeyondSlopRegion);
|
|
|
| MoveTouchPoint(0, -kHalfSlopLengthDips, 0);
|
| - EXPECT_EQ(0U, queued_event_count());
|
| - EXPECT_EQ(0U, GetAndResetSentEventCount());
|
| + EXPECT_EQ(1U, queued_event_count());
|
| + SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
|
| + EXPECT_EQ(1U, GetAndResetSentEventCount());
|
| EXPECT_EQ(1U, GetAndResetAckedEventCount());
|
| - EXPECT_EQ(INPUT_EVENT_ACK_STATE_NOT_CONSUMED, acked_event_state());
|
| + EXPECT_FALSE(acked_event().movedBeyondSlopRegion);
|
|
|
| MoveTouchPoint(0, -kSlopLengthDips, 0);
|
| - EXPECT_EQ(0U, queued_event_count());
|
| - EXPECT_EQ(0U, GetAndResetSentEventCount());
|
| + EXPECT_EQ(1U, queued_event_count());
|
| + SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
|
| + EXPECT_EQ(1U, GetAndResetSentEventCount());
|
| EXPECT_EQ(1U, GetAndResetAckedEventCount());
|
| - EXPECT_EQ(INPUT_EVENT_ACK_STATE_NOT_CONSUMED, acked_event_state());
|
| + EXPECT_FALSE(acked_event().movedBeyondSlopRegion);
|
|
|
| MoveTouchPoint(0, 0, kSlopLengthDips);
|
| - EXPECT_EQ(0U, queued_event_count());
|
| - EXPECT_EQ(0U, GetAndResetSentEventCount());
|
| + EXPECT_EQ(1U, queued_event_count());
|
| + SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
|
| + EXPECT_EQ(1U, GetAndResetSentEventCount());
|
| EXPECT_EQ(1U, GetAndResetAckedEventCount());
|
| - EXPECT_EQ(INPUT_EVENT_ACK_STATE_NOT_CONSUMED, acked_event_state());
|
| + EXPECT_FALSE(acked_event().movedBeyondSlopRegion);
|
|
|
| - // As soon as a TouchMove exceeds the (Euclidean) distance, no more
|
| - // TouchMove's should be suppressed.
|
| + // When a TouchMove exceeds the (Euclidean) distance, the TouchMove's should
|
| + // not be suppressed and its movedBeyondSlopRegion is set to true.
|
| const float kFortyFiveDegreeSlopLengthXY =
|
| kSlopLengthDips * std::sqrt(2.f) / 2;
|
| MoveTouchPoint(0, kFortyFiveDegreeSlopLengthXY + .2f,
|
| @@ -1441,6 +1447,7 @@ TEST_F(TouchEventQueueTest, TouchMoveSuppressionIncludingSlopBoundary) {
|
| EXPECT_EQ(0U, GetAndResetAckedEventCount());
|
| SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
|
| EXPECT_EQ(1U, GetAndResetAckedEventCount());
|
| + EXPECT_TRUE(acked_event().movedBeyondSlopRegion);
|
|
|
| // Even TouchMove's within the original slop region should now be forwarded.
|
| MoveTouchPoint(0, 0, 0);
|
| @@ -1461,14 +1468,19 @@ TEST_F(TouchEventQueueTest, TouchMoveSuppressionIncludingSlopBoundary) {
|
|
|
| // The slop region is boundary-inclusive.
|
| MoveTouchPoint(0, kSlopLengthDips - 1, 0);
|
| - EXPECT_EQ(0U, queued_event_count());
|
| - EXPECT_EQ(0U, GetAndResetSentEventCount());
|
| + EXPECT_EQ(1U, queued_event_count());
|
| + SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
|
| + EXPECT_EQ(1U, GetAndResetSentEventCount());
|
| EXPECT_EQ(1U, GetAndResetAckedEventCount());
|
| + EXPECT_FALSE(acked_event().movedBeyondSlopRegion);
|
| +
|
|
|
| MoveTouchPoint(0, kSlopLengthDips, 0);
|
| - EXPECT_EQ(0U, queued_event_count());
|
| - EXPECT_EQ(0U, GetAndResetSentEventCount());
|
| + EXPECT_EQ(1U, queued_event_count());
|
| + SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
|
| + EXPECT_EQ(1U, GetAndResetSentEventCount());
|
| EXPECT_EQ(1U, GetAndResetAckedEventCount());
|
| + EXPECT_FALSE(acked_event().movedBeyondSlopRegion);
|
| }
|
|
|
| // Tests that TouchMove's are not dropped within the slop suppression region if
|
| @@ -1517,11 +1529,14 @@ TEST_F(TouchEventQueueTest, NoTouchMoveSuppressionAfterMultiTouch) {
|
| ASSERT_EQ(1U, GetAndResetSentEventCount());
|
| ASSERT_EQ(1U, GetAndResetAckedEventCount());
|
|
|
| - // TouchMove's within the region should be suppressed.
|
| + // TouchMove's within the region will not be suppressed in the browser side,
|
| + // but its movedBeyondSlopRegion is set to true.
|
| MoveTouchPoint(0, 0, kHalfSlopLengthDips);
|
| - EXPECT_EQ(0U, queued_event_count());
|
| - EXPECT_EQ(0U, GetAndResetSentEventCount());
|
| + EXPECT_EQ(1U, queued_event_count());
|
| + SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
|
| + EXPECT_EQ(1U, GetAndResetSentEventCount());
|
| EXPECT_EQ(1U, GetAndResetAckedEventCount());
|
| + EXPECT_FALSE(acked_event().movedBeyondSlopRegion);
|
|
|
| // Simulate a secondary pointer press.
|
| PressTouchPoint(kSlopLengthDips, 0);
|
| @@ -1542,7 +1557,7 @@ TEST_F(TouchEventQueueTest, NoTouchMoveSuppressionAfterMultiTouch) {
|
| EXPECT_EQ(1U, GetAndResetSentEventCount());
|
| EXPECT_EQ(1U, GetAndResetAckedEventCount());
|
|
|
| - // TouchMove's should not should be suppressed, even with the original
|
| + // TouchMove's should not be suppressed, even with the original
|
| // unmoved pointer.
|
| MoveTouchPoint(0, 0, 0);
|
| EXPECT_EQ(1U, queued_event_count());
|
|
|