| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |