Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 "content/browser/renderer_host/input/mouse_wheel_event_queue.h" | 5 #include "content/browser/renderer_host/input/mouse_wheel_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 279 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 290 EXPECT_TRUE(event_in_flight()); | 290 EXPECT_TRUE(event_in_flight()); |
| 291 EXPECT_EQ(0U, GetAndResetSentEventCount()); | 291 EXPECT_EQ(0U, GetAndResetSentEventCount()); |
| 292 | 292 |
| 293 // Receive an ACK for the mouse wheel event and release the next | 293 // Receive an ACK for the mouse wheel event and release the next |
| 294 // mouse wheel event. | 294 // mouse wheel event. |
| 295 SendMouseWheelEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 295 SendMouseWheelEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
| 296 EXPECT_EQ(0U, queued_event_count()); | 296 EXPECT_EQ(0U, queued_event_count()); |
| 297 EXPECT_TRUE(event_in_flight()); | 297 EXPECT_TRUE(event_in_flight()); |
| 298 EXPECT_EQ(WebInputEvent::MouseWheel, acked_event().type()); | 298 EXPECT_EQ(WebInputEvent::MouseWheel, acked_event().type()); |
| 299 EXPECT_EQ(1U, GetAndResetAckedEventCount()); | 299 EXPECT_EQ(1U, GetAndResetAckedEventCount()); |
| 300 EXPECT_EQ(3U, all_sent_events().size()); | 300 if (scroll_latching_enabled_) { |
| 301 EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0)); | 301 EXPECT_EQ(3U, all_sent_events().size()); |
| 302 EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1)); | 302 EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0)); |
| 303 EXPECT_MOUSE_WHEEL(sent_input_event(2)); | 303 EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1)); |
| 304 EXPECT_EQ(3U, GetAndResetSentEventCount()); | 304 EXPECT_MOUSE_WHEEL(sent_input_event(2)); |
| 305 EXPECT_EQ(3U, GetAndResetSentEventCount()); | |
| 305 | 306 |
| 306 RunTasksAndWait(DefaultScrollEndTimeoutDelay() * 2); | 307 RunTasksAndWait(DefaultScrollEndTimeoutDelay() * 2); |
| 307 EXPECT_EQ(1U, all_sent_events().size()); | 308 EXPECT_EQ(1U, all_sent_events().size()); |
| 308 EXPECT_GESTURE_SCROLL_END(sent_gesture_event(0)); | 309 EXPECT_GESTURE_SCROLL_END(sent_gesture_event(0)); |
| 310 } else { | |
| 311 EXPECT_EQ(4U, all_sent_events().size()); | |
| 312 EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0)); | |
| 313 EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1)); | |
| 314 EXPECT_GESTURE_SCROLL_END(sent_gesture_event(2)); | |
| 315 EXPECT_MOUSE_WHEEL(sent_input_event(3)); | |
| 316 EXPECT_EQ(4U, GetAndResetSentEventCount()); | |
| 317 } | |
| 309 } | 318 } |
| 310 | 319 |
| 311 void PhaseGestureSendingTest(bool high_precision) { | 320 void PhaseGestureSendingTest(bool high_precision) { |
| 312 const WebGestureEvent::ScrollUnits scroll_units = | 321 const WebGestureEvent::ScrollUnits scroll_units = |
| 313 high_precision ? WebGestureEvent::PrecisePixels | 322 high_precision ? WebGestureEvent::PrecisePixels |
| 314 : WebGestureEvent::Pixels; | 323 : WebGestureEvent::Pixels; |
| 315 | 324 |
| 316 SendMouseWheelWithPhase(kWheelScrollX, kWheelScrollY, kWheelScrollGlobalX, | 325 SendMouseWheelWithPhase(kWheelScrollX, kWheelScrollY, kWheelScrollGlobalX, |
| 317 kWheelScrollGlobalY, 1, 1, 0, high_precision, | 326 kWheelScrollGlobalY, 1, 1, 0, high_precision, |
| 318 WebMouseWheelEvent::PhaseBegan, | 327 WebMouseWheelEvent::PhaseBegan, |
| (...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 502 EXPECT_EQ(0U, queued_event_count()); | 511 EXPECT_EQ(0U, queued_event_count()); |
| 503 EXPECT_TRUE(event_in_flight()); | 512 EXPECT_TRUE(event_in_flight()); |
| 504 EXPECT_EQ(1U, GetAndResetSentEventCount()); | 513 EXPECT_EQ(1U, GetAndResetSentEventCount()); |
| 505 | 514 |
| 506 // Receive an ACK for the mouse wheel event. | 515 // Receive an ACK for the mouse wheel event. |
| 507 SendMouseWheelEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 516 SendMouseWheelEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
| 508 EXPECT_EQ(0U, queued_event_count()); | 517 EXPECT_EQ(0U, queued_event_count()); |
| 509 EXPECT_FALSE(event_in_flight()); | 518 EXPECT_FALSE(event_in_flight()); |
| 510 EXPECT_EQ(WebInputEvent::MouseWheel, acked_event().type()); | 519 EXPECT_EQ(WebInputEvent::MouseWheel, acked_event().type()); |
| 511 EXPECT_EQ(1U, GetAndResetAckedEventCount()); | 520 EXPECT_EQ(1U, GetAndResetAckedEventCount()); |
| 512 EXPECT_EQ(2U, all_sent_events().size()); | 521 if (scroll_latching_enabled_) { |
| 513 EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0)); | 522 EXPECT_EQ(2U, all_sent_events().size()); |
| 514 EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1)); | 523 EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0)); |
| 515 EXPECT_EQ(2U, GetAndResetSentEventCount()); | 524 EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1)); |
| 525 EXPECT_EQ(2U, GetAndResetSentEventCount()); | |
| 526 } else { | |
| 527 EXPECT_EQ(3U, all_sent_events().size()); | |
| 528 EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0)); | |
| 529 EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1)); | |
| 530 EXPECT_GESTURE_SCROLL_END(sent_gesture_event(2)); | |
| 531 EXPECT_EQ(3U, GetAndResetSentEventCount()); | |
| 532 } | |
| 516 | 533 |
| 517 // Ensure that a gesture scroll begin terminates the current scroll event. | 534 // Ensure that a gesture scroll begin terminates the current scroll event. |
| 518 SendGestureEvent(WebInputEvent::GestureScrollBegin); | 535 SendGestureEvent(WebInputEvent::GestureScrollBegin); |
| 519 EXPECT_EQ(1U, all_sent_events().size()); | 536 if (scroll_latching_enabled_) { |
| 520 EXPECT_GESTURE_SCROLL_END(sent_gesture_event(0)); | 537 EXPECT_EQ(1U, all_sent_events().size()); |
| 521 EXPECT_EQ(1U, GetAndResetSentEventCount()); | 538 EXPECT_GESTURE_SCROLL_END(sent_gesture_event(0)); |
| 539 EXPECT_EQ(1U, GetAndResetSentEventCount()); | |
| 540 } else { | |
| 541 // ScrollEnd has already been sent. | |
| 542 EXPECT_EQ(0U, all_sent_events().size()); | |
| 543 } | |
| 522 | 544 |
| 523 SendMouseWheel(kWheelScrollX, kWheelScrollY, kWheelScrollGlobalX, | 545 SendMouseWheel(kWheelScrollX, kWheelScrollY, kWheelScrollGlobalX, |
| 524 kWheelScrollGlobalY, 1, 1, 0, false); | 546 kWheelScrollGlobalY, 1, 1, 0, false); |
| 525 EXPECT_EQ(0U, queued_event_count()); | 547 EXPECT_EQ(0U, queued_event_count()); |
| 526 EXPECT_TRUE(event_in_flight()); | 548 EXPECT_TRUE(event_in_flight()); |
| 527 EXPECT_EQ(1U, GetAndResetSentEventCount()); | 549 EXPECT_EQ(1U, GetAndResetSentEventCount()); |
| 528 | 550 |
| 529 // New mouse wheel events won't cause gestures because a scroll | 551 // New mouse wheel events won't cause gestures because a scroll |
| 530 // is already in progress by another device. | 552 // is already in progress by another device. |
| 531 SendMouseWheelEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 553 SendMouseWheelEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
| (...skipping 11 matching lines...) Expand all Loading... | |
| 543 EXPECT_EQ(0U, queued_event_count()); | 565 EXPECT_EQ(0U, queued_event_count()); |
| 544 EXPECT_TRUE(event_in_flight()); | 566 EXPECT_TRUE(event_in_flight()); |
| 545 EXPECT_EQ(1U, GetAndResetSentEventCount()); | 567 EXPECT_EQ(1U, GetAndResetSentEventCount()); |
| 546 | 568 |
| 547 // Receive an ACK for the mouse wheel event. | 569 // Receive an ACK for the mouse wheel event. |
| 548 SendMouseWheelEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 570 SendMouseWheelEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
| 549 EXPECT_EQ(0U, queued_event_count()); | 571 EXPECT_EQ(0U, queued_event_count()); |
| 550 EXPECT_FALSE(event_in_flight()); | 572 EXPECT_FALSE(event_in_flight()); |
| 551 EXPECT_EQ(WebInputEvent::MouseWheel, acked_event().type()); | 573 EXPECT_EQ(WebInputEvent::MouseWheel, acked_event().type()); |
| 552 EXPECT_EQ(1U, GetAndResetAckedEventCount()); | 574 EXPECT_EQ(1U, GetAndResetAckedEventCount()); |
| 553 EXPECT_EQ(2U, all_sent_events().size()); | 575 if (scroll_latching_enabled_) { |
| 554 EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0)); | 576 EXPECT_EQ(2U, all_sent_events().size()); |
| 555 EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1)); | 577 EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0)); |
| 556 EXPECT_EQ(2U, GetAndResetSentEventCount()); | 578 EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1)); |
| 579 EXPECT_EQ(2U, GetAndResetSentEventCount()); | |
| 580 } else { | |
| 581 EXPECT_EQ(3U, all_sent_events().size()); | |
| 582 EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0)); | |
| 583 EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1)); | |
| 584 EXPECT_GESTURE_SCROLL_END(sent_gesture_event(2)); | |
| 585 EXPECT_EQ(3U, GetAndResetSentEventCount()); | |
| 586 } | |
| 557 } | 587 } |
| 558 | 588 |
| 559 TEST_P(MouseWheelEventQueueTest, GestureRailScrolling) { | 589 TEST_P(MouseWheelEventQueueTest, GestureRailScrolling) { |
| 560 const WebGestureEvent::ScrollUnits scroll_units = WebGestureEvent::Pixels; | 590 const WebGestureEvent::ScrollUnits scroll_units = WebGestureEvent::Pixels; |
| 561 | 591 |
| 562 SendMouseWheel(kWheelScrollX, kWheelScrollY, kWheelScrollGlobalX, | 592 SendMouseWheel(kWheelScrollX, kWheelScrollY, kWheelScrollGlobalX, |
| 563 kWheelScrollGlobalY, 1, 1, 0, false, | 593 kWheelScrollGlobalY, 1, 1, 0, false, |
| 564 WebInputEvent::RailsModeHorizontal); | 594 WebInputEvent::RailsModeHorizontal); |
| 565 EXPECT_EQ(0U, queued_event_count()); | 595 EXPECT_EQ(0U, queued_event_count()); |
| 566 EXPECT_TRUE(event_in_flight()); | 596 EXPECT_TRUE(event_in_flight()); |
| 567 EXPECT_EQ(1U, GetAndResetSentEventCount()); | 597 EXPECT_EQ(1U, GetAndResetSentEventCount()); |
| 568 | 598 |
| 569 // Receive an ACK for the mouse wheel event. | 599 // Receive an ACK for the mouse wheel event. |
| 570 SendMouseWheelEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 600 SendMouseWheelEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
| 571 EXPECT_EQ(0U, queued_event_count()); | 601 EXPECT_EQ(0U, queued_event_count()); |
| 572 EXPECT_FALSE(event_in_flight()); | 602 EXPECT_FALSE(event_in_flight()); |
| 573 EXPECT_EQ(WebInputEvent::MouseWheel, acked_event().type()); | 603 EXPECT_EQ(WebInputEvent::MouseWheel, acked_event().type()); |
| 574 EXPECT_EQ(1U, GetAndResetAckedEventCount()); | 604 EXPECT_EQ(1U, GetAndResetAckedEventCount()); |
| 575 EXPECT_EQ(2U, all_sent_events().size()); | 605 if (scroll_latching_enabled_) { |
| 576 EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0)); | 606 EXPECT_EQ(2U, all_sent_events().size()); |
| 577 EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1)); | 607 EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0)); |
| 578 EXPECT_EQ(1U, sent_gesture_event(1)->data.scrollUpdate.deltaX); | 608 EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1)); |
| 579 EXPECT_EQ(0U, sent_gesture_event(1)->data.scrollUpdate.deltaY); | 609 EXPECT_EQ(1U, sent_gesture_event(1)->data.scrollUpdate.deltaX); |
| 580 EXPECT_EQ(2U, GetAndResetSentEventCount()); | 610 EXPECT_EQ(0U, sent_gesture_event(1)->data.scrollUpdate.deltaY); |
| 581 | 611 EXPECT_EQ(2U, GetAndResetSentEventCount()); |
| 582 RunTasksAndWait(DefaultScrollEndTimeoutDelay() * 2); | 612 RunTasksAndWait(DefaultScrollEndTimeoutDelay() * 2); |
| 583 EXPECT_EQ(1U, all_sent_events().size()); | 613 EXPECT_EQ(1U, all_sent_events().size()); |
| 584 EXPECT_GESTURE_SCROLL_END(sent_gesture_event(0)); | 614 EXPECT_GESTURE_SCROLL_END(sent_gesture_event(0)); |
| 585 EXPECT_EQ(1U, GetAndResetSentEventCount()); | 615 EXPECT_EQ(1U, GetAndResetSentEventCount()); |
| 616 } else { | |
| 617 EXPECT_EQ(3U, all_sent_events().size()); | |
| 618 EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0)); | |
| 619 EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1)); | |
| 620 EXPECT_GESTURE_SCROLL_END(sent_gesture_event(2)); | |
| 621 EXPECT_EQ(1U, sent_gesture_event(1)->data.scrollUpdate.deltaX); | |
| 622 EXPECT_EQ(0U, sent_gesture_event(1)->data.scrollUpdate.deltaY); | |
| 623 EXPECT_EQ(3U, GetAndResetSentEventCount()); | |
| 624 } | |
| 586 | 625 |
| 587 SendMouseWheel(kWheelScrollX, kWheelScrollY, kWheelScrollGlobalX, | 626 SendMouseWheel(kWheelScrollX, kWheelScrollY, kWheelScrollGlobalX, |
| 588 kWheelScrollGlobalY, 1, 1, 0, false, | 627 kWheelScrollGlobalY, 1, 1, 0, false, |
| 589 WebInputEvent::RailsModeVertical); | 628 WebInputEvent::RailsModeVertical); |
| 590 EXPECT_EQ(0U, queued_event_count()); | 629 EXPECT_EQ(0U, queued_event_count()); |
| 591 EXPECT_TRUE(event_in_flight()); | 630 EXPECT_TRUE(event_in_flight()); |
| 592 EXPECT_EQ(1U, GetAndResetSentEventCount()); | 631 EXPECT_EQ(1U, GetAndResetSentEventCount()); |
| 593 | 632 |
| 594 // Receive an ACK for the mouse wheel event. | 633 // Receive an ACK for the mouse wheel event. |
| 595 SendMouseWheelEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 634 SendMouseWheelEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
| 596 EXPECT_EQ(0U, queued_event_count()); | 635 EXPECT_EQ(0U, queued_event_count()); |
| 597 EXPECT_FALSE(event_in_flight()); | 636 EXPECT_FALSE(event_in_flight()); |
| 598 EXPECT_EQ(WebInputEvent::MouseWheel, acked_event().type()); | 637 EXPECT_EQ(WebInputEvent::MouseWheel, acked_event().type()); |
| 599 EXPECT_EQ(1U, GetAndResetAckedEventCount()); | 638 EXPECT_EQ(1U, GetAndResetAckedEventCount()); |
| 600 EXPECT_EQ(2U, all_sent_events().size()); | 639 if (scroll_latching_enabled_) { |
| 601 EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0)); | 640 EXPECT_EQ(2U, all_sent_events().size()); |
| 602 EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1)); | 641 EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0)); |
| 642 EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1)); | |
| 643 } else { | |
| 644 EXPECT_EQ(3U, all_sent_events().size()); | |
| 645 EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0)); | |
| 646 EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1)); | |
| 647 EXPECT_GESTURE_SCROLL_END(sent_gesture_event(2)); | |
| 648 } | |
| 603 EXPECT_EQ(0U, sent_gesture_event(1)->data.scrollUpdate.deltaX); | 649 EXPECT_EQ(0U, sent_gesture_event(1)->data.scrollUpdate.deltaX); |
| 604 EXPECT_EQ(1U, sent_gesture_event(1)->data.scrollUpdate.deltaY); | 650 EXPECT_EQ(1U, sent_gesture_event(1)->data.scrollUpdate.deltaY); |
| 605 EXPECT_EQ(2U, GetAndResetSentEventCount()); | 651 if (scroll_latching_enabled_) |
| 652 EXPECT_EQ(2U, GetAndResetSentEventCount()); | |
| 653 else | |
| 654 EXPECT_EQ(3U, GetAndResetSentEventCount()); | |
| 606 } | 655 } |
| 607 | 656 |
| 608 TEST_P(MouseWheelEventQueueTest, WheelScrollLatching) { | 657 TEST_P(MouseWheelEventQueueTest, WheelScrollLatching) { |
| 609 const WebGestureEvent::ScrollUnits scroll_units = WebGestureEvent::Pixels; | 658 const WebGestureEvent::ScrollUnits scroll_units = WebGestureEvent::Pixels; |
| 610 SendMouseWheel(kWheelScrollX, kWheelScrollY, kWheelScrollGlobalX, | 659 SendMouseWheel(kWheelScrollX, kWheelScrollY, kWheelScrollGlobalX, |
| 611 kWheelScrollGlobalY, 1, 1, 0, false, | 660 kWheelScrollGlobalY, 1, 1, 0, false, |
| 612 WebInputEvent::RailsModeVertical); | 661 WebInputEvent::RailsModeVertical); |
| 613 EXPECT_EQ(0U, queued_event_count()); | 662 EXPECT_EQ(0U, queued_event_count()); |
| 614 EXPECT_TRUE(event_in_flight()); | 663 EXPECT_TRUE(event_in_flight()); |
| 615 EXPECT_EQ(1U, GetAndResetSentEventCount()); | 664 EXPECT_EQ(1U, GetAndResetSentEventCount()); |
| 616 | 665 |
| 617 // Receive an ACK for the mouse wheel event. | 666 // Receive an ACK for the mouse wheel event. |
| 618 SendMouseWheelEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 667 SendMouseWheelEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
| 619 EXPECT_EQ(0U, queued_event_count()); | 668 EXPECT_EQ(0U, queued_event_count()); |
| 620 EXPECT_FALSE(event_in_flight()); | 669 EXPECT_FALSE(event_in_flight()); |
|
dtapuska
2017/03/29 17:49:03
This test is a little odd cause it is called Wheel
sahel
2017/03/29 20:10:43
Done.
| |
| 621 EXPECT_EQ(WebInputEvent::MouseWheel, acked_event().type()); | 670 EXPECT_EQ(WebInputEvent::MouseWheel, acked_event().type()); |
| 622 EXPECT_EQ(1U, GetAndResetAckedEventCount()); | 671 EXPECT_EQ(1U, GetAndResetAckedEventCount()); |
| 623 EXPECT_EQ(2U, all_sent_events().size()); | 672 if (scroll_latching_enabled_) { |
| 624 EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0)); | 673 EXPECT_EQ(2U, all_sent_events().size()); |
| 625 EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1)); | 674 EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0)); |
| 626 EXPECT_EQ(0U, sent_gesture_event(1)->data.scrollUpdate.deltaX); | 675 EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1)); |
| 627 EXPECT_EQ(1U, sent_gesture_event(1)->data.scrollUpdate.deltaY); | 676 EXPECT_EQ(0U, sent_gesture_event(1)->data.scrollUpdate.deltaX); |
| 628 EXPECT_EQ(2U, GetAndResetSentEventCount()); | 677 EXPECT_EQ(1U, sent_gesture_event(1)->data.scrollUpdate.deltaY); |
| 629 | 678 EXPECT_EQ(2U, GetAndResetSentEventCount()); |
| 630 RunTasksAndWait(base::TimeDelta::FromMilliseconds(1)); | 679 RunTasksAndWait(DefaultScrollEndTimeoutDelay() / 2); |
| 631 if (!scroll_latching_enabled_) { | 680 EXPECT_EQ(0U, GetAndResetSentEventCount()); |
| 632 EXPECT_GESTURE_SCROLL_END(sent_gesture_event(0)); | |
| 633 EXPECT_EQ(1U, GetAndResetSentEventCount()); | |
| 634 } else { | 681 } else { |
| 635 EXPECT_EQ(0U, GetAndResetSentEventCount()); | 682 EXPECT_EQ(3U, all_sent_events().size()); |
| 683 EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0)); | |
| 684 EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1)); | |
| 685 EXPECT_GESTURE_SCROLL_END(sent_gesture_event(2)); | |
| 686 EXPECT_EQ(0U, sent_gesture_event(1)->data.scrollUpdate.deltaX); | |
| 687 EXPECT_EQ(1U, sent_gesture_event(1)->data.scrollUpdate.deltaY); | |
| 688 EXPECT_EQ(3U, GetAndResetSentEventCount()); | |
| 636 } | 689 } |
| 637 SendMouseWheel(kWheelScrollX, kWheelScrollY, kWheelScrollGlobalX, | 690 SendMouseWheel(kWheelScrollX, kWheelScrollY, kWheelScrollGlobalX, |
| 638 kWheelScrollGlobalY, 1, 1, 0, false, | 691 kWheelScrollGlobalY, 1, 1, 0, false, |
| 639 WebInputEvent::RailsModeVertical); | 692 WebInputEvent::RailsModeVertical); |
| 640 EXPECT_EQ(0U, queued_event_count()); | 693 EXPECT_EQ(0U, queued_event_count()); |
| 641 EXPECT_TRUE(event_in_flight()); | 694 EXPECT_TRUE(event_in_flight()); |
| 642 EXPECT_EQ(1U, GetAndResetSentEventCount()); | 695 EXPECT_EQ(1U, GetAndResetSentEventCount()); |
| 643 | 696 |
| 644 // Receive an ACK for the mouse wheel event. | 697 // Receive an ACK for the mouse wheel event. |
| 645 SendMouseWheelEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 698 SendMouseWheelEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
| 646 EXPECT_EQ(0U, queued_event_count()); | 699 EXPECT_EQ(0U, queued_event_count()); |
| 647 EXPECT_FALSE(event_in_flight()); | 700 EXPECT_FALSE(event_in_flight()); |
| 648 EXPECT_EQ(WebInputEvent::MouseWheel, acked_event().type()); | 701 EXPECT_EQ(WebInputEvent::MouseWheel, acked_event().type()); |
| 649 EXPECT_EQ(1U, GetAndResetAckedEventCount()); | 702 EXPECT_EQ(1U, GetAndResetAckedEventCount()); |
| 650 | 703 |
| 651 int updateEventIndex = -1; | 704 if (scroll_latching_enabled_) { |
| 652 if (!scroll_latching_enabled_) { | |
| 653 EXPECT_EQ(2U, all_sent_events().size()); | |
| 654 EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0)); | |
| 655 updateEventIndex = 1; | |
| 656 } else { | |
| 657 // Scroll latching: no new scroll begin expected. | 705 // Scroll latching: no new scroll begin expected. |
| 658 EXPECT_EQ(1U, all_sent_events().size()); | 706 EXPECT_EQ(1U, all_sent_events().size()); |
| 659 updateEventIndex = 0; | 707 EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(0)); |
| 708 EXPECT_EQ(0U, sent_gesture_event(0)->data.scrollUpdate.deltaX); | |
| 709 EXPECT_EQ(1U, sent_gesture_event(0)->data.scrollUpdate.deltaY); | |
| 710 EXPECT_EQ(1U, GetAndResetSentEventCount()); | |
| 711 } else { | |
| 712 EXPECT_EQ(3U, all_sent_events().size()); | |
| 713 EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0)); | |
| 714 EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1)); | |
| 715 EXPECT_GESTURE_SCROLL_END(sent_gesture_event(2)); | |
| 716 EXPECT_EQ(0U, sent_gesture_event(1)->data.scrollUpdate.deltaX); | |
| 717 EXPECT_EQ(1U, sent_gesture_event(1)->data.scrollUpdate.deltaY); | |
| 718 EXPECT_EQ(3U, GetAndResetSentEventCount()); | |
| 660 } | 719 } |
| 661 EXPECT_GE(updateEventIndex, 0); | |
| 662 EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(updateEventIndex)); | |
| 663 EXPECT_EQ(0U, sent_gesture_event(updateEventIndex)->data.scrollUpdate.deltaX); | |
| 664 EXPECT_EQ(1U, sent_gesture_event(updateEventIndex)->data.scrollUpdate.deltaY); | |
| 665 EXPECT_EQ(static_cast<size_t>(updateEventIndex + 1), | |
| 666 GetAndResetSentEventCount()); | |
| 667 } | 720 } |
| 668 | 721 |
| 669 INSTANTIATE_TEST_CASE_P(MouseWheelEventQueueTests, | 722 INSTANTIATE_TEST_CASE_P(MouseWheelEventQueueTests, |
| 670 MouseWheelEventQueueTest, | 723 MouseWheelEventQueueTest, |
| 671 testing::Bool()); | 724 testing::Bool()); |
| 672 | 725 |
| 673 } // namespace content | 726 } // namespace content |
| OLD | NEW |