| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/renderer/input/input_handler_proxy.h" | 5 #include "content/renderer/input/input_handler_proxy.h" |
| 6 | 6 |
| 7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
| 8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
| 9 #include "cc/trees/swap_promise_monitor.h" | 9 #include "cc/trees/swap_promise_monitor.h" |
| 10 #include "content/common/input/did_overscroll_params.h" | 10 #include "content/common/input/did_overscroll_params.h" |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 75 class MockInputHandler : public cc::InputHandler { | 75 class MockInputHandler : public cc::InputHandler { |
| 76 public: | 76 public: |
| 77 MockInputHandler() {} | 77 MockInputHandler() {} |
| 78 ~MockInputHandler() override {} | 78 ~MockInputHandler() override {} |
| 79 | 79 |
| 80 MOCK_METHOD0(PinchGestureBegin, void()); | 80 MOCK_METHOD0(PinchGestureBegin, void()); |
| 81 MOCK_METHOD2(PinchGestureUpdate, | 81 MOCK_METHOD2(PinchGestureUpdate, |
| 82 void(float magnify_delta, const gfx::Point& anchor)); | 82 void(float magnify_delta, const gfx::Point& anchor)); |
| 83 MOCK_METHOD0(PinchGestureEnd, void()); | 83 MOCK_METHOD0(PinchGestureEnd, void()); |
| 84 | 84 |
| 85 MOCK_METHOD0(SetNeedsAnimate, void()); | 85 MOCK_METHOD0(SetNeedsAnimateInput, void()); |
| 86 | 86 |
| 87 MOCK_METHOD2(ScrollBegin, | 87 MOCK_METHOD2(ScrollBegin, |
| 88 ScrollStatus(const gfx::Point& viewport_point, | 88 ScrollStatus(const gfx::Point& viewport_point, |
| 89 cc::InputHandler::ScrollInputType type)); | 89 cc::InputHandler::ScrollInputType type)); |
| 90 MOCK_METHOD2(ScrollAnimated, | 90 MOCK_METHOD2(ScrollAnimated, |
| 91 ScrollStatus(const gfx::Point& viewport_point, | 91 ScrollStatus(const gfx::Point& viewport_point, |
| 92 const gfx::Vector2dF& scroll_delta)); | 92 const gfx::Vector2dF& scroll_delta)); |
| 93 MOCK_METHOD2(ScrollBy, | 93 MOCK_METHOD2(ScrollBy, |
| 94 cc::InputHandlerScrollResult( | 94 cc::InputHandlerScrollResult( |
| 95 const gfx::Point& viewport_point, | 95 const gfx::Point& viewport_point, |
| (...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 244 .WillOnce(testing::Return(cc::InputHandler::SCROLL_STARTED)); | 244 .WillOnce(testing::Return(cc::InputHandler::SCROLL_STARTED)); |
| 245 gesture_.type = WebInputEvent::GestureScrollBegin; | 245 gesture_.type = WebInputEvent::GestureScrollBegin; |
| 246 gesture_.sourceDevice = source_device; | 246 gesture_.sourceDevice = source_device; |
| 247 EXPECT_EQ(expected_disposition_, | 247 EXPECT_EQ(expected_disposition_, |
| 248 input_handler_->HandleInputEvent(gesture_)); | 248 input_handler_->HandleInputEvent(gesture_)); |
| 249 | 249 |
| 250 VERIFY_AND_RESET_MOCKS(); | 250 VERIFY_AND_RESET_MOCKS(); |
| 251 | 251 |
| 252 EXPECT_CALL(mock_input_handler_, FlingScrollBegin()) | 252 EXPECT_CALL(mock_input_handler_, FlingScrollBegin()) |
| 253 .WillOnce(testing::Return(cc::InputHandler::SCROLL_STARTED)); | 253 .WillOnce(testing::Return(cc::InputHandler::SCROLL_STARTED)); |
| 254 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); | 254 EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()); |
| 255 | 255 |
| 256 gesture_ = | 256 gesture_ = |
| 257 CreateFling(timestamp, source_device, velocity, position, position, 0); | 257 CreateFling(timestamp, source_device, velocity, position, position, 0); |
| 258 EXPECT_EQ(expected_disposition_, | 258 EXPECT_EQ(expected_disposition_, |
| 259 input_handler_->HandleInputEvent(gesture_)); | 259 input_handler_->HandleInputEvent(gesture_)); |
| 260 | 260 |
| 261 VERIFY_AND_RESET_MOCKS(); | 261 VERIFY_AND_RESET_MOCKS(); |
| 262 } | 262 } |
| 263 | 263 |
| 264 void CancelFling(base::TimeTicks timestamp) { | 264 void CancelFling(base::TimeTicks timestamp) { |
| (...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 535 } | 535 } |
| 536 | 536 |
| 537 TEST_F(InputHandlerProxyTest, GestureFlingStartedTouchpad) { | 537 TEST_F(InputHandlerProxyTest, GestureFlingStartedTouchpad) { |
| 538 // We shouldn't send any events to the widget for this gesture. | 538 // We shouldn't send any events to the widget for this gesture. |
| 539 expected_disposition_ = InputHandlerProxy::DID_HANDLE; | 539 expected_disposition_ = InputHandlerProxy::DID_HANDLE; |
| 540 VERIFY_AND_RESET_MOCKS(); | 540 VERIFY_AND_RESET_MOCKS(); |
| 541 | 541 |
| 542 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) | 542 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) |
| 543 .WillOnce(testing::Return(cc::InputHandler::SCROLL_STARTED)); | 543 .WillOnce(testing::Return(cc::InputHandler::SCROLL_STARTED)); |
| 544 EXPECT_CALL(mock_input_handler_, ScrollEnd()); | 544 EXPECT_CALL(mock_input_handler_, ScrollEnd()); |
| 545 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); | 545 EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()); |
| 546 | 546 |
| 547 gesture_.type = WebInputEvent::GestureFlingStart; | 547 gesture_.type = WebInputEvent::GestureFlingStart; |
| 548 gesture_.data.flingStart.velocityX = 10; | 548 gesture_.data.flingStart.velocityX = 10; |
| 549 gesture_.sourceDevice = blink::WebGestureDeviceTouchpad; | 549 gesture_.sourceDevice = blink::WebGestureDeviceTouchpad; |
| 550 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); | 550 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); |
| 551 | 551 |
| 552 VERIFY_AND_RESET_MOCKS(); | 552 VERIFY_AND_RESET_MOCKS(); |
| 553 | 553 |
| 554 // Verify that a GestureFlingCancel during an animation cancels it. | 554 // Verify that a GestureFlingCancel during an animation cancels it. |
| 555 gesture_.type = WebInputEvent::GestureFlingCancel; | 555 gesture_.type = WebInputEvent::GestureFlingCancel; |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 615 WebPoint fling_point = WebPoint(7, 13); | 615 WebPoint fling_point = WebPoint(7, 13); |
| 616 WebPoint fling_global_point = WebPoint(17, 23); | 616 WebPoint fling_global_point = WebPoint(17, 23); |
| 617 // Note that for trackpad, wheel events with the Control modifier are | 617 // Note that for trackpad, wheel events with the Control modifier are |
| 618 // special (reserved for zoom), so don't set that here. | 618 // special (reserved for zoom), so don't set that here. |
| 619 int modifiers = WebInputEvent::ShiftKey | WebInputEvent::AltKey; | 619 int modifiers = WebInputEvent::ShiftKey | WebInputEvent::AltKey; |
| 620 gesture_ = CreateFling(blink::WebGestureDeviceTouchpad, | 620 gesture_ = CreateFling(blink::WebGestureDeviceTouchpad, |
| 621 fling_delta, | 621 fling_delta, |
| 622 fling_point, | 622 fling_point, |
| 623 fling_global_point, | 623 fling_global_point, |
| 624 modifiers); | 624 modifiers); |
| 625 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); | 625 EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()); |
| 626 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) | 626 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) |
| 627 .WillOnce(testing::Return(cc::InputHandler::SCROLL_STARTED)); | 627 .WillOnce(testing::Return(cc::InputHandler::SCROLL_STARTED)); |
| 628 EXPECT_CALL(mock_input_handler_, ScrollEnd()); | 628 EXPECT_CALL(mock_input_handler_, ScrollEnd()); |
| 629 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); | 629 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); |
| 630 | 630 |
| 631 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); | 631 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); |
| 632 // The first animate call should let us pick up an animation start time, but | 632 // The first animate call should let us pick up an animation start time, but |
| 633 // we shouldn't actually move anywhere just yet. The first frame after the | 633 // we shouldn't actually move anywhere just yet. The first frame after the |
| 634 // fling start will typically include the last scroll from the gesture that | 634 // fling start will typically include the last scroll from the gesture that |
| 635 // lead to the scroll (either wheel or gesture scroll), so there should be no | 635 // lead to the scroll (either wheel or gesture scroll), so there should be no |
| 636 // visible hitch. | 636 // visible hitch. |
| 637 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); | 637 EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()); |
| 638 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) | 638 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) |
| 639 .Times(0); | 639 .Times(0); |
| 640 base::TimeTicks time = base::TimeTicks() + base::TimeDelta::FromSeconds(10); | 640 base::TimeTicks time = base::TimeTicks() + base::TimeDelta::FromSeconds(10); |
| 641 input_handler_->Animate(time); | 641 input_handler_->Animate(time); |
| 642 | 642 |
| 643 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); | 643 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); |
| 644 | 644 |
| 645 // The second call should start scrolling in the -X direction. | 645 // The second call should start scrolling in the -X direction. |
| 646 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); | 646 EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()); |
| 647 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) | 647 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) |
| 648 .WillOnce(testing::Return(cc::InputHandler::SCROLL_STARTED)); | 648 .WillOnce(testing::Return(cc::InputHandler::SCROLL_STARTED)); |
| 649 EXPECT_CALL(mock_input_handler_, | 649 EXPECT_CALL(mock_input_handler_, |
| 650 ScrollBy(testing::_, | 650 ScrollBy(testing::_, |
| 651 testing::Property(&gfx::Vector2dF::x, testing::Lt(0)))) | 651 testing::Property(&gfx::Vector2dF::x, testing::Lt(0)))) |
| 652 .WillOnce(testing::Return(scroll_result_did_scroll_)); | 652 .WillOnce(testing::Return(scroll_result_did_scroll_)); |
| 653 EXPECT_CALL(mock_input_handler_, ScrollEnd()); | 653 EXPECT_CALL(mock_input_handler_, ScrollEnd()); |
| 654 time += base::TimeDelta::FromMilliseconds(100); | 654 time += base::TimeDelta::FromMilliseconds(100); |
| 655 input_handler_->Animate(time); | 655 input_handler_->Animate(time); |
| 656 | 656 |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 689 testing::Field(&WebSize::width, testing::Gt(0)))))); | 689 testing::Field(&WebSize::width, testing::Gt(0)))))); |
| 690 time += base::TimeDelta::FromMilliseconds(100); | 690 time += base::TimeDelta::FromMilliseconds(100); |
| 691 input_handler_->Animate(time); | 691 input_handler_->Animate(time); |
| 692 | 692 |
| 693 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); | 693 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); |
| 694 testing::Mock::VerifyAndClearExpectations(&mock_client_); | 694 testing::Mock::VerifyAndClearExpectations(&mock_client_); |
| 695 | 695 |
| 696 // Since we've aborted the fling, the next animation should be a no-op and | 696 // Since we've aborted the fling, the next animation should be a no-op and |
| 697 // should not result in another | 697 // should not result in another |
| 698 // frame being requested. | 698 // frame being requested. |
| 699 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()).Times(0); | 699 EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()).Times(0); |
| 700 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) | 700 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) |
| 701 .Times(0); | 701 .Times(0); |
| 702 time += base::TimeDelta::FromMilliseconds(100); | 702 time += base::TimeDelta::FromMilliseconds(100); |
| 703 input_handler_->Animate(time); | 703 input_handler_->Animate(time); |
| 704 | 704 |
| 705 // Since we've transferred the fling to the main thread, we need to pass the | 705 // Since we've transferred the fling to the main thread, we need to pass the |
| 706 // next GestureFlingCancel to the main | 706 // next GestureFlingCancel to the main |
| 707 // thread as well. | 707 // thread as well. |
| 708 expected_disposition_ = InputHandlerProxy::DID_NOT_HANDLE; | 708 expected_disposition_ = InputHandlerProxy::DID_NOT_HANDLE; |
| 709 gesture_.type = WebInputEvent::GestureFlingCancel; | 709 gesture_.type = WebInputEvent::GestureFlingCancel; |
| (...skipping 10 matching lines...) Expand all Loading... |
| 720 WebPoint fling_point = WebPoint(7, 13); | 720 WebPoint fling_point = WebPoint(7, 13); |
| 721 WebPoint fling_global_point = WebPoint(17, 23); | 721 WebPoint fling_global_point = WebPoint(17, 23); |
| 722 // Note that for trackpad, wheel events with the Control modifier are | 722 // Note that for trackpad, wheel events with the Control modifier are |
| 723 // special (reserved for zoom), so don't set that here. | 723 // special (reserved for zoom), so don't set that here. |
| 724 int modifiers = WebInputEvent::ShiftKey | WebInputEvent::AltKey; | 724 int modifiers = WebInputEvent::ShiftKey | WebInputEvent::AltKey; |
| 725 gesture_ = CreateFling(blink::WebGestureDeviceTouchpad, | 725 gesture_ = CreateFling(blink::WebGestureDeviceTouchpad, |
| 726 fling_delta, | 726 fling_delta, |
| 727 fling_point, | 727 fling_point, |
| 728 fling_global_point, | 728 fling_global_point, |
| 729 modifiers); | 729 modifiers); |
| 730 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); | 730 EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()); |
| 731 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) | 731 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) |
| 732 .WillOnce(testing::Return(cc::InputHandler::SCROLL_STARTED)); | 732 .WillOnce(testing::Return(cc::InputHandler::SCROLL_STARTED)); |
| 733 EXPECT_CALL(mock_input_handler_, ScrollEnd()); | 733 EXPECT_CALL(mock_input_handler_, ScrollEnd()); |
| 734 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); | 734 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); |
| 735 | 735 |
| 736 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); | 736 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); |
| 737 | 737 |
| 738 // Start the fling animation at time 10. This shouldn't actually scroll, just | 738 // Start the fling animation at time 10. This shouldn't actually scroll, just |
| 739 // establish a start time. | 739 // establish a start time. |
| 740 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); | 740 EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()); |
| 741 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) | 741 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) |
| 742 .Times(0); | 742 .Times(0); |
| 743 base::TimeTicks time = base::TimeTicks() + base::TimeDelta::FromSeconds(10); | 743 base::TimeTicks time = base::TimeTicks() + base::TimeDelta::FromSeconds(10); |
| 744 input_handler_->Animate(time); | 744 input_handler_->Animate(time); |
| 745 | 745 |
| 746 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); | 746 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); |
| 747 | 747 |
| 748 // The second call should start scrolling in the -X direction. | 748 // The second call should start scrolling in the -X direction. |
| 749 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); | 749 EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()); |
| 750 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) | 750 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) |
| 751 .WillOnce(testing::Return(cc::InputHandler::SCROLL_STARTED)); | 751 .WillOnce(testing::Return(cc::InputHandler::SCROLL_STARTED)); |
| 752 EXPECT_CALL(mock_input_handler_, | 752 EXPECT_CALL(mock_input_handler_, |
| 753 ScrollBy(testing::_, | 753 ScrollBy(testing::_, |
| 754 testing::Property(&gfx::Vector2dF::x, testing::Lt(0)))) | 754 testing::Property(&gfx::Vector2dF::x, testing::Lt(0)))) |
| 755 .WillOnce(testing::Return(scroll_result_did_scroll_)); | 755 .WillOnce(testing::Return(scroll_result_did_scroll_)); |
| 756 EXPECT_CALL(mock_input_handler_, ScrollEnd()); | 756 EXPECT_CALL(mock_input_handler_, ScrollEnd()); |
| 757 time += base::TimeDelta::FromMilliseconds(100); | 757 time += base::TimeDelta::FromMilliseconds(100); |
| 758 input_handler_->Animate(time); | 758 input_handler_->Animate(time); |
| 759 | 759 |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 793 testing::Field(&WebSize::width, testing::Gt(0)))))); | 793 testing::Field(&WebSize::width, testing::Gt(0)))))); |
| 794 time += base::TimeDelta::FromMilliseconds(100); | 794 time += base::TimeDelta::FromMilliseconds(100); |
| 795 input_handler_->Animate(time); | 795 input_handler_->Animate(time); |
| 796 | 796 |
| 797 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); | 797 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); |
| 798 testing::Mock::VerifyAndClearExpectations(&mock_client_); | 798 testing::Mock::VerifyAndClearExpectations(&mock_client_); |
| 799 | 799 |
| 800 // Since we've aborted the fling, the next animation should be a no-op and | 800 // Since we've aborted the fling, the next animation should be a no-op and |
| 801 // should not result in another | 801 // should not result in another |
| 802 // frame being requested. | 802 // frame being requested. |
| 803 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()).Times(0); | 803 EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()).Times(0); |
| 804 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) | 804 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) |
| 805 .Times(0); | 805 .Times(0); |
| 806 time += base::TimeDelta::FromMilliseconds(100); | 806 time += base::TimeDelta::FromMilliseconds(100); |
| 807 input_handler_->Animate(time); | 807 input_handler_->Animate(time); |
| 808 | 808 |
| 809 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); | 809 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); |
| 810 | 810 |
| 811 // Since we've transferred the fling to the main thread, we need to pass the | 811 // Since we've transferred the fling to the main thread, we need to pass the |
| 812 // next GestureFlingCancel to the main | 812 // next GestureFlingCancel to the main |
| 813 // thread as well. | 813 // thread as well. |
| 814 expected_disposition_ = InputHandlerProxy::DID_NOT_HANDLE; | 814 expected_disposition_ = InputHandlerProxy::DID_NOT_HANDLE; |
| 815 gesture_.type = WebInputEvent::GestureFlingCancel; | 815 gesture_.type = WebInputEvent::GestureFlingCancel; |
| 816 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); | 816 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); |
| 817 | 817 |
| 818 VERIFY_AND_RESET_MOCKS(); | 818 VERIFY_AND_RESET_MOCKS(); |
| 819 input_handler_->MainThreadHasStoppedFlinging(); | 819 input_handler_->MainThreadHasStoppedFlinging(); |
| 820 | 820 |
| 821 // Start a second gesture fling, this time in the +Y direction with no X. | 821 // Start a second gesture fling, this time in the +Y direction with no X. |
| 822 fling_delta = WebFloatPoint(0, -1000); | 822 fling_delta = WebFloatPoint(0, -1000); |
| 823 fling_point = WebPoint(95, 87); | 823 fling_point = WebPoint(95, 87); |
| 824 fling_global_point = WebPoint(32, 71); | 824 fling_global_point = WebPoint(32, 71); |
| 825 modifiers = WebInputEvent::AltKey; | 825 modifiers = WebInputEvent::AltKey; |
| 826 gesture_ = CreateFling(blink::WebGestureDeviceTouchpad, | 826 gesture_ = CreateFling(blink::WebGestureDeviceTouchpad, |
| 827 fling_delta, | 827 fling_delta, |
| 828 fling_point, | 828 fling_point, |
| 829 fling_global_point, | 829 fling_global_point, |
| 830 modifiers); | 830 modifiers); |
| 831 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); | 831 EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()); |
| 832 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) | 832 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) |
| 833 .WillOnce(testing::Return(cc::InputHandler::SCROLL_STARTED)); | 833 .WillOnce(testing::Return(cc::InputHandler::SCROLL_STARTED)); |
| 834 EXPECT_CALL(mock_input_handler_, ScrollEnd()); | 834 EXPECT_CALL(mock_input_handler_, ScrollEnd()); |
| 835 expected_disposition_ = InputHandlerProxy::DID_HANDLE; | 835 expected_disposition_ = InputHandlerProxy::DID_HANDLE; |
| 836 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); | 836 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); |
| 837 | 837 |
| 838 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); | 838 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); |
| 839 | 839 |
| 840 // Start the second fling animation at time 30. | 840 // Start the second fling animation at time 30. |
| 841 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); | 841 EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()); |
| 842 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) | 842 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) |
| 843 .Times(0); | 843 .Times(0); |
| 844 time = base::TimeTicks() + base::TimeDelta::FromSeconds(30); | 844 time = base::TimeTicks() + base::TimeDelta::FromSeconds(30); |
| 845 input_handler_->Animate(time); | 845 input_handler_->Animate(time); |
| 846 | 846 |
| 847 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); | 847 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); |
| 848 | 848 |
| 849 // Tick the second fling once normally. | 849 // Tick the second fling once normally. |
| 850 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); | 850 EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()); |
| 851 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) | 851 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) |
| 852 .WillOnce(testing::Return(cc::InputHandler::SCROLL_STARTED)); | 852 .WillOnce(testing::Return(cc::InputHandler::SCROLL_STARTED)); |
| 853 EXPECT_CALL(mock_input_handler_, | 853 EXPECT_CALL(mock_input_handler_, |
| 854 ScrollBy(testing::_, | 854 ScrollBy(testing::_, |
| 855 testing::Property(&gfx::Vector2dF::y, testing::Gt(0)))) | 855 testing::Property(&gfx::Vector2dF::y, testing::Gt(0)))) |
| 856 .WillOnce(testing::Return(scroll_result_did_scroll_)); | 856 .WillOnce(testing::Return(scroll_result_did_scroll_)); |
| 857 EXPECT_CALL(mock_input_handler_, ScrollEnd()); | 857 EXPECT_CALL(mock_input_handler_, ScrollEnd()); |
| 858 time += base::TimeDelta::FromMilliseconds(100); | 858 time += base::TimeDelta::FromMilliseconds(100); |
| 859 input_handler_->Animate(time); | 859 input_handler_->Animate(time); |
| 860 | 860 |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 895 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) | 895 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) |
| 896 .WillOnce(testing::Return(cc::InputHandler::SCROLL_STARTED)); | 896 .WillOnce(testing::Return(cc::InputHandler::SCROLL_STARTED)); |
| 897 gesture_.type = WebInputEvent::GestureScrollBegin; | 897 gesture_.type = WebInputEvent::GestureScrollBegin; |
| 898 gesture_.sourceDevice = blink::WebGestureDeviceTouchscreen; | 898 gesture_.sourceDevice = blink::WebGestureDeviceTouchscreen; |
| 899 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); | 899 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); |
| 900 | 900 |
| 901 VERIFY_AND_RESET_MOCKS(); | 901 VERIFY_AND_RESET_MOCKS(); |
| 902 | 902 |
| 903 EXPECT_CALL(mock_input_handler_, FlingScrollBegin()) | 903 EXPECT_CALL(mock_input_handler_, FlingScrollBegin()) |
| 904 .WillOnce(testing::Return(cc::InputHandler::SCROLL_STARTED)); | 904 .WillOnce(testing::Return(cc::InputHandler::SCROLL_STARTED)); |
| 905 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); | 905 EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()); |
| 906 | 906 |
| 907 gesture_.type = WebInputEvent::GestureFlingStart; | 907 gesture_.type = WebInputEvent::GestureFlingStart; |
| 908 gesture_.data.flingStart.velocityX = 10; | 908 gesture_.data.flingStart.velocityX = 10; |
| 909 gesture_.sourceDevice = blink::WebGestureDeviceTouchscreen; | 909 gesture_.sourceDevice = blink::WebGestureDeviceTouchscreen; |
| 910 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); | 910 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); |
| 911 | 911 |
| 912 VERIFY_AND_RESET_MOCKS(); | 912 VERIFY_AND_RESET_MOCKS(); |
| 913 | 913 |
| 914 EXPECT_CALL(mock_input_handler_, ScrollEnd()); | 914 EXPECT_CALL(mock_input_handler_, ScrollEnd()); |
| 915 | 915 |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1001 WebFloatPoint fling_delta = WebFloatPoint(100, 0); | 1001 WebFloatPoint fling_delta = WebFloatPoint(100, 0); |
| 1002 WebPoint fling_point = WebPoint(7, 13); | 1002 WebPoint fling_point = WebPoint(7, 13); |
| 1003 WebPoint fling_global_point = WebPoint(17, 23); | 1003 WebPoint fling_global_point = WebPoint(17, 23); |
| 1004 // Note that for touchscreen the control modifier is not special. | 1004 // Note that for touchscreen the control modifier is not special. |
| 1005 int modifiers = WebInputEvent::ControlKey; | 1005 int modifiers = WebInputEvent::ControlKey; |
| 1006 gesture_ = CreateFling(blink::WebGestureDeviceTouchscreen, | 1006 gesture_ = CreateFling(blink::WebGestureDeviceTouchscreen, |
| 1007 fling_delta, | 1007 fling_delta, |
| 1008 fling_point, | 1008 fling_point, |
| 1009 fling_global_point, | 1009 fling_global_point, |
| 1010 modifiers); | 1010 modifiers); |
| 1011 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); | 1011 EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()); |
| 1012 EXPECT_CALL(mock_input_handler_, FlingScrollBegin()) | 1012 EXPECT_CALL(mock_input_handler_, FlingScrollBegin()) |
| 1013 .WillOnce(testing::Return(cc::InputHandler::SCROLL_STARTED)); | 1013 .WillOnce(testing::Return(cc::InputHandler::SCROLL_STARTED)); |
| 1014 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); | 1014 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); |
| 1015 | 1015 |
| 1016 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); | 1016 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); |
| 1017 // The first animate call should let us pick up an animation start time, but | 1017 // The first animate call should let us pick up an animation start time, but |
| 1018 // we shouldn't actually move anywhere just yet. The first frame after the | 1018 // we shouldn't actually move anywhere just yet. The first frame after the |
| 1019 // fling start will typically include the last scroll from the gesture that | 1019 // fling start will typically include the last scroll from the gesture that |
| 1020 // lead to the scroll (either wheel or gesture scroll), so there should be no | 1020 // lead to the scroll (either wheel or gesture scroll), so there should be no |
| 1021 // visible hitch. | 1021 // visible hitch. |
| 1022 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); | 1022 EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()); |
| 1023 base::TimeTicks time = base::TimeTicks() + base::TimeDelta::FromSeconds(10); | 1023 base::TimeTicks time = base::TimeTicks() + base::TimeDelta::FromSeconds(10); |
| 1024 input_handler_->Animate(time); | 1024 input_handler_->Animate(time); |
| 1025 | 1025 |
| 1026 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); | 1026 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); |
| 1027 | 1027 |
| 1028 // The second call should start scrolling in the -X direction. | 1028 // The second call should start scrolling in the -X direction. |
| 1029 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); | 1029 EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()); |
| 1030 EXPECT_CALL(mock_input_handler_, | 1030 EXPECT_CALL(mock_input_handler_, |
| 1031 ScrollBy(testing::_, | 1031 ScrollBy(testing::_, |
| 1032 testing::Property(&gfx::Vector2dF::x, testing::Lt(0)))) | 1032 testing::Property(&gfx::Vector2dF::x, testing::Lt(0)))) |
| 1033 .WillOnce(testing::Return(scroll_result_did_scroll_)); | 1033 .WillOnce(testing::Return(scroll_result_did_scroll_)); |
| 1034 time += base::TimeDelta::FromMilliseconds(100); | 1034 time += base::TimeDelta::FromMilliseconds(100); |
| 1035 input_handler_->Animate(time); | 1035 input_handler_->Animate(time); |
| 1036 | 1036 |
| 1037 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); | 1037 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); |
| 1038 | 1038 |
| 1039 EXPECT_CALL(mock_input_handler_, ScrollEnd()); | 1039 EXPECT_CALL(mock_input_handler_, ScrollEnd()); |
| (...skipping 22 matching lines...) Expand all Loading... |
| 1062 WebFloatPoint fling_delta = WebFloatPoint(100, 0); | 1062 WebFloatPoint fling_delta = WebFloatPoint(100, 0); |
| 1063 WebPoint fling_point = WebPoint(7, 13); | 1063 WebPoint fling_point = WebPoint(7, 13); |
| 1064 WebPoint fling_global_point = WebPoint(17, 23); | 1064 WebPoint fling_global_point = WebPoint(17, 23); |
| 1065 int modifiers = WebInputEvent::ControlKey; | 1065 int modifiers = WebInputEvent::ControlKey; |
| 1066 gesture_ = CreateFling(time, | 1066 gesture_ = CreateFling(time, |
| 1067 blink::WebGestureDeviceTouchscreen, | 1067 blink::WebGestureDeviceTouchscreen, |
| 1068 fling_delta, | 1068 fling_delta, |
| 1069 fling_point, | 1069 fling_point, |
| 1070 fling_global_point, | 1070 fling_global_point, |
| 1071 modifiers); | 1071 modifiers); |
| 1072 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); | 1072 EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()); |
| 1073 EXPECT_CALL(mock_input_handler_, FlingScrollBegin()) | 1073 EXPECT_CALL(mock_input_handler_, FlingScrollBegin()) |
| 1074 .WillOnce(testing::Return(cc::InputHandler::SCROLL_STARTED)); | 1074 .WillOnce(testing::Return(cc::InputHandler::SCROLL_STARTED)); |
| 1075 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); | 1075 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); |
| 1076 | 1076 |
| 1077 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); | 1077 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); |
| 1078 // With a valid time stamp, the first animate call should skip start time | 1078 // With a valid time stamp, the first animate call should skip start time |
| 1079 // initialization and immediately begin scroll update production. This reduces | 1079 // initialization and immediately begin scroll update production. This reduces |
| 1080 // the likelihood of a hitch between the scroll preceding the fling and | 1080 // the likelihood of a hitch between the scroll preceding the fling and |
| 1081 // the first scroll generated by the fling. | 1081 // the first scroll generated by the fling. |
| 1082 // Scrolling should start in the -X direction. | 1082 // Scrolling should start in the -X direction. |
| 1083 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); | 1083 EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()); |
| 1084 EXPECT_CALL(mock_input_handler_, | 1084 EXPECT_CALL(mock_input_handler_, |
| 1085 ScrollBy(testing::_, | 1085 ScrollBy(testing::_, |
| 1086 testing::Property(&gfx::Vector2dF::x, testing::Lt(0)))) | 1086 testing::Property(&gfx::Vector2dF::x, testing::Lt(0)))) |
| 1087 .WillOnce(testing::Return(scroll_result_did_scroll_)); | 1087 .WillOnce(testing::Return(scroll_result_did_scroll_)); |
| 1088 time += dt; | 1088 time += dt; |
| 1089 input_handler_->Animate(time); | 1089 input_handler_->Animate(time); |
| 1090 | 1090 |
| 1091 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); | 1091 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); |
| 1092 | 1092 |
| 1093 EXPECT_CALL(mock_input_handler_, ScrollEnd()); | 1093 EXPECT_CALL(mock_input_handler_, ScrollEnd()); |
| (...skipping 25 matching lines...) Expand all Loading... |
| 1119 int modifiers = WebInputEvent::ControlKey; | 1119 int modifiers = WebInputEvent::ControlKey; |
| 1120 gesture_.timeStampSeconds = start_time_offset.InSecondsF(); | 1120 gesture_.timeStampSeconds = start_time_offset.InSecondsF(); |
| 1121 gesture_.data.flingStart.velocityX = fling_delta.x; | 1121 gesture_.data.flingStart.velocityX = fling_delta.x; |
| 1122 gesture_.data.flingStart.velocityY = fling_delta.y; | 1122 gesture_.data.flingStart.velocityY = fling_delta.y; |
| 1123 gesture_.sourceDevice = blink::WebGestureDeviceTouchscreen; | 1123 gesture_.sourceDevice = blink::WebGestureDeviceTouchscreen; |
| 1124 gesture_.x = fling_point.x; | 1124 gesture_.x = fling_point.x; |
| 1125 gesture_.y = fling_point.y; | 1125 gesture_.y = fling_point.y; |
| 1126 gesture_.globalX = fling_global_point.x; | 1126 gesture_.globalX = fling_global_point.x; |
| 1127 gesture_.globalY = fling_global_point.y; | 1127 gesture_.globalY = fling_global_point.y; |
| 1128 gesture_.modifiers = modifiers; | 1128 gesture_.modifiers = modifiers; |
| 1129 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); | 1129 EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()); |
| 1130 EXPECT_CALL(mock_input_handler_, FlingScrollBegin()) | 1130 EXPECT_CALL(mock_input_handler_, FlingScrollBegin()) |
| 1131 .WillOnce(testing::Return(cc::InputHandler::SCROLL_STARTED)); | 1131 .WillOnce(testing::Return(cc::InputHandler::SCROLL_STARTED)); |
| 1132 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); | 1132 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); |
| 1133 | 1133 |
| 1134 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); | 1134 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); |
| 1135 // Event though a time stamp was provided for the fling event, it will be | 1135 // Event though a time stamp was provided for the fling event, it will be |
| 1136 // ignored as its too far in the past relative to the first animate call's | 1136 // ignored as its too far in the past relative to the first animate call's |
| 1137 // timestamp. | 1137 // timestamp. |
| 1138 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); | 1138 EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()); |
| 1139 base::TimeTicks time = | 1139 base::TimeTicks time = |
| 1140 base::TimeTicks() + start_time_offset + base::TimeDelta::FromSeconds(1); | 1140 base::TimeTicks() + start_time_offset + base::TimeDelta::FromSeconds(1); |
| 1141 input_handler_->Animate(time); | 1141 input_handler_->Animate(time); |
| 1142 | 1142 |
| 1143 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); | 1143 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); |
| 1144 | 1144 |
| 1145 // Further animation ticks should update the fling as usual. | 1145 // Further animation ticks should update the fling as usual. |
| 1146 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); | 1146 EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()); |
| 1147 EXPECT_CALL(mock_input_handler_, | 1147 EXPECT_CALL(mock_input_handler_, |
| 1148 ScrollBy(testing::_, | 1148 ScrollBy(testing::_, |
| 1149 testing::Property(&gfx::Vector2dF::x, testing::Lt(0)))) | 1149 testing::Property(&gfx::Vector2dF::x, testing::Lt(0)))) |
| 1150 .WillOnce(testing::Return(scroll_result_did_scroll_)); | 1150 .WillOnce(testing::Return(scroll_result_did_scroll_)); |
| 1151 time += base::TimeDelta::FromMilliseconds(10); | 1151 time += base::TimeDelta::FromMilliseconds(10); |
| 1152 input_handler_->Animate(time); | 1152 input_handler_->Animate(time); |
| 1153 | 1153 |
| 1154 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); | 1154 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); |
| 1155 | 1155 |
| 1156 EXPECT_CALL(mock_input_handler_, ScrollEnd()); | 1156 EXPECT_CALL(mock_input_handler_, ScrollEnd()); |
| (...skipping 24 matching lines...) Expand all Loading... |
| 1181 // scrolling. | 1181 // scrolling. |
| 1182 WebFloatPoint fling_delta = WebFloatPoint(100, 0); | 1182 WebFloatPoint fling_delta = WebFloatPoint(100, 0); |
| 1183 WebPoint fling_point = WebPoint(7, 13); | 1183 WebPoint fling_point = WebPoint(7, 13); |
| 1184 WebPoint fling_global_point = WebPoint(17, 23); | 1184 WebPoint fling_global_point = WebPoint(17, 23); |
| 1185 int modifiers = WebInputEvent::ControlKey | WebInputEvent::AltKey; | 1185 int modifiers = WebInputEvent::ControlKey | WebInputEvent::AltKey; |
| 1186 gesture_ = CreateFling(blink::WebGestureDeviceTouchscreen, | 1186 gesture_ = CreateFling(blink::WebGestureDeviceTouchscreen, |
| 1187 fling_delta, | 1187 fling_delta, |
| 1188 fling_point, | 1188 fling_point, |
| 1189 fling_global_point, | 1189 fling_global_point, |
| 1190 modifiers); | 1190 modifiers); |
| 1191 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); | 1191 EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()); |
| 1192 EXPECT_CALL(mock_input_handler_, FlingScrollBegin()) | 1192 EXPECT_CALL(mock_input_handler_, FlingScrollBegin()) |
| 1193 .WillOnce(testing::Return(cc::InputHandler::SCROLL_STARTED)); | 1193 .WillOnce(testing::Return(cc::InputHandler::SCROLL_STARTED)); |
| 1194 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); | 1194 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); |
| 1195 | 1195 |
| 1196 // |gesture_scroll_on_impl_thread_| should still be true after | 1196 // |gesture_scroll_on_impl_thread_| should still be true after |
| 1197 // a GestureFlingStart is sent. | 1197 // a GestureFlingStart is sent. |
| 1198 EXPECT_TRUE(input_handler_->gesture_scroll_on_impl_thread_for_testing()); | 1198 EXPECT_TRUE(input_handler_->gesture_scroll_on_impl_thread_for_testing()); |
| 1199 | 1199 |
| 1200 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); | 1200 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); |
| 1201 // The first animate call should let us pick up an animation start time, but | 1201 // The first animate call should let us pick up an animation start time, but |
| 1202 // we shouldn't actually move anywhere just yet. The first frame after the | 1202 // we shouldn't actually move anywhere just yet. The first frame after the |
| 1203 // fling start will typically include the last scroll from the gesture that | 1203 // fling start will typically include the last scroll from the gesture that |
| 1204 // lead to the scroll (either wheel or gesture scroll), so there should be no | 1204 // lead to the scroll (either wheel or gesture scroll), so there should be no |
| 1205 // visible hitch. | 1205 // visible hitch. |
| 1206 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); | 1206 EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()); |
| 1207 base::TimeTicks time = base::TimeTicks() + base::TimeDelta::FromSeconds(10); | 1207 base::TimeTicks time = base::TimeTicks() + base::TimeDelta::FromSeconds(10); |
| 1208 input_handler_->Animate(time); | 1208 input_handler_->Animate(time); |
| 1209 | 1209 |
| 1210 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); | 1210 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); |
| 1211 | 1211 |
| 1212 // The second call should start scrolling in the -X direction. | 1212 // The second call should start scrolling in the -X direction. |
| 1213 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); | 1213 EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()); |
| 1214 EXPECT_CALL(mock_input_handler_, | 1214 EXPECT_CALL(mock_input_handler_, |
| 1215 ScrollBy(testing::_, | 1215 ScrollBy(testing::_, |
| 1216 testing::Property(&gfx::Vector2dF::x, testing::Lt(0)))) | 1216 testing::Property(&gfx::Vector2dF::x, testing::Lt(0)))) |
| 1217 .WillOnce(testing::Return(scroll_result_did_scroll_)); | 1217 .WillOnce(testing::Return(scroll_result_did_scroll_)); |
| 1218 time += base::TimeDelta::FromMilliseconds(100); | 1218 time += base::TimeDelta::FromMilliseconds(100); |
| 1219 input_handler_->Animate(time); | 1219 input_handler_->Animate(time); |
| 1220 | 1220 |
| 1221 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); | 1221 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); |
| 1222 | 1222 |
| 1223 EXPECT_CALL(mock_input_handler_, ScrollEnd()); | 1223 EXPECT_CALL(mock_input_handler_, ScrollEnd()); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 1236 | 1236 |
| 1237 // On the fling start, we should schedule an animation but not actually start | 1237 // On the fling start, we should schedule an animation but not actually start |
| 1238 // scrolling. | 1238 // scrolling. |
| 1239 gesture_.type = WebInputEvent::GestureFlingStart; | 1239 gesture_.type = WebInputEvent::GestureFlingStart; |
| 1240 WebFloatPoint fling_delta = WebFloatPoint(100, 100); | 1240 WebFloatPoint fling_delta = WebFloatPoint(100, 100); |
| 1241 gesture_.data.flingStart.velocityX = fling_delta.x; | 1241 gesture_.data.flingStart.velocityX = fling_delta.x; |
| 1242 gesture_.data.flingStart.velocityY = fling_delta.y; | 1242 gesture_.data.flingStart.velocityY = fling_delta.y; |
| 1243 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) | 1243 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) |
| 1244 .WillOnce(testing::Return(cc::InputHandler::SCROLL_STARTED)); | 1244 .WillOnce(testing::Return(cc::InputHandler::SCROLL_STARTED)); |
| 1245 EXPECT_CALL(mock_input_handler_, ScrollEnd()); | 1245 EXPECT_CALL(mock_input_handler_, ScrollEnd()); |
| 1246 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); | 1246 EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()); |
| 1247 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); | 1247 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); |
| 1248 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); | 1248 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); |
| 1249 | 1249 |
| 1250 // The first animate doesn't cause any scrolling. | 1250 // The first animate doesn't cause any scrolling. |
| 1251 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); | 1251 EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()); |
| 1252 base::TimeTicks time = base::TimeTicks() + base::TimeDelta::FromSeconds(10); | 1252 base::TimeTicks time = base::TimeTicks() + base::TimeDelta::FromSeconds(10); |
| 1253 input_handler_->Animate(time); | 1253 input_handler_->Animate(time); |
| 1254 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); | 1254 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); |
| 1255 | 1255 |
| 1256 // The second animate starts scrolling in the positive X and Y directions. | 1256 // The second animate starts scrolling in the positive X and Y directions. |
| 1257 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) | 1257 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) |
| 1258 .WillOnce(testing::Return(cc::InputHandler::SCROLL_STARTED)); | 1258 .WillOnce(testing::Return(cc::InputHandler::SCROLL_STARTED)); |
| 1259 EXPECT_CALL(mock_input_handler_, | 1259 EXPECT_CALL(mock_input_handler_, |
| 1260 ScrollBy(testing::_, | 1260 ScrollBy(testing::_, |
| 1261 testing::Property(&gfx::Vector2dF::y, testing::Lt(0)))) | 1261 testing::Property(&gfx::Vector2dF::y, testing::Lt(0)))) |
| 1262 .WillOnce(testing::Return(scroll_result_did_scroll_)); | 1262 .WillOnce(testing::Return(scroll_result_did_scroll_)); |
| 1263 EXPECT_CALL(mock_input_handler_, ScrollEnd()); | 1263 EXPECT_CALL(mock_input_handler_, ScrollEnd()); |
| 1264 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); | 1264 EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()); |
| 1265 time += base::TimeDelta::FromMilliseconds(100); | 1265 time += base::TimeDelta::FromMilliseconds(100); |
| 1266 input_handler_->Animate(time); | 1266 input_handler_->Animate(time); |
| 1267 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); | 1267 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); |
| 1268 | 1268 |
| 1269 // The third animate overscrolls in the positive Y direction but scrolls | 1269 // The third animate overscrolls in the positive Y direction but scrolls |
| 1270 // somewhat. | 1270 // somewhat. |
| 1271 cc::InputHandlerScrollResult overscroll; | 1271 cc::InputHandlerScrollResult overscroll; |
| 1272 overscroll.did_scroll = true; | 1272 overscroll.did_scroll = true; |
| 1273 overscroll.did_overscroll_root = true; | 1273 overscroll.did_overscroll_root = true; |
| 1274 overscroll.accumulated_root_overscroll = gfx::Vector2dF(0, 100); | 1274 overscroll.accumulated_root_overscroll = gfx::Vector2dF(0, 100); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 1285 testing::Field( | 1285 testing::Field( |
| 1286 &DidOverscrollParams::accumulated_overscroll, | 1286 &DidOverscrollParams::accumulated_overscroll, |
| 1287 testing::Eq(overscroll.accumulated_root_overscroll)), | 1287 testing::Eq(overscroll.accumulated_root_overscroll)), |
| 1288 testing::Field( | 1288 testing::Field( |
| 1289 &DidOverscrollParams::latest_overscroll_delta, | 1289 &DidOverscrollParams::latest_overscroll_delta, |
| 1290 testing::Eq(overscroll.unused_scroll_delta)), | 1290 testing::Eq(overscroll.unused_scroll_delta)), |
| 1291 testing::Field( | 1291 testing::Field( |
| 1292 &DidOverscrollParams::current_fling_velocity, | 1292 &DidOverscrollParams::current_fling_velocity, |
| 1293 testing::Property(&gfx::Vector2dF::y, testing::Lt(0)))))); | 1293 testing::Property(&gfx::Vector2dF::y, testing::Lt(0)))))); |
| 1294 EXPECT_CALL(mock_input_handler_, ScrollEnd()); | 1294 EXPECT_CALL(mock_input_handler_, ScrollEnd()); |
| 1295 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); | 1295 EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()); |
| 1296 time += base::TimeDelta::FromMilliseconds(100); | 1296 time += base::TimeDelta::FromMilliseconds(100); |
| 1297 input_handler_->Animate(time); | 1297 input_handler_->Animate(time); |
| 1298 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); | 1298 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); |
| 1299 | 1299 |
| 1300 // The next call to animate will no longer scroll vertically. | 1300 // The next call to animate will no longer scroll vertically. |
| 1301 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); | 1301 EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()); |
| 1302 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) | 1302 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) |
| 1303 .WillOnce(testing::Return(cc::InputHandler::SCROLL_STARTED)); | 1303 .WillOnce(testing::Return(cc::InputHandler::SCROLL_STARTED)); |
| 1304 EXPECT_CALL(mock_input_handler_, | 1304 EXPECT_CALL(mock_input_handler_, |
| 1305 ScrollBy(testing::_, | 1305 ScrollBy(testing::_, |
| 1306 testing::Property(&gfx::Vector2dF::y, testing::Eq(0)))) | 1306 testing::Property(&gfx::Vector2dF::y, testing::Eq(0)))) |
| 1307 .WillOnce(testing::Return(scroll_result_did_scroll_)); | 1307 .WillOnce(testing::Return(scroll_result_did_scroll_)); |
| 1308 EXPECT_CALL(mock_input_handler_, ScrollEnd()); | 1308 EXPECT_CALL(mock_input_handler_, ScrollEnd()); |
| 1309 time += base::TimeDelta::FromMilliseconds(100); | 1309 time += base::TimeDelta::FromMilliseconds(100); |
| 1310 input_handler_->Animate(time); | 1310 input_handler_->Animate(time); |
| 1311 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); | 1311 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); |
| (...skipping 20 matching lines...) Expand all Loading... |
| 1332 WebFloatPoint fling_delta = WebFloatPoint(100, 0); | 1332 WebFloatPoint fling_delta = WebFloatPoint(100, 0); |
| 1333 WebPoint fling_point = WebPoint(7, 13); | 1333 WebPoint fling_point = WebPoint(7, 13); |
| 1334 WebPoint fling_global_point = WebPoint(17, 23); | 1334 WebPoint fling_global_point = WebPoint(17, 23); |
| 1335 int modifiers = WebInputEvent::ControlKey; | 1335 int modifiers = WebInputEvent::ControlKey; |
| 1336 gesture_ = CreateFling(time, | 1336 gesture_ = CreateFling(time, |
| 1337 blink::WebGestureDeviceTouchscreen, | 1337 blink::WebGestureDeviceTouchscreen, |
| 1338 fling_delta, | 1338 fling_delta, |
| 1339 fling_point, | 1339 fling_point, |
| 1340 fling_global_point, | 1340 fling_global_point, |
| 1341 modifiers); | 1341 modifiers); |
| 1342 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); | 1342 EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()); |
| 1343 EXPECT_CALL(mock_input_handler_, FlingScrollBegin()) | 1343 EXPECT_CALL(mock_input_handler_, FlingScrollBegin()) |
| 1344 .WillOnce(testing::Return(cc::InputHandler::SCROLL_STARTED)); | 1344 .WillOnce(testing::Return(cc::InputHandler::SCROLL_STARTED)); |
| 1345 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); | 1345 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); |
| 1346 | 1346 |
| 1347 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); | 1347 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); |
| 1348 // With an animation timestamp equivalent to the starting timestamp, the | 1348 // With an animation timestamp equivalent to the starting timestamp, the |
| 1349 // animation will simply be rescheduled. | 1349 // animation will simply be rescheduled. |
| 1350 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); | 1350 EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()); |
| 1351 input_handler_->Animate(time); | 1351 input_handler_->Animate(time); |
| 1352 | 1352 |
| 1353 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); | 1353 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); |
| 1354 EXPECT_TRUE(input_handler_->gesture_scroll_on_impl_thread_for_testing()); | 1354 EXPECT_TRUE(input_handler_->gesture_scroll_on_impl_thread_for_testing()); |
| 1355 | 1355 |
| 1356 // A small time delta should not stop the fling, even if the client | 1356 // A small time delta should not stop the fling, even if the client |
| 1357 // reports no scrolling. | 1357 // reports no scrolling. |
| 1358 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); | 1358 EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()); |
| 1359 EXPECT_CALL(mock_input_handler_, | 1359 EXPECT_CALL(mock_input_handler_, |
| 1360 ScrollBy(testing::_, | 1360 ScrollBy(testing::_, |
| 1361 testing::Property(&gfx::Vector2dF::x, testing::Lt(0)))) | 1361 testing::Property(&gfx::Vector2dF::x, testing::Lt(0)))) |
| 1362 .WillOnce(testing::Return(scroll_result_did_not_scroll_)); | 1362 .WillOnce(testing::Return(scroll_result_did_not_scroll_)); |
| 1363 time += base::TimeDelta::FromMicroseconds(5); | 1363 time += base::TimeDelta::FromMicroseconds(5); |
| 1364 input_handler_->Animate(time); | 1364 input_handler_->Animate(time); |
| 1365 | 1365 |
| 1366 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); | 1366 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); |
| 1367 EXPECT_TRUE(input_handler_->gesture_scroll_on_impl_thread_for_testing()); | 1367 EXPECT_TRUE(input_handler_->gesture_scroll_on_impl_thread_for_testing()); |
| 1368 | 1368 |
| 1369 // A time delta of zero should not stop the fling, and neither should it | 1369 // A time delta of zero should not stop the fling, and neither should it |
| 1370 // trigger scrolling on the client. | 1370 // trigger scrolling on the client. |
| 1371 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); | 1371 EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()); |
| 1372 input_handler_->Animate(time); | 1372 input_handler_->Animate(time); |
| 1373 | 1373 |
| 1374 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); | 1374 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); |
| 1375 EXPECT_TRUE(input_handler_->gesture_scroll_on_impl_thread_for_testing()); | 1375 EXPECT_TRUE(input_handler_->gesture_scroll_on_impl_thread_for_testing()); |
| 1376 | 1376 |
| 1377 // Lack of movement on the client, with a non-trivial scroll delta, should | 1377 // Lack of movement on the client, with a non-trivial scroll delta, should |
| 1378 // terminate the fling. | 1378 // terminate the fling. |
| 1379 EXPECT_CALL(mock_input_handler_, ScrollEnd()); | 1379 EXPECT_CALL(mock_input_handler_, ScrollEnd()); |
| 1380 EXPECT_CALL(mock_input_handler_, | 1380 EXPECT_CALL(mock_input_handler_, |
| 1381 ScrollBy(testing::_, | 1381 ScrollBy(testing::_, |
| (...skipping 23 matching lines...) Expand all Loading... |
| 1405 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); | 1405 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); |
| 1406 | 1406 |
| 1407 // On the fling start, we should schedule an animation but not actually start | 1407 // On the fling start, we should schedule an animation but not actually start |
| 1408 // scrolling. | 1408 // scrolling. |
| 1409 gesture_.type = WebInputEvent::GestureFlingStart; | 1409 gesture_.type = WebInputEvent::GestureFlingStart; |
| 1410 WebFloatPoint fling_delta = WebFloatPoint(100, 100); | 1410 WebFloatPoint fling_delta = WebFloatPoint(100, 100); |
| 1411 gesture_.data.flingStart.velocityX = fling_delta.x; | 1411 gesture_.data.flingStart.velocityX = fling_delta.x; |
| 1412 gesture_.data.flingStart.velocityY = fling_delta.y; | 1412 gesture_.data.flingStart.velocityY = fling_delta.y; |
| 1413 EXPECT_CALL(mock_input_handler_, FlingScrollBegin()) | 1413 EXPECT_CALL(mock_input_handler_, FlingScrollBegin()) |
| 1414 .WillOnce(testing::Return(cc::InputHandler::SCROLL_STARTED)); | 1414 .WillOnce(testing::Return(cc::InputHandler::SCROLL_STARTED)); |
| 1415 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); | 1415 EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()); |
| 1416 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); | 1416 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); |
| 1417 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); | 1417 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); |
| 1418 | 1418 |
| 1419 // The first animate doesn't cause any scrolling. | 1419 // The first animate doesn't cause any scrolling. |
| 1420 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); | 1420 EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()); |
| 1421 base::TimeTicks time = base::TimeTicks() + base::TimeDelta::FromSeconds(10); | 1421 base::TimeTicks time = base::TimeTicks() + base::TimeDelta::FromSeconds(10); |
| 1422 input_handler_->Animate(time); | 1422 input_handler_->Animate(time); |
| 1423 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); | 1423 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); |
| 1424 | 1424 |
| 1425 // The second animate starts scrolling in the positive X and Y directions. | 1425 // The second animate starts scrolling in the positive X and Y directions. |
| 1426 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); | 1426 EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()); |
| 1427 EXPECT_CALL(mock_input_handler_, | 1427 EXPECT_CALL(mock_input_handler_, |
| 1428 ScrollBy(testing::_, | 1428 ScrollBy(testing::_, |
| 1429 testing::Property(&gfx::Vector2dF::y, testing::Lt(0)))) | 1429 testing::Property(&gfx::Vector2dF::y, testing::Lt(0)))) |
| 1430 .WillOnce(testing::Return(scroll_result_did_scroll_)); | 1430 .WillOnce(testing::Return(scroll_result_did_scroll_)); |
| 1431 time += base::TimeDelta::FromMilliseconds(10); | 1431 time += base::TimeDelta::FromMilliseconds(10); |
| 1432 input_handler_->Animate(time); | 1432 input_handler_->Animate(time); |
| 1433 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); | 1433 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); |
| 1434 | 1434 |
| 1435 // The third animate hits the bottom content edge. | 1435 // The third animate hits the bottom content edge. |
| 1436 overscroll.accumulated_root_overscroll = gfx::Vector2dF(0, 100); | 1436 overscroll.accumulated_root_overscroll = gfx::Vector2dF(0, 100); |
| 1437 overscroll.unused_scroll_delta = gfx::Vector2dF(0, 100); | 1437 overscroll.unused_scroll_delta = gfx::Vector2dF(0, 100); |
| 1438 EXPECT_CALL(mock_input_handler_, | 1438 EXPECT_CALL(mock_input_handler_, |
| 1439 ScrollBy(testing::_, | 1439 ScrollBy(testing::_, |
| 1440 testing::Property(&gfx::Vector2dF::y, testing::Lt(0)))) | 1440 testing::Property(&gfx::Vector2dF::y, testing::Lt(0)))) |
| 1441 .WillOnce(testing::Return(overscroll)); | 1441 .WillOnce(testing::Return(overscroll)); |
| 1442 EXPECT_CALL( | 1442 EXPECT_CALL( |
| 1443 mock_client_, | 1443 mock_client_, |
| 1444 DidOverscroll(testing::AllOf( | 1444 DidOverscroll(testing::AllOf( |
| 1445 testing::Field( | 1445 testing::Field( |
| 1446 &DidOverscrollParams::accumulated_overscroll, | 1446 &DidOverscrollParams::accumulated_overscroll, |
| 1447 testing::Eq(overscroll.accumulated_root_overscroll)), | 1447 testing::Eq(overscroll.accumulated_root_overscroll)), |
| 1448 testing::Field( | 1448 testing::Field( |
| 1449 &DidOverscrollParams::latest_overscroll_delta, | 1449 &DidOverscrollParams::latest_overscroll_delta, |
| 1450 testing::Eq(overscroll.unused_scroll_delta)), | 1450 testing::Eq(overscroll.unused_scroll_delta)), |
| 1451 testing::Field( | 1451 testing::Field( |
| 1452 &DidOverscrollParams::current_fling_velocity, | 1452 &DidOverscrollParams::current_fling_velocity, |
| 1453 testing::Property(&gfx::Vector2dF::y, testing::Lt(0)))))); | 1453 testing::Property(&gfx::Vector2dF::y, testing::Lt(0)))))); |
| 1454 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); | 1454 EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()); |
| 1455 time += base::TimeDelta::FromMilliseconds(10); | 1455 time += base::TimeDelta::FromMilliseconds(10); |
| 1456 input_handler_->Animate(time); | 1456 input_handler_->Animate(time); |
| 1457 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); | 1457 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); |
| 1458 | 1458 |
| 1459 // The next call to animate will no longer scroll vertically. | 1459 // The next call to animate will no longer scroll vertically. |
| 1460 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); | 1460 EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()); |
| 1461 EXPECT_CALL(mock_input_handler_, | 1461 EXPECT_CALL(mock_input_handler_, |
| 1462 ScrollBy(testing::_, | 1462 ScrollBy(testing::_, |
| 1463 testing::Property(&gfx::Vector2dF::y, testing::Eq(0)))) | 1463 testing::Property(&gfx::Vector2dF::y, testing::Eq(0)))) |
| 1464 .WillOnce(testing::Return(scroll_result_did_scroll_)); | 1464 .WillOnce(testing::Return(scroll_result_did_scroll_)); |
| 1465 time += base::TimeDelta::FromMilliseconds(10); | 1465 time += base::TimeDelta::FromMilliseconds(10); |
| 1466 input_handler_->Animate(time); | 1466 input_handler_->Animate(time); |
| 1467 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); | 1467 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); |
| 1468 | 1468 |
| 1469 // The next call will hit the right edge. | 1469 // The next call will hit the right edge. |
| 1470 overscroll.accumulated_root_overscroll = gfx::Vector2dF(100, 100); | 1470 overscroll.accumulated_root_overscroll = gfx::Vector2dF(100, 100); |
| (...skipping 14 matching lines...) Expand all Loading... |
| 1485 testing::Field( | 1485 testing::Field( |
| 1486 &DidOverscrollParams::current_fling_velocity, | 1486 &DidOverscrollParams::current_fling_velocity, |
| 1487 testing::Property(&gfx::Vector2dF::x, testing::Lt(0)))))); | 1487 testing::Property(&gfx::Vector2dF::x, testing::Lt(0)))))); |
| 1488 EXPECT_CALL(mock_input_handler_, ScrollEnd()); | 1488 EXPECT_CALL(mock_input_handler_, ScrollEnd()); |
| 1489 time += base::TimeDelta::FromMilliseconds(10); | 1489 time += base::TimeDelta::FromMilliseconds(10); |
| 1490 input_handler_->Animate(time); | 1490 input_handler_->Animate(time); |
| 1491 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); | 1491 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); |
| 1492 | 1492 |
| 1493 // The next call to animate will no longer scroll horizontally or vertically, | 1493 // The next call to animate will no longer scroll horizontally or vertically, |
| 1494 // and the fling should be cancelled. | 1494 // and the fling should be cancelled. |
| 1495 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()).Times(0); | 1495 EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()).Times(0); |
| 1496 EXPECT_CALL(mock_input_handler_, ScrollBy(testing::_, testing::_)).Times(0); | 1496 EXPECT_CALL(mock_input_handler_, ScrollBy(testing::_, testing::_)).Times(0); |
| 1497 time += base::TimeDelta::FromMilliseconds(10); | 1497 time += base::TimeDelta::FromMilliseconds(10); |
| 1498 input_handler_->Animate(time); | 1498 input_handler_->Animate(time); |
| 1499 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); | 1499 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); |
| 1500 EXPECT_FALSE(input_handler_->gesture_scroll_on_impl_thread_for_testing()); | 1500 EXPECT_FALSE(input_handler_->gesture_scroll_on_impl_thread_for_testing()); |
| 1501 } | 1501 } |
| 1502 | 1502 |
| 1503 TEST_F(InputHandlerProxyTest, MultiTouchPointHitTestNegative) { | 1503 TEST_F(InputHandlerProxyTest, MultiTouchPointHitTestNegative) { |
| 1504 // None of the three touch points fall in the touch region. So the event | 1504 // None of the three touch points fall in the touch region. So the event |
| 1505 // should be dropped. | 1505 // should be dropped. |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1573 EXPECT_TRUE(input_handler_->gesture_scroll_on_impl_thread_for_testing()); | 1573 EXPECT_TRUE(input_handler_->gesture_scroll_on_impl_thread_for_testing()); |
| 1574 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); | 1574 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); |
| 1575 | 1575 |
| 1576 // On the fling start, animation should be scheduled, but no scrolling occurs. | 1576 // On the fling start, animation should be scheduled, but no scrolling occurs. |
| 1577 gesture_.type = WebInputEvent::GestureFlingStart; | 1577 gesture_.type = WebInputEvent::GestureFlingStart; |
| 1578 WebFloatPoint fling_delta = WebFloatPoint(100, 100); | 1578 WebFloatPoint fling_delta = WebFloatPoint(100, 100); |
| 1579 gesture_.data.flingStart.velocityX = fling_delta.x; | 1579 gesture_.data.flingStart.velocityX = fling_delta.x; |
| 1580 gesture_.data.flingStart.velocityY = fling_delta.y; | 1580 gesture_.data.flingStart.velocityY = fling_delta.y; |
| 1581 EXPECT_CALL(mock_input_handler_, FlingScrollBegin()) | 1581 EXPECT_CALL(mock_input_handler_, FlingScrollBegin()) |
| 1582 .WillOnce(testing::Return(cc::InputHandler::SCROLL_STARTED)); | 1582 .WillOnce(testing::Return(cc::InputHandler::SCROLL_STARTED)); |
| 1583 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); | 1583 EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()); |
| 1584 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); | 1584 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); |
| 1585 EXPECT_TRUE(input_handler_->gesture_scroll_on_impl_thread_for_testing()); | 1585 EXPECT_TRUE(input_handler_->gesture_scroll_on_impl_thread_for_testing()); |
| 1586 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); | 1586 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); |
| 1587 | 1587 |
| 1588 // Keyboard events received during a fling should cancel the active fling. | 1588 // Keyboard events received during a fling should cancel the active fling. |
| 1589 EXPECT_CALL(mock_input_handler_, ScrollEnd()); | 1589 EXPECT_CALL(mock_input_handler_, ScrollEnd()); |
| 1590 EXPECT_EQ(InputHandlerProxy::DID_NOT_HANDLE, | 1590 EXPECT_EQ(InputHandlerProxy::DID_NOT_HANDLE, |
| 1591 input_handler_->HandleInputEvent(key_event)); | 1591 input_handler_->HandleInputEvent(key_event)); |
| 1592 EXPECT_FALSE(input_handler_->gesture_scroll_on_impl_thread_for_testing()); | 1592 EXPECT_FALSE(input_handler_->gesture_scroll_on_impl_thread_for_testing()); |
| 1593 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); | 1593 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1625 WebFloatPoint fling_delta = WebFloatPoint(100, 0); | 1625 WebFloatPoint fling_delta = WebFloatPoint(100, 0); |
| 1626 WebPoint fling_point = WebPoint(7, 13); | 1626 WebPoint fling_point = WebPoint(7, 13); |
| 1627 WebPoint fling_global_point = WebPoint(17, 23); | 1627 WebPoint fling_global_point = WebPoint(17, 23); |
| 1628 int modifiers = WebInputEvent::ControlKey; | 1628 int modifiers = WebInputEvent::ControlKey; |
| 1629 gesture_ = CreateFling(time, | 1629 gesture_ = CreateFling(time, |
| 1630 blink::WebGestureDeviceTouchscreen, | 1630 blink::WebGestureDeviceTouchscreen, |
| 1631 fling_delta, | 1631 fling_delta, |
| 1632 fling_point, | 1632 fling_point, |
| 1633 fling_global_point, | 1633 fling_global_point, |
| 1634 modifiers); | 1634 modifiers); |
| 1635 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); | 1635 EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()); |
| 1636 EXPECT_CALL(mock_input_handler_, FlingScrollBegin()) | 1636 EXPECT_CALL(mock_input_handler_, FlingScrollBegin()) |
| 1637 .WillOnce(testing::Return(cc::InputHandler::SCROLL_STARTED)); | 1637 .WillOnce(testing::Return(cc::InputHandler::SCROLL_STARTED)); |
| 1638 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); | 1638 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); |
| 1639 | 1639 |
| 1640 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); | 1640 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); |
| 1641 | 1641 |
| 1642 // If we get a negative time delta, that is, the Animation tick time happens | 1642 // If we get a negative time delta, that is, the Animation tick time happens |
| 1643 // before the fling's start time then we should *not* try scrolling and | 1643 // before the fling's start time then we should *not* try scrolling and |
| 1644 // instead reset the fling start time. | 1644 // instead reset the fling start time. |
| 1645 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); | 1645 EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()); |
| 1646 EXPECT_CALL(mock_input_handler_, | 1646 EXPECT_CALL(mock_input_handler_, |
| 1647 ScrollBy(testing::_, | 1647 ScrollBy(testing::_, |
| 1648 testing::_)).Times(0); | 1648 testing::_)).Times(0); |
| 1649 time -= base::TimeDelta::FromMilliseconds(5); | 1649 time -= base::TimeDelta::FromMilliseconds(5); |
| 1650 input_handler_->Animate(time); | 1650 input_handler_->Animate(time); |
| 1651 | 1651 |
| 1652 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); | 1652 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); |
| 1653 | 1653 |
| 1654 // The first call should have reset the start time so subsequent calls should | 1654 // The first call should have reset the start time so subsequent calls should |
| 1655 // generate scroll events. | 1655 // generate scroll events. |
| 1656 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); | 1656 EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()); |
| 1657 EXPECT_CALL(mock_input_handler_, | 1657 EXPECT_CALL(mock_input_handler_, |
| 1658 ScrollBy(testing::_, | 1658 ScrollBy(testing::_, |
| 1659 testing::Property(&gfx::Vector2dF::x, testing::Lt(0)))) | 1659 testing::Property(&gfx::Vector2dF::x, testing::Lt(0)))) |
| 1660 .WillOnce(testing::Return(scroll_result_did_scroll_)); | 1660 .WillOnce(testing::Return(scroll_result_did_scroll_)); |
| 1661 | 1661 |
| 1662 input_handler_->Animate(time + base::TimeDelta::FromMilliseconds(1)); | 1662 input_handler_->Animate(time + base::TimeDelta::FromMilliseconds(1)); |
| 1663 | 1663 |
| 1664 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); | 1664 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); |
| 1665 | 1665 |
| 1666 EXPECT_CALL(mock_input_handler_, ScrollEnd()); | 1666 EXPECT_CALL(mock_input_handler_, ScrollEnd()); |
| (...skipping 25 matching lines...) Expand all Loading... |
| 1692 gesture_.timeStampSeconds = InSecondsF(time); | 1692 gesture_.timeStampSeconds = InSecondsF(time); |
| 1693 gesture_.type = WebInputEvent::GestureScrollBegin; | 1693 gesture_.type = WebInputEvent::GestureScrollBegin; |
| 1694 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); | 1694 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); |
| 1695 | 1695 |
| 1696 VERIFY_AND_RESET_MOCKS(); | 1696 VERIFY_AND_RESET_MOCKS(); |
| 1697 | 1697 |
| 1698 // Animate calls within the deferred cancellation window should continue. | 1698 // Animate calls within the deferred cancellation window should continue. |
| 1699 time += dt; | 1699 time += dt; |
| 1700 float expected_delta = | 1700 float expected_delta = |
| 1701 (time - last_animate_time).InSecondsF() * -fling_delta.x; | 1701 (time - last_animate_time).InSecondsF() * -fling_delta.x; |
| 1702 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); | 1702 EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()); |
| 1703 EXPECT_CALL(mock_input_handler_, | 1703 EXPECT_CALL(mock_input_handler_, |
| 1704 ScrollBy(testing::_, | 1704 ScrollBy(testing::_, |
| 1705 testing::Property(&gfx::Vector2dF::x, | 1705 testing::Property(&gfx::Vector2dF::x, |
| 1706 testing::Eq(expected_delta)))) | 1706 testing::Eq(expected_delta)))) |
| 1707 .WillOnce(testing::Return(scroll_result_did_scroll_)); | 1707 .WillOnce(testing::Return(scroll_result_did_scroll_)); |
| 1708 input_handler_->Animate(time); | 1708 input_handler_->Animate(time); |
| 1709 last_animate_time = time; | 1709 last_animate_time = time; |
| 1710 | 1710 |
| 1711 VERIFY_AND_RESET_MOCKS(); | 1711 VERIFY_AND_RESET_MOCKS(); |
| 1712 | 1712 |
| 1713 // GestureScrollUpdates in the same direction and at sufficient speed should | 1713 // GestureScrollUpdates in the same direction and at sufficient speed should |
| 1714 // be swallowed by the fling. | 1714 // be swallowed by the fling. |
| 1715 time += dt; | 1715 time += dt; |
| 1716 gesture_.timeStampSeconds = InSecondsF(time); | 1716 gesture_.timeStampSeconds = InSecondsF(time); |
| 1717 gesture_.type = WebInputEvent::GestureScrollUpdate; | 1717 gesture_.type = WebInputEvent::GestureScrollUpdate; |
| 1718 gesture_.data.scrollUpdate.deltaX = fling_delta.x; | 1718 gesture_.data.scrollUpdate.deltaX = fling_delta.x; |
| 1719 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); | 1719 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); |
| 1720 | 1720 |
| 1721 VERIFY_AND_RESET_MOCKS(); | 1721 VERIFY_AND_RESET_MOCKS(); |
| 1722 | 1722 |
| 1723 // Animate calls within the deferred cancellation window should continue. | 1723 // Animate calls within the deferred cancellation window should continue. |
| 1724 time += dt; | 1724 time += dt; |
| 1725 expected_delta = (time - last_animate_time).InSecondsF() * -fling_delta.x; | 1725 expected_delta = (time - last_animate_time).InSecondsF() * -fling_delta.x; |
| 1726 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); | 1726 EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()); |
| 1727 EXPECT_CALL(mock_input_handler_, | 1727 EXPECT_CALL(mock_input_handler_, |
| 1728 ScrollBy(testing::_, | 1728 ScrollBy(testing::_, |
| 1729 testing::Property(&gfx::Vector2dF::x, | 1729 testing::Property(&gfx::Vector2dF::x, |
| 1730 testing::Eq(expected_delta)))) | 1730 testing::Eq(expected_delta)))) |
| 1731 .WillOnce(testing::Return(scroll_result_did_scroll_)); | 1731 .WillOnce(testing::Return(scroll_result_did_scroll_)); |
| 1732 input_handler_->Animate(time); | 1732 input_handler_->Animate(time); |
| 1733 last_animate_time = time; | 1733 last_animate_time = time; |
| 1734 | 1734 |
| 1735 VERIFY_AND_RESET_MOCKS(); | 1735 VERIFY_AND_RESET_MOCKS(); |
| 1736 | 1736 |
| 1737 // GestureFlingStart in the same direction and at sufficient speed should | 1737 // GestureFlingStart in the same direction and at sufficient speed should |
| 1738 // boost the active fling. | 1738 // boost the active fling. |
| 1739 | 1739 |
| 1740 gesture_ = CreateFling(time, | 1740 gesture_ = CreateFling(time, |
| 1741 blink::WebGestureDeviceTouchscreen, | 1741 blink::WebGestureDeviceTouchscreen, |
| 1742 fling_delta, | 1742 fling_delta, |
| 1743 fling_point, | 1743 fling_point, |
| 1744 fling_point, | 1744 fling_point, |
| 1745 0); | 1745 0); |
| 1746 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); | 1746 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); |
| 1747 VERIFY_AND_RESET_MOCKS(); | 1747 VERIFY_AND_RESET_MOCKS(); |
| 1748 | 1748 |
| 1749 time += dt; | 1749 time += dt; |
| 1750 // Note we get *2x* as much delta because 2 flings have combined. | 1750 // Note we get *2x* as much delta because 2 flings have combined. |
| 1751 expected_delta = 2 * (time - last_animate_time).InSecondsF() * -fling_delta.x; | 1751 expected_delta = 2 * (time - last_animate_time).InSecondsF() * -fling_delta.x; |
| 1752 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); | 1752 EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()); |
| 1753 EXPECT_CALL(mock_input_handler_, | 1753 EXPECT_CALL(mock_input_handler_, |
| 1754 ScrollBy(testing::_, | 1754 ScrollBy(testing::_, |
| 1755 testing::Property(&gfx::Vector2dF::x, | 1755 testing::Property(&gfx::Vector2dF::x, |
| 1756 testing::Eq(expected_delta)))) | 1756 testing::Eq(expected_delta)))) |
| 1757 .WillOnce(testing::Return(scroll_result_did_scroll_)); | 1757 .WillOnce(testing::Return(scroll_result_did_scroll_)); |
| 1758 input_handler_->Animate(time); | 1758 input_handler_->Animate(time); |
| 1759 last_animate_time = time; | 1759 last_animate_time = time; |
| 1760 | 1760 |
| 1761 VERIFY_AND_RESET_MOCKS(); | 1761 VERIFY_AND_RESET_MOCKS(); |
| 1762 | 1762 |
| 1763 // Repeated GestureFlingStarts should accumulate. | 1763 // Repeated GestureFlingStarts should accumulate. |
| 1764 | 1764 |
| 1765 CancelFling(time); | 1765 CancelFling(time); |
| 1766 gesture_ = CreateFling(time, | 1766 gesture_ = CreateFling(time, |
| 1767 blink::WebGestureDeviceTouchscreen, | 1767 blink::WebGestureDeviceTouchscreen, |
| 1768 fling_delta, | 1768 fling_delta, |
| 1769 fling_point, | 1769 fling_point, |
| 1770 fling_point, | 1770 fling_point, |
| 1771 0); | 1771 0); |
| 1772 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); | 1772 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); |
| 1773 VERIFY_AND_RESET_MOCKS(); | 1773 VERIFY_AND_RESET_MOCKS(); |
| 1774 | 1774 |
| 1775 time += dt; | 1775 time += dt; |
| 1776 // Note we get *3x* as much delta because 3 flings have combined. | 1776 // Note we get *3x* as much delta because 3 flings have combined. |
| 1777 expected_delta = 3 * (time - last_animate_time).InSecondsF() * -fling_delta.x; | 1777 expected_delta = 3 * (time - last_animate_time).InSecondsF() * -fling_delta.x; |
| 1778 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); | 1778 EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()); |
| 1779 EXPECT_CALL(mock_input_handler_, | 1779 EXPECT_CALL(mock_input_handler_, |
| 1780 ScrollBy(testing::_, | 1780 ScrollBy(testing::_, |
| 1781 testing::Property(&gfx::Vector2dF::x, | 1781 testing::Property(&gfx::Vector2dF::x, |
| 1782 testing::Eq(expected_delta)))) | 1782 testing::Eq(expected_delta)))) |
| 1783 .WillOnce(testing::Return(scroll_result_did_scroll_)); | 1783 .WillOnce(testing::Return(scroll_result_did_scroll_)); |
| 1784 input_handler_->Animate(time); | 1784 input_handler_->Animate(time); |
| 1785 last_animate_time = time; | 1785 last_animate_time = time; |
| 1786 | 1786 |
| 1787 VERIFY_AND_RESET_MOCKS(); | 1787 VERIFY_AND_RESET_MOCKS(); |
| 1788 | 1788 |
| (...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1894 fling_point, | 1894 fling_point, |
| 1895 0); | 1895 0); |
| 1896 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); | 1896 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); |
| 1897 | 1897 |
| 1898 VERIFY_AND_RESET_MOCKS(); | 1898 VERIFY_AND_RESET_MOCKS(); |
| 1899 | 1899 |
| 1900 // Note that the new fling delta uses the orthogonal, unboosted fling | 1900 // Note that the new fling delta uses the orthogonal, unboosted fling |
| 1901 // velocity. | 1901 // velocity. |
| 1902 time += dt; | 1902 time += dt; |
| 1903 float expected_delta = dt.InSecondsF() * -orthogonal_fling_delta.y; | 1903 float expected_delta = dt.InSecondsF() * -orthogonal_fling_delta.y; |
| 1904 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); | 1904 EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()); |
| 1905 EXPECT_CALL(mock_input_handler_, | 1905 EXPECT_CALL(mock_input_handler_, |
| 1906 ScrollBy(testing::_, | 1906 ScrollBy(testing::_, |
| 1907 testing::Property(&gfx::Vector2dF::y, | 1907 testing::Property(&gfx::Vector2dF::y, |
| 1908 testing::Eq(expected_delta)))) | 1908 testing::Eq(expected_delta)))) |
| 1909 .WillOnce(testing::Return(scroll_result_did_scroll_)); | 1909 .WillOnce(testing::Return(scroll_result_did_scroll_)); |
| 1910 input_handler_->Animate(time); | 1910 input_handler_->Animate(time); |
| 1911 | 1911 |
| 1912 VERIFY_AND_RESET_MOCKS(); | 1912 VERIFY_AND_RESET_MOCKS(); |
| 1913 } | 1913 } |
| 1914 | 1914 |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1979 fling_point, | 1979 fling_point, |
| 1980 fling_point, | 1980 fling_point, |
| 1981 0); | 1981 0); |
| 1982 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); | 1982 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); |
| 1983 | 1983 |
| 1984 VERIFY_AND_RESET_MOCKS(); | 1984 VERIFY_AND_RESET_MOCKS(); |
| 1985 | 1985 |
| 1986 // Note that the new fling delta uses the *slow*, unboosted fling velocity. | 1986 // Note that the new fling delta uses the *slow*, unboosted fling velocity. |
| 1987 time += dt; | 1987 time += dt; |
| 1988 float expected_delta = dt.InSecondsF() * -small_fling_delta.x; | 1988 float expected_delta = dt.InSecondsF() * -small_fling_delta.x; |
| 1989 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); | 1989 EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()); |
| 1990 EXPECT_CALL(mock_input_handler_, | 1990 EXPECT_CALL(mock_input_handler_, |
| 1991 ScrollBy(testing::_, | 1991 ScrollBy(testing::_, |
| 1992 testing::Property(&gfx::Vector2dF::x, | 1992 testing::Property(&gfx::Vector2dF::x, |
| 1993 testing::Eq(expected_delta)))) | 1993 testing::Eq(expected_delta)))) |
| 1994 .WillOnce(testing::Return(scroll_result_did_scroll_)); | 1994 .WillOnce(testing::Return(scroll_result_did_scroll_)); |
| 1995 input_handler_->Animate(time); | 1995 input_handler_->Animate(time); |
| 1996 | 1996 |
| 1997 VERIFY_AND_RESET_MOCKS(); | 1997 VERIFY_AND_RESET_MOCKS(); |
| 1998 } | 1998 } |
| 1999 | 1999 |
| (...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2109 TEST_F(InputHandlerProxyTest, DidReceiveInputEvent_ForFling) { | 2109 TEST_F(InputHandlerProxyTest, DidReceiveInputEvent_ForFling) { |
| 2110 testing::StrictMock< | 2110 testing::StrictMock< |
| 2111 MockInputHandlerProxyClientWithDidReceiveInputEvent> mock_client; | 2111 MockInputHandlerProxyClientWithDidReceiveInputEvent> mock_client; |
| 2112 input_handler_.reset( | 2112 input_handler_.reset( |
| 2113 new content::InputHandlerProxy(&mock_input_handler_, &mock_client)); | 2113 new content::InputHandlerProxy(&mock_input_handler_, &mock_client)); |
| 2114 | 2114 |
| 2115 gesture_.type = WebInputEvent::GestureFlingStart; | 2115 gesture_.type = WebInputEvent::GestureFlingStart; |
| 2116 WebFloatPoint fling_delta = WebFloatPoint(100, 100); | 2116 WebFloatPoint fling_delta = WebFloatPoint(100, 100); |
| 2117 gesture_.data.flingStart.velocityX = fling_delta.x; | 2117 gesture_.data.flingStart.velocityX = fling_delta.x; |
| 2118 gesture_.data.flingStart.velocityY = fling_delta.y; | 2118 gesture_.data.flingStart.velocityY = fling_delta.y; |
| 2119 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); | 2119 EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()); |
| 2120 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) | 2120 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) |
| 2121 .WillOnce(testing::Return(cc::InputHandler::SCROLL_STARTED)); | 2121 .WillOnce(testing::Return(cc::InputHandler::SCROLL_STARTED)); |
| 2122 EXPECT_CALL(mock_input_handler_, ScrollEnd()); | 2122 EXPECT_CALL(mock_input_handler_, ScrollEnd()); |
| 2123 EXPECT_CALL(mock_client, | 2123 EXPECT_CALL(mock_client, |
| 2124 DidReceiveInputEvent(Field(&WebInputEvent::type, | 2124 DidReceiveInputEvent(Field(&WebInputEvent::type, |
| 2125 WebInputEvent::GestureFlingStart))); | 2125 WebInputEvent::GestureFlingStart))); |
| 2126 EXPECT_EQ(InputHandlerProxy::DID_HANDLE, | 2126 EXPECT_EQ(InputHandlerProxy::DID_HANDLE, |
| 2127 input_handler_->HandleInputEvent(gesture_)); | 2127 input_handler_->HandleInputEvent(gesture_)); |
| 2128 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); | 2128 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); |
| 2129 testing::Mock::VerifyAndClearExpectations(&mock_client); | 2129 testing::Mock::VerifyAndClearExpectations(&mock_client); |
| 2130 | 2130 |
| 2131 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); | 2131 EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()); |
| 2132 EXPECT_CALL(mock_client, DidAnimateForInput()); | 2132 EXPECT_CALL(mock_client, DidAnimateForInput()); |
| 2133 base::TimeTicks time = base::TimeTicks() + base::TimeDelta::FromSeconds(10); | 2133 base::TimeTicks time = base::TimeTicks() + base::TimeDelta::FromSeconds(10); |
| 2134 input_handler_->Animate(time); | 2134 input_handler_->Animate(time); |
| 2135 | 2135 |
| 2136 testing::Mock::VerifyAndClearExpectations(&mock_client); | 2136 testing::Mock::VerifyAndClearExpectations(&mock_client); |
| 2137 } | 2137 } |
| 2138 | 2138 |
| 2139 } // namespace | 2139 } // namespace |
| 2140 } // namespace content | 2140 } // namespace content |
| OLD | NEW |