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

Side by Side Diff: content/browser/renderer_host/input/passthrough_touch_event_queue_unittest.cc

Issue 2816613003: Add suppresion of slop region touches in browser (Closed)
Patch Set: Rebase Created 3 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 unified diff | Download patch
OLDNEW
1 // Copyright 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/renderer_host/input/passthrough_touch_event_queue.h" 5 #include "content/browser/renderer_host/input/passthrough_touch_event_queue.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <memory> 9 #include <memory>
10 #include <utility> 10 #include <utility>
(...skipping 1272 matching lines...) Expand 10 before | Expand all | Expand 10 after
1283 SetUpForTouchMoveSlopTesting(kSlopLengthDips); 1283 SetUpForTouchMoveSlopTesting(kSlopLengthDips);
1284 1284
1285 // Queue a TouchStart. 1285 // Queue a TouchStart.
1286 PressTouchPoint(0, 0); 1286 PressTouchPoint(0, 0);
1287 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); 1287 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
1288 ASSERT_EQ(1U, GetAndResetSentEventCount()); 1288 ASSERT_EQ(1U, GetAndResetSentEventCount());
1289 ASSERT_EQ(1U, GetAndResetAckedEventCount()); 1289 ASSERT_EQ(1U, GetAndResetAckedEventCount());
1290 1290
1291 // TouchMove's movedBeyondSlopRegion within the slop region is set to false. 1291 // TouchMove's movedBeyondSlopRegion within the slop region is set to false.
1292 MoveTouchPoint(0, 0, kHalfSlopLengthDips); 1292 MoveTouchPoint(0, 0, kHalfSlopLengthDips);
1293 EXPECT_EQ(1U, queued_event_count()); 1293 EXPECT_EQ(0U, queued_event_count());
1294 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); 1294 EXPECT_EQ(0U, GetAndResetSentEventCount());
1295 EXPECT_EQ(1U, GetAndResetSentEventCount());
1296 EXPECT_EQ(1U, GetAndResetAckedEventCount()); 1295 EXPECT_EQ(1U, GetAndResetAckedEventCount());
1297 EXPECT_FALSE(acked_event().moved_beyond_slop_region); 1296 EXPECT_FALSE(acked_event().moved_beyond_slop_region);
1298 1297
1299 MoveTouchPoint(0, kHalfSlopLengthDips, 0); 1298 MoveTouchPoint(0, kHalfSlopLengthDips, 0);
1300 EXPECT_EQ(1U, queued_event_count()); 1299 EXPECT_EQ(0U, queued_event_count());
1301 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); 1300 EXPECT_EQ(0U, GetAndResetSentEventCount());
1302 EXPECT_EQ(1U, GetAndResetSentEventCount());
1303 EXPECT_EQ(1U, GetAndResetAckedEventCount()); 1301 EXPECT_EQ(1U, GetAndResetAckedEventCount());
1304 EXPECT_FALSE(acked_event().moved_beyond_slop_region); 1302 EXPECT_FALSE(acked_event().moved_beyond_slop_region);
1305 1303
1306 MoveTouchPoint(0, -kHalfSlopLengthDips, 0); 1304 MoveTouchPoint(0, -kHalfSlopLengthDips, 0);
1307 EXPECT_EQ(1U, queued_event_count()); 1305 EXPECT_EQ(0U, queued_event_count());
1308 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); 1306 EXPECT_EQ(0U, GetAndResetSentEventCount());
1309 EXPECT_EQ(1U, GetAndResetSentEventCount());
1310 EXPECT_EQ(1U, GetAndResetAckedEventCount()); 1307 EXPECT_EQ(1U, GetAndResetAckedEventCount());
1311 EXPECT_FALSE(acked_event().moved_beyond_slop_region); 1308 EXPECT_FALSE(acked_event().moved_beyond_slop_region);
1312 1309
1313 MoveTouchPoint(0, -kSlopLengthDips, 0); 1310 MoveTouchPoint(0, -kSlopLengthDips, 0);
1314 EXPECT_EQ(1U, queued_event_count()); 1311 EXPECT_EQ(0U, queued_event_count());
1315 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); 1312 EXPECT_EQ(0U, GetAndResetSentEventCount());
1316 EXPECT_EQ(1U, GetAndResetSentEventCount());
1317 EXPECT_EQ(1U, GetAndResetAckedEventCount()); 1313 EXPECT_EQ(1U, GetAndResetAckedEventCount());
1318 EXPECT_FALSE(acked_event().moved_beyond_slop_region); 1314 EXPECT_FALSE(acked_event().moved_beyond_slop_region);
1319 1315
1320 MoveTouchPoint(0, 0, kSlopLengthDips); 1316 MoveTouchPoint(0, 0, kSlopLengthDips);
1321 EXPECT_EQ(1U, queued_event_count()); 1317 EXPECT_EQ(0U, queued_event_count());
1322 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); 1318 EXPECT_EQ(0U, GetAndResetSentEventCount());
1323 EXPECT_EQ(1U, GetAndResetSentEventCount());
1324 EXPECT_EQ(1U, GetAndResetAckedEventCount()); 1319 EXPECT_EQ(1U, GetAndResetAckedEventCount());
1325 EXPECT_FALSE(acked_event().moved_beyond_slop_region); 1320 EXPECT_FALSE(acked_event().moved_beyond_slop_region);
1326 1321
1327 // When a TouchMove exceeds the (Euclidean) distance, the TouchMove's 1322 // When a TouchMove exceeds the (Euclidean) distance, the TouchMove's
1328 // movedBeyondSlopRegion is set to true. 1323 // movedBeyondSlopRegion is set to true.
1329 const float kFortyFiveDegreeSlopLengthXY = 1324 const float kFortyFiveDegreeSlopLengthXY =
1330 kSlopLengthDips * std::sqrt(2.f) / 2; 1325 kSlopLengthDips * std::sqrt(2.f) / 2;
1331 MoveTouchPoint(0, kFortyFiveDegreeSlopLengthXY + .2f, 1326 MoveTouchPoint(0, kFortyFiveDegreeSlopLengthXY + .2f,
1332 kFortyFiveDegreeSlopLengthXY + .2f); 1327 kFortyFiveDegreeSlopLengthXY + .2f);
1333 EXPECT_EQ(1U, queued_event_count()); 1328 EXPECT_EQ(1U, queued_event_count());
1334 EXPECT_EQ(1U, GetAndResetSentEventCount()); 1329 EXPECT_EQ(1U, GetAndResetSentEventCount());
1335 EXPECT_EQ(0U, GetAndResetAckedEventCount()); 1330 EXPECT_EQ(0U, GetAndResetAckedEventCount());
1336 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); 1331 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
1337 EXPECT_EQ(1U, GetAndResetAckedEventCount()); 1332 EXPECT_EQ(1U, GetAndResetAckedEventCount());
1338 EXPECT_TRUE(acked_event().moved_beyond_slop_region);
1339 } 1333 }
1340 1334
1341 // Tests that even very small TouchMove's movedBeyondSlopRegion is set to true 1335 // Tests that even very small TouchMove's movedBeyondSlopRegion is set to true
1342 // when the slop region's dimension is 0. 1336 // when the slop region's dimension is 0.
1343 TEST_F(PassthroughTouchEventQueueTest, 1337 TEST_F(PassthroughTouchEventQueueTest,
1344 MovedBeyondSlopRegionAlwaysTrueIfDimensionZero) { 1338 MovedBeyondSlopRegionAlwaysTrueIfDimensionZero) {
1345 // Queue a TouchStart. 1339 // Queue a TouchStart.
1346 PressTouchPoint(0, 0); 1340 PressTouchPoint(0, 0);
1347 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); 1341 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
1348 ASSERT_EQ(1U, GetAndResetSentEventCount()); 1342 ASSERT_EQ(1U, GetAndResetSentEventCount());
(...skipping 416 matching lines...) Expand 10 before | Expand all | Expand 10 after
1765 EXPECT_EQ(WebInputEvent::kTouchMove, sent_event().GetType()); 1759 EXPECT_EQ(WebInputEvent::kTouchMove, sent_event().GetType());
1766 EXPECT_FALSE(sent_event().touch_start_or_first_touch_move); 1760 EXPECT_FALSE(sent_event().touch_start_or_first_touch_move);
1767 1761
1768 ReleaseTouchPoint(0); 1762 ReleaseTouchPoint(0);
1769 SendTouchEventAck(INPUT_EVENT_ACK_STATE_CONSUMED); 1763 SendTouchEventAck(INPUT_EVENT_ACK_STATE_CONSUMED);
1770 EXPECT_EQ(WebInputEvent::kTouchEnd, sent_event().GetType()); 1764 EXPECT_EQ(WebInputEvent::kTouchEnd, sent_event().GetType());
1771 EXPECT_FALSE(sent_event().touch_start_or_first_touch_move); 1765 EXPECT_FALSE(sent_event().touch_start_or_first_touch_move);
1772 } 1766 }
1773 1767
1774 } // namespace content 1768 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698