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

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: Fix the tests 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 1232 matching lines...) Expand 10 before | Expand all | Expand 10 after
1243 SetUpForTouchMoveSlopTesting(kSlopLengthDips); 1243 SetUpForTouchMoveSlopTesting(kSlopLengthDips);
1244 1244
1245 // Queue a TouchStart. 1245 // Queue a TouchStart.
1246 PressTouchPoint(0, 0); 1246 PressTouchPoint(0, 0);
1247 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); 1247 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
1248 ASSERT_EQ(1U, GetAndResetSentEventCount()); 1248 ASSERT_EQ(1U, GetAndResetSentEventCount());
1249 ASSERT_EQ(1U, GetAndResetAckedEventCount()); 1249 ASSERT_EQ(1U, GetAndResetAckedEventCount());
1250 1250
1251 // TouchMove's movedBeyondSlopRegion within the slop region is set to false. 1251 // TouchMove's movedBeyondSlopRegion within the slop region is set to false.
1252 MoveTouchPoint(0, 0, kHalfSlopLengthDips); 1252 MoveTouchPoint(0, 0, kHalfSlopLengthDips);
1253 EXPECT_EQ(1U, queued_event_count()); 1253 EXPECT_EQ(0U, queued_event_count());
1254 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); 1254 EXPECT_EQ(0U, GetAndResetSentEventCount());
1255 EXPECT_EQ(1U, GetAndResetSentEventCount());
1256 EXPECT_EQ(1U, GetAndResetAckedEventCount()); 1255 EXPECT_EQ(1U, GetAndResetAckedEventCount());
1257 EXPECT_FALSE(acked_event().moved_beyond_slop_region); 1256 EXPECT_FALSE(acked_event().moved_beyond_slop_region);
1258 1257
1259 MoveTouchPoint(0, kHalfSlopLengthDips, 0); 1258 MoveTouchPoint(0, kHalfSlopLengthDips, 0);
1260 EXPECT_EQ(1U, queued_event_count()); 1259 EXPECT_EQ(0U, queued_event_count());
1261 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); 1260 EXPECT_EQ(0U, GetAndResetSentEventCount());
1262 EXPECT_EQ(1U, GetAndResetSentEventCount());
1263 EXPECT_EQ(1U, GetAndResetAckedEventCount()); 1261 EXPECT_EQ(1U, GetAndResetAckedEventCount());
1264 EXPECT_FALSE(acked_event().moved_beyond_slop_region); 1262 EXPECT_FALSE(acked_event().moved_beyond_slop_region);
1265 1263
1266 MoveTouchPoint(0, -kHalfSlopLengthDips, 0); 1264 MoveTouchPoint(0, -kHalfSlopLengthDips, 0);
1267 EXPECT_EQ(1U, queued_event_count()); 1265 EXPECT_EQ(0U, queued_event_count());
1268 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); 1266 EXPECT_EQ(0U, GetAndResetSentEventCount());
1269 EXPECT_EQ(1U, GetAndResetSentEventCount());
1270 EXPECT_EQ(1U, GetAndResetAckedEventCount()); 1267 EXPECT_EQ(1U, GetAndResetAckedEventCount());
1271 EXPECT_FALSE(acked_event().moved_beyond_slop_region); 1268 EXPECT_FALSE(acked_event().moved_beyond_slop_region);
1272 1269
1273 MoveTouchPoint(0, -kSlopLengthDips, 0); 1270 MoveTouchPoint(0, -kSlopLengthDips, 0);
1274 EXPECT_EQ(1U, queued_event_count()); 1271 EXPECT_EQ(0U, queued_event_count());
1275 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); 1272 EXPECT_EQ(0U, GetAndResetSentEventCount());
1276 EXPECT_EQ(1U, GetAndResetSentEventCount());
1277 EXPECT_EQ(1U, GetAndResetAckedEventCount()); 1273 EXPECT_EQ(1U, GetAndResetAckedEventCount());
1278 EXPECT_FALSE(acked_event().moved_beyond_slop_region); 1274 EXPECT_FALSE(acked_event().moved_beyond_slop_region);
1279 1275
1280 MoveTouchPoint(0, 0, kSlopLengthDips); 1276 MoveTouchPoint(0, 0, kSlopLengthDips);
1281 EXPECT_EQ(1U, queued_event_count()); 1277 EXPECT_EQ(0U, queued_event_count());
1282 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); 1278 EXPECT_EQ(0U, GetAndResetSentEventCount());
1283 EXPECT_EQ(1U, GetAndResetSentEventCount());
1284 EXPECT_EQ(1U, GetAndResetAckedEventCount()); 1279 EXPECT_EQ(1U, GetAndResetAckedEventCount());
1285 EXPECT_FALSE(acked_event().moved_beyond_slop_region); 1280 EXPECT_FALSE(acked_event().moved_beyond_slop_region);
1286 1281
1287 // When a TouchMove exceeds the (Euclidean) distance, the TouchMove's 1282 // When a TouchMove exceeds the (Euclidean) distance, the TouchMove's
1288 // movedBeyondSlopRegion is set to true. 1283 // movedBeyondSlopRegion is set to true.
1289 const float kFortyFiveDegreeSlopLengthXY = 1284 const float kFortyFiveDegreeSlopLengthXY =
1290 kSlopLengthDips * std::sqrt(2.f) / 2; 1285 kSlopLengthDips * std::sqrt(2.f) / 2;
1291 MoveTouchPoint(0, kFortyFiveDegreeSlopLengthXY + .2f, 1286 MoveTouchPoint(0, kFortyFiveDegreeSlopLengthXY + .2f,
1292 kFortyFiveDegreeSlopLengthXY + .2f); 1287 kFortyFiveDegreeSlopLengthXY + .2f);
1293 EXPECT_EQ(1U, queued_event_count()); 1288 EXPECT_EQ(1U, queued_event_count());
1294 EXPECT_EQ(1U, GetAndResetSentEventCount()); 1289 EXPECT_EQ(1U, GetAndResetSentEventCount());
1295 EXPECT_EQ(0U, GetAndResetAckedEventCount()); 1290 EXPECT_EQ(0U, GetAndResetAckedEventCount());
1296 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); 1291 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
1297 EXPECT_EQ(1U, GetAndResetAckedEventCount()); 1292 EXPECT_EQ(1U, GetAndResetAckedEventCount());
1298 EXPECT_TRUE(acked_event().moved_beyond_slop_region);
1299 } 1293 }
1300 1294
1301 // Tests that even very small TouchMove's movedBeyondSlopRegion is set to true 1295 // Tests that even very small TouchMove's movedBeyondSlopRegion is set to true
1302 // when the slop region's dimension is 0. 1296 // when the slop region's dimension is 0.
1303 TEST_F(PassthroughTouchEventQueueTest, 1297 TEST_F(PassthroughTouchEventQueueTest,
1304 MovedBeyondSlopRegionAlwaysTrueIfDimensionZero) { 1298 MovedBeyondSlopRegionAlwaysTrueIfDimensionZero) {
1305 // Queue a TouchStart. 1299 // Queue a TouchStart.
1306 PressTouchPoint(0, 0); 1300 PressTouchPoint(0, 0);
1307 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); 1301 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
1308 ASSERT_EQ(1U, GetAndResetSentEventCount()); 1302 ASSERT_EQ(1U, GetAndResetSentEventCount());
(...skipping 416 matching lines...) Expand 10 before | Expand all | Expand 10 after
1725 EXPECT_EQ(WebInputEvent::kTouchMove, sent_event().GetType()); 1719 EXPECT_EQ(WebInputEvent::kTouchMove, sent_event().GetType());
1726 EXPECT_FALSE(sent_event().touch_start_or_first_touch_move); 1720 EXPECT_FALSE(sent_event().touch_start_or_first_touch_move);
1727 1721
1728 ReleaseTouchPoint(0); 1722 ReleaseTouchPoint(0);
1729 SendTouchEventAck(INPUT_EVENT_ACK_STATE_CONSUMED); 1723 SendTouchEventAck(INPUT_EVENT_ACK_STATE_CONSUMED);
1730 EXPECT_EQ(WebInputEvent::kTouchEnd, sent_event().GetType()); 1724 EXPECT_EQ(WebInputEvent::kTouchEnd, sent_event().GetType());
1731 EXPECT_FALSE(sent_event().touch_start_or_first_touch_move); 1725 EXPECT_FALSE(sent_event().touch_start_or_first_touch_move);
1732 } 1726 }
1733 1727
1734 } // namespace content 1728 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698