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

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

Issue 2669663002: Move touch slop suppression to TouchEventManager (Closed)
Patch Set: slop region Created 3 years, 11 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 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.
tdresser 2017/02/02 21:30:54 Don't refer to suppression here anymore. It implie
lanwei 2017/02/03 21:39:33 Done.
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
tdresser 2017/02/02 21:30:54 Don't talk about suppression anymore.
lanwei 2017/02/03 21:39:33 Done.
// unmoved pointer.
MoveTouchPoint(0, 0, 0);
EXPECT_EQ(1U, queued_event_count());

Powered by Google App Engine
This is Rietveld 408576698