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

Side by Side Diff: content/renderer/input/main_thread_event_queue_unittest.cc

Issue 2612823002: Remove the requirement to only rAF align non-blocking touch moves. (Closed)
Patch Set: Fix tests 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 unified diff | Download patch
« no previous file with comments | « content/renderer/input/main_thread_event_queue.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 <stddef.h> 5 #include <stddef.h>
6 6
7 #include <new> 7 #include <new>
8 #include <utility> 8 #include <utility>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after
259 EXPECT_EQ(0u, event_queue().size()); 259 EXPECT_EQ(0u, event_queue().size());
260 EXPECT_EQ(2u, additional_acked_events_.size()); 260 EXPECT_EQ(2u, additional_acked_events_.size());
261 EXPECT_EQ(kEvents[2].uniqueTouchEventId, additional_acked_events_.at(0)); 261 EXPECT_EQ(kEvents[2].uniqueTouchEventId, additional_acked_events_.at(0));
262 EXPECT_EQ(kEvents[3].uniqueTouchEventId, additional_acked_events_.at(1)); 262 EXPECT_EQ(kEvents[3].uniqueTouchEventId, additional_acked_events_.at(1));
263 263
264 HandleEvent(kEvents[1], INPUT_EVENT_ACK_STATE_SET_NON_BLOCKING); 264 HandleEvent(kEvents[1], INPUT_EVENT_ACK_STATE_SET_NON_BLOCKING);
265 HandleEvent(kEvents[2], INPUT_EVENT_ACK_STATE_SET_NON_BLOCKING); 265 HandleEvent(kEvents[2], INPUT_EVENT_ACK_STATE_SET_NON_BLOCKING);
266 HandleEvent(kEvents[3], INPUT_EVENT_ACK_STATE_SET_NON_BLOCKING); 266 HandleEvent(kEvents[3], INPUT_EVENT_ACK_STATE_SET_NON_BLOCKING);
267 EXPECT_EQ(1u, event_queue().size()); 267 EXPECT_EQ(1u, event_queue().size());
268 RunPendingTasksWithSimulatedRaf(); 268 RunPendingTasksWithSimulatedRaf();
269 histogram_tester.ExpectUniqueSample(kCoalescedCountHistogram, 2, 1); 269 histogram_tester.ExpectUniqueSample(kCoalescedCountHistogram, 2, 2);
270 } 270 }
271 271
272 TEST_P(MainThreadEventQueueTest, InterleavedEvents) { 272 TEST_P(MainThreadEventQueueTest, InterleavedEvents) {
273 WebMouseWheelEvent kWheelEvents[2] = { 273 WebMouseWheelEvent kWheelEvents[2] = {
274 SyntheticWebMouseWheelEventBuilder::Build(10, 10, 0, 53, 0, false), 274 SyntheticWebMouseWheelEventBuilder::Build(10, 10, 0, 53, 0, false),
275 SyntheticWebMouseWheelEventBuilder::Build(20, 20, 0, 53, 0, false), 275 SyntheticWebMouseWheelEventBuilder::Build(20, 20, 0, 53, 0, false),
276 }; 276 };
277 SyntheticWebTouchEvent kTouchEvents[2]; 277 SyntheticWebTouchEvent kTouchEvents[2];
278 kTouchEvents[0].PressPoint(10, 10); 278 kTouchEvents[0].PressPoint(10, 10);
279 kTouchEvents[0].MovePoint(0, 20, 20); 279 kTouchEvents[0].MovePoint(0, 20, 20);
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
420 420
421 // Simulate the touch move being discrete 421 // Simulate the touch move being discrete
422 kEvents[0].touchStartOrFirstTouchMove = true; 422 kEvents[0].touchStartOrFirstTouchMove = true;
423 kEvents[1].touchStartOrFirstTouchMove = true; 423 kEvents[1].touchStartOrFirstTouchMove = true;
424 424
425 for (SyntheticWebTouchEvent& event : kEvents) 425 for (SyntheticWebTouchEvent& event : kEvents)
426 HandleEvent(event, INPUT_EVENT_ACK_STATE_NOT_CONSUMED); 426 HandleEvent(event, INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
427 427
428 EXPECT_EQ(3u, event_queue().size()); 428 EXPECT_EQ(3u, event_queue().size());
429 EXPECT_TRUE(main_task_runner_->HasPendingTask()); 429 EXPECT_TRUE(main_task_runner_->HasPendingTask());
430 EXPECT_FALSE(needs_main_frame_); 430 EXPECT_TRUE(needs_main_frame_);
431 main_task_runner_->RunUntilIdle(); 431 main_task_runner_->RunUntilIdle();
432 } 432 }
433 433
434 TEST_P(MainThreadEventQueueTest, RafAlignedTouchInputCoalescedMoves) { 434 TEST_P(MainThreadEventQueueTest, RafAlignedTouchInputCoalescedMoves) {
435 // Don't run the test when we aren't supporting rAF aligned input. 435 // Don't run the test when we aren't supporting rAF aligned input.
436 if ((raf_aligned_input_setting_ & kRafAlignedEnabledTouch) == 0) 436 if ((raf_aligned_input_setting_ & kRafAlignedEnabledTouch) == 0)
437 return; 437 return;
438 438
439 SyntheticWebTouchEvent kEvents[2]; 439 SyntheticWebTouchEvent kEvents[2];
440 kEvents[0].PressPoint(10, 10); 440 kEvents[0].PressPoint(10, 10);
441 kEvents[0].MovePoint(0, 50, 50); 441 kEvents[0].MovePoint(0, 50, 50);
442 kEvents[1].PressPoint(10, 10); 442 kEvents[1].PressPoint(10, 10);
443 kEvents[1].MovePoint(0, 20, 20); 443 kEvents[1].MovePoint(0, 20, 20);
444 kEvents[0].dispatchType = WebInputEvent::EventNonBlocking; 444 kEvents[0].dispatchType = WebInputEvent::EventNonBlocking;
445 445
446 EXPECT_FALSE(main_task_runner_->HasPendingTask()); 446 EXPECT_FALSE(main_task_runner_->HasPendingTask());
447 EXPECT_EQ(0u, event_queue().size()); 447 EXPECT_EQ(0u, event_queue().size());
448 448
449 // Send a continuous input event (ack required) and then 449 // Send a continuous input event (ack required) and then
450 // a discrete event. The events should coalesce together 450 // a discrete event. The events should coalesce together
451 // and a post task should be on the queue at the end. 451 // and a post task should be on the queue at the end.
452 HandleEvent(kEvents[0], INPUT_EVENT_ACK_STATE_NOT_CONSUMED); 452 HandleEvent(kEvents[0], INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
453 EXPECT_EQ(1u, event_queue().size()); 453 EXPECT_EQ(1u, event_queue().size());
454 EXPECT_FALSE(main_task_runner_->HasPendingTask()); 454 EXPECT_FALSE(main_task_runner_->HasPendingTask());
455 EXPECT_TRUE(needs_main_frame_); 455 EXPECT_TRUE(needs_main_frame_);
456 HandleEvent(kEvents[1], INPUT_EVENT_ACK_STATE_NOT_CONSUMED); 456 HandleEvent(kEvents[1], INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
457 EXPECT_EQ(1u, event_queue().size()); 457 EXPECT_EQ(1u, event_queue().size());
458 EXPECT_TRUE(main_task_runner_->HasPendingTask()); 458 EXPECT_FALSE(main_task_runner_->HasPendingTask());
459 EXPECT_TRUE(needs_main_frame_); 459 EXPECT_TRUE(needs_main_frame_);
460 RunPendingTasksWithSimulatedRaf(); 460 RunPendingTasksWithSimulatedRaf();
461 EXPECT_EQ(0u, event_queue().size()); 461 EXPECT_EQ(0u, event_queue().size());
462 EXPECT_EQ(1u, additional_acked_events_.size()); 462 EXPECT_EQ(1u, additional_acked_events_.size());
463 additional_acked_events_.clear(); 463 additional_acked_events_.clear();
464 464
465 // Send a non-cancelable ack required event, and then a non-ack 465 // Send a non-cancelable ack required event, and then a non-ack
466 // required event they should be coalesced together. 466 // required event they should be coalesced together.
467 EXPECT_TRUE(HandleEvent(kEvents[0], INPUT_EVENT_ACK_STATE_NOT_CONSUMED)); 467 EXPECT_TRUE(HandleEvent(kEvents[0], INPUT_EVENT_ACK_STATE_NOT_CONSUMED));
468 EXPECT_EQ(1u, event_queue().size()); 468 EXPECT_EQ(1u, event_queue().size());
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
620 620
621 // The boolean parameterized test varies whether rAF aligned input 621 // The boolean parameterized test varies whether rAF aligned input
622 // is enabled or not. 622 // is enabled or not.
623 INSTANTIATE_TEST_CASE_P( 623 INSTANTIATE_TEST_CASE_P(
624 MainThreadEventQueueTests, 624 MainThreadEventQueueTests,
625 MainThreadEventQueueTest, 625 MainThreadEventQueueTest,
626 testing::Range(0u, 626 testing::Range(0u,
627 (kRafAlignedEnabledTouch | kRafAlignedEnabledMouse) + 1)); 627 (kRafAlignedEnabledTouch | kRafAlignedEnabledMouse) + 1));
628 628
629 } // namespace content 629 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/input/main_thread_event_queue.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698