OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/render_widget_host_view_aura.h" | 5 #include "content/browser/renderer_host/render_widget_host_view_aura.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <tuple> | 10 #include <tuple> |
(...skipping 26 matching lines...) Expand all Loading... |
37 #include "content/browser/renderer_host/input/mouse_wheel_event_queue.h" | 37 #include "content/browser/renderer_host/input/mouse_wheel_event_queue.h" |
38 #include "content/browser/renderer_host/input/web_input_event_util.h" | 38 #include "content/browser/renderer_host/input/web_input_event_util.h" |
39 #include "content/browser/renderer_host/overscroll_controller.h" | 39 #include "content/browser/renderer_host/overscroll_controller.h" |
40 #include "content/browser/renderer_host/overscroll_controller_delegate.h" | 40 #include "content/browser/renderer_host/overscroll_controller_delegate.h" |
41 #include "content/browser/renderer_host/render_view_host_factory.h" | 41 #include "content/browser/renderer_host/render_view_host_factory.h" |
42 #include "content/browser/renderer_host/render_widget_host_delegate.h" | 42 #include "content/browser/renderer_host/render_widget_host_delegate.h" |
43 #include "content/browser/renderer_host/render_widget_host_impl.h" | 43 #include "content/browser/renderer_host/render_widget_host_impl.h" |
44 #include "content/browser/renderer_host/resize_lock.h" | 44 #include "content/browser/renderer_host/resize_lock.h" |
45 #include "content/browser/web_contents/web_contents_view_aura.h" | 45 #include "content/browser/web_contents/web_contents_view_aura.h" |
46 #include "content/common/host_shared_bitmap_manager.h" | 46 #include "content/common/host_shared_bitmap_manager.h" |
47 #include "content/common/input/input_event_utils.h" | |
48 #include "content/common/input/synthetic_web_input_event_builders.h" | 47 #include "content/common/input/synthetic_web_input_event_builders.h" |
49 #include "content/common/input_messages.h" | 48 #include "content/common/input_messages.h" |
50 #include "content/common/view_messages.h" | 49 #include "content/common/view_messages.h" |
51 #include "content/public/browser/render_widget_host_view.h" | 50 #include "content/public/browser/render_widget_host_view.h" |
52 #include "content/public/browser/render_widget_host_view_frame_subscriber.h" | 51 #include "content/public/browser/render_widget_host_view_frame_subscriber.h" |
53 #include "content/public/browser/web_contents_view_delegate.h" | 52 #include "content/public/browser/web_contents_view_delegate.h" |
54 #include "content/public/common/context_menu_params.h" | 53 #include "content/public/common/context_menu_params.h" |
55 #include "content/public/test/mock_render_process_host.h" | 54 #include "content/public/test/mock_render_process_host.h" |
56 #include "content/public/test/test_browser_context.h" | 55 #include "content/public/test/test_browser_context.h" |
57 #include "content/test/test_render_view_host.h" | 56 #include "content/test/test_render_view_host.h" |
(...skipping 551 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
609 class RenderWidgetHostViewAuraOverscrollTest | 608 class RenderWidgetHostViewAuraOverscrollTest |
610 : public RenderWidgetHostViewAuraTest { | 609 : public RenderWidgetHostViewAuraTest { |
611 public: | 610 public: |
612 RenderWidgetHostViewAuraOverscrollTest() {} | 611 RenderWidgetHostViewAuraOverscrollTest() {} |
613 | 612 |
614 // We explicitly invoke SetUp to allow gesture debounce customization. | 613 // We explicitly invoke SetUp to allow gesture debounce customization. |
615 void SetUp() override {} | 614 void SetUp() override {} |
616 | 615 |
617 protected: | 616 protected: |
618 void SetUpOverscrollEnvironmentWithDebounce(int debounce_interval_in_ms) { | 617 void SetUpOverscrollEnvironmentWithDebounce(int debounce_interval_in_ms) { |
619 SetUpOverscrollEnvironmentImpl(debounce_interval_in_ms, false); | 618 SetUpOverscrollEnvironmentImpl(debounce_interval_in_ms); |
620 } | 619 } |
621 | 620 |
622 void SetUpOverscrollEnvironmentWithWheelGestures() { | 621 void SetUpOverscrollEnvironment() { SetUpOverscrollEnvironmentImpl(0); } |
623 SetUpOverscrollEnvironmentImpl(0, true); | |
624 } | |
625 | 622 |
626 void SetUpOverscrollEnvironment() { | 623 void SetUpOverscrollEnvironmentImpl(int debounce_interval_in_ms) { |
627 SetUpOverscrollEnvironmentImpl(0, false); | |
628 } | |
629 | |
630 void SetUpOverscrollEnvironmentImpl(int debounce_interval_in_ms, | |
631 bool enable_wheel_gestures) { | |
632 CHECK(!base::CommandLine::ForCurrentProcess()->HasSwitch( | |
633 switches::kDisableWheelGestures) && | |
634 !base::CommandLine::ForCurrentProcess()->HasSwitch( | |
635 switches::kEnableWheelGestures)); | |
636 base::CommandLine::ForCurrentProcess()->AppendSwitch( | |
637 enable_wheel_gestures ? switches::kEnableWheelGestures | |
638 : switches::kDisableWheelGestures); | |
639 | |
640 ui::GestureConfiguration::GetInstance()->set_scroll_debounce_interval_in_ms( | 624 ui::GestureConfiguration::GetInstance()->set_scroll_debounce_interval_in_ms( |
641 debounce_interval_in_ms); | 625 debounce_interval_in_ms); |
642 | 626 |
643 RenderWidgetHostViewAuraTest::SetUp(); | 627 RenderWidgetHostViewAuraTest::SetUp(); |
644 | 628 |
645 view_->SetOverscrollControllerEnabled(true); | 629 view_->SetOverscrollControllerEnabled(true); |
646 overscroll_delegate_.reset(new TestOverscrollDelegate(view_)); | 630 overscroll_delegate_.reset(new TestOverscrollDelegate(view_)); |
647 view_->overscroll_controller()->set_delegate(overscroll_delegate_.get()); | 631 view_->overscroll_controller()->set_delegate(overscroll_delegate_.get()); |
648 | 632 |
649 view_->InitAsChild(NULL); | 633 view_->InitAsChild(NULL); |
(...skipping 1970 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2620 press.set_location_f(gfx::PointF(kX, kY)); | 2604 press.set_location_f(gfx::PointF(kX, kY)); |
2621 press.set_root_location_f(gfx::PointF(kX, kY)); | 2605 press.set_root_location_f(gfx::PointF(kX, kY)); |
2622 | 2606 |
2623 view_->OnTouchEvent(&press); | 2607 view_->OnTouchEvent(&press); |
2624 EXPECT_EQ(ui::MotionEvent::ACTION_DOWN, pointer_state().GetAction()); | 2608 EXPECT_EQ(ui::MotionEvent::ACTION_DOWN, pointer_state().GetAction()); |
2625 EXPECT_EQ(1U, pointer_state().GetPointerCount()); | 2609 EXPECT_EQ(1U, pointer_state().GetPointerCount()); |
2626 EXPECT_EQ(kX, pointer_state().GetX(0)); | 2610 EXPECT_EQ(kX, pointer_state().GetX(0)); |
2627 EXPECT_EQ(kY, pointer_state().GetY(0)); | 2611 EXPECT_EQ(kY, pointer_state().GetY(0)); |
2628 } | 2612 } |
2629 | 2613 |
2630 // Tests that scroll ACKs are correctly handled by the overscroll-navigation | |
2631 // controller. | |
2632 TEST_F(RenderWidgetHostViewAuraOverscrollTest, WheelScrollEventOverscrolls) { | 2614 TEST_F(RenderWidgetHostViewAuraOverscrollTest, WheelScrollEventOverscrolls) { |
2633 SetUpOverscrollEnvironment(); | 2615 SetUpOverscrollEnvironment(); |
2634 | 2616 |
2635 // Simulate wheel events. | 2617 // Simulate wheel events. |
2636 SimulateWheelEvent(-5, 0, 0, true); // sent directly | 2618 SimulateWheelEvent(-5, 0, 0, true); // sent directly |
2637 SimulateWheelEvent(-1, 1, 0, true); // enqueued | 2619 SimulateWheelEvent(-1, 1, 0, true); // enqueued |
2638 SimulateWheelEvent(-10, -3, 0, true); // coalesced into previous event | 2620 SimulateWheelEvent(-10, -3, 0, true); // coalesced into previous event |
2639 SimulateWheelEvent(-15, -1, 0, true); // coalesced into previous event | 2621 SimulateWheelEvent(-15, -1, 0, true); // coalesced into previous event |
2640 SimulateWheelEvent(-30, -3, 0, true); // coalesced into previous event | 2622 SimulateWheelEvent(-30, -3, 0, true); // coalesced into previous event |
2641 SimulateWheelEvent(-20, 6, 1, true); // enqueued, different modifiers | 2623 SimulateWheelEvent(-20, 6, 1, true); // enqueued, different modifiers |
2642 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); | 2624 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); |
2643 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); | 2625 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
2644 | 2626 |
2645 // Receive ACK the first wheel event as not processed. | 2627 // Receive ACK the first wheel event as not processed. |
2646 SendInputEventACK(WebInputEvent::MouseWheel, | 2628 SendInputEventACK(WebInputEvent::MouseWheel, |
2647 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 2629 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
2648 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); | |
2649 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); | |
2650 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); | |
2651 | |
2652 // Receive ACK for the second (coalesced) event as not processed. This will | |
2653 // start a back navigation. However, this will also cause the queued next | |
2654 // event to be sent to the renderer. But since overscroll navigation has | |
2655 // started, that event will also be included in the overscroll computation | |
2656 // instead of being sent to the renderer. So the result will be an overscroll | |
2657 // back navigation, and no event will be sent to the renderer. | |
2658 SendInputEventACK(WebInputEvent::MouseWheel, | |
2659 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | |
2660 EXPECT_EQ(OVERSCROLL_WEST, overscroll_mode()); | |
2661 EXPECT_EQ(OVERSCROLL_WEST, overscroll_delegate()->current_mode()); | |
2662 EXPECT_EQ(-81.f, overscroll_delta_x()); | |
2663 EXPECT_EQ(-31.f, overscroll_delegate()->delta_x()); | |
2664 EXPECT_EQ(0.f, overscroll_delegate()->delta_y()); | |
2665 EXPECT_EQ(0U, sink_->message_count()); | |
2666 | |
2667 // Send a mouse-move event. This should cancel the overscroll navigation. | |
2668 SimulateMouseMove(5, 10, 0); | |
2669 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); | |
2670 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); | |
2671 EXPECT_EQ(1U, sink_->message_count()); | |
2672 } | |
2673 | |
2674 // Disabled on MacOS because it doesn't support wheel gestures | |
2675 // just yet. | |
2676 #if defined(OS_MACOSX) | |
2677 #define MAYBE_WheelScrollEventOverscrollsWithWheelGestures \ | |
2678 DISABLED_WheelScrollEventOverscrollsWithWheelGestures | |
2679 #else | |
2680 #define MAYBE_WheelScrollEventOverscrollsWithWheelGestures \ | |
2681 WheelScrollEventOverscrollsWithWheelGestures | |
2682 #endif | |
2683 TEST_F(RenderWidgetHostViewAuraOverscrollTest, | |
2684 MAYBE_WheelScrollEventOverscrollsWithWheelGestures) { | |
2685 SetUpOverscrollEnvironmentWithWheelGestures(); | |
2686 | |
2687 // Simulate wheel events. | |
2688 SimulateWheelEvent(-5, 0, 0, true); // sent directly | |
2689 SimulateWheelEvent(-1, 1, 0, true); // enqueued | |
2690 SimulateWheelEvent(-10, -3, 0, true); // coalesced into previous event | |
2691 SimulateWheelEvent(-15, -1, 0, true); // coalesced into previous event | |
2692 SimulateWheelEvent(-30, -3, 0, true); // coalesced into previous event | |
2693 SimulateWheelEvent(-20, 6, 1, true); // enqueued, different modifiers | |
2694 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); | |
2695 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); | |
2696 | |
2697 // Receive ACK the first wheel event as not processed. | |
2698 SendInputEventACK(WebInputEvent::MouseWheel, | |
2699 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | |
2700 | 2630 |
2701 // ScrollBegin, ScrollUpdate, MouseWheel will be queued events | 2631 // ScrollBegin, ScrollUpdate, MouseWheel will be queued events |
2702 EXPECT_EQ(3U, GetSentMessageCountAndResetSink()); | 2632 EXPECT_EQ(3U, GetSentMessageCountAndResetSink()); |
2703 SendInputEventACK(WebInputEvent::GestureScrollUpdate, | 2633 SendInputEventACK(WebInputEvent::GestureScrollUpdate, |
2704 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 2634 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
2705 | 2635 |
2706 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); | 2636 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); |
2707 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); | 2637 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); |
2708 | 2638 |
2709 // Receive ACK for the second (coalesced) event as not processed. This will | 2639 // Receive ACK for the second (coalesced) event as not processed. This will |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2745 SimulateWheelEvent(-5, 0, 0, true); // sent directly | 2675 SimulateWheelEvent(-5, 0, 0, true); // sent directly |
2746 SimulateWheelEvent(-1, -1, 0, true); // enqueued | 2676 SimulateWheelEvent(-1, -1, 0, true); // enqueued |
2747 SimulateWheelEvent(-10, -3, 0, true); // coalesced into previous event | 2677 SimulateWheelEvent(-10, -3, 0, true); // coalesced into previous event |
2748 SimulateWheelEvent(-15, -1, 0, true); // coalesced into previous event | 2678 SimulateWheelEvent(-15, -1, 0, true); // coalesced into previous event |
2749 SimulateWheelEvent(-30, -3, 0, true); // coalesced into previous event | 2679 SimulateWheelEvent(-30, -3, 0, true); // coalesced into previous event |
2750 SimulateWheelEvent(-20, 6, 1, true); // enqueued, different modifiers | 2680 SimulateWheelEvent(-20, 6, 1, true); // enqueued, different modifiers |
2751 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); | 2681 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); |
2752 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); | 2682 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
2753 | 2683 |
2754 // Receive ACK the first wheel event as processed. | 2684 // Receive ACK the first wheel event as processed. |
2755 SendInputEventACK(WebInputEvent::MouseWheel, INPUT_EVENT_ACK_STATE_CONSUMED); | |
2756 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); | |
2757 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); | |
2758 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); | |
2759 | |
2760 // Receive ACK for the second (coalesced) event as not processed. This should | |
2761 // not initiate overscroll, since the beginning of the scroll has been | |
2762 // consumed. The queued event with different modifiers should be sent to the | |
2763 // renderer. | |
2764 SendInputEventACK(WebInputEvent::MouseWheel, | |
2765 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | |
2766 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); | |
2767 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); | |
2768 | |
2769 SendInputEventACK(WebInputEvent::MouseWheel, | |
2770 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | |
2771 EXPECT_EQ(0U, sink_->message_count()); | |
2772 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); | |
2773 | |
2774 // Indicate the end of the scrolling from the touchpad. | |
2775 SimulateGestureEvent(WebInputEvent::GestureScrollBegin, | |
2776 blink::WebGestureDeviceTouchscreen); | |
2777 SimulateGestureFlingStartEvent(-1200.f, 0.f, blink::WebGestureDeviceTouchpad); | |
2778 EXPECT_EQ(2U, GetSentMessageCountAndResetSink()); | |
2779 | |
2780 // Start another scroll. This time, do not consume any scroll events. | |
2781 SimulateWheelEvent(0, -5, 0, true); // sent directly | |
2782 SimulateWheelEvent(0, -1, 0, true); // enqueued | |
2783 SimulateWheelEvent(-10, -3, 0, true); // coalesced into previous event | |
2784 SimulateWheelEvent(-15, -1, 0, true); // coalesced into previous event | |
2785 SimulateWheelEvent(-30, -3, 0, true); // coalesced into previous event | |
2786 SimulateWheelEvent(-20, 6, 1, true); // enqueued, different modifiers | |
2787 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); | |
2788 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); | |
2789 | |
2790 // Receive ACK for the first wheel and the subsequent coalesced event as not | |
2791 // processed. This should start a back-overscroll. | |
2792 SendInputEventACK(WebInputEvent::MouseWheel, | |
2793 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | |
2794 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); | |
2795 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); | |
2796 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); | |
2797 SendInputEventACK(WebInputEvent::MouseWheel, | |
2798 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | |
2799 EXPECT_EQ(OVERSCROLL_WEST, overscroll_mode()); | |
2800 } | |
2801 | |
2802 // Tests that if some scroll events are consumed towards the start, then | |
2803 // subsequent scrolls do not horizontal overscroll. | |
2804 // Disabled on MacOS because it doesn't support wheel gestures | |
2805 // just yet. | |
2806 #if defined(OS_MACOSX) | |
2807 #define MAYBE_WheelScrollConsumedDoNotHorizOverscrollWithWheelGestures \ | |
2808 DISABLED_WheelScrollConsumedDoNotHorizOverscrollWithWheelGestures | |
2809 #else | |
2810 #define MAYBE_WheelScrollConsumedDoNotHorizOverscrollWithWheelGestures \ | |
2811 WheelScrollConsumedDoNotHorizOverscrollWithWheelGestures | |
2812 #endif | |
2813 TEST_F(RenderWidgetHostViewAuraOverscrollTest, | |
2814 MAYBE_WheelScrollConsumedDoNotHorizOverscrollWithWheelGestures) { | |
2815 SetUpOverscrollEnvironmentWithWheelGestures(); | |
2816 | |
2817 // Simulate wheel events. | |
2818 SimulateWheelEvent(-5, 0, 0, true); // sent directly | |
2819 SimulateWheelEvent(-1, -1, 0, true); // enqueued | |
2820 SimulateWheelEvent(-10, -3, 0, true); // coalesced into previous event | |
2821 SimulateWheelEvent(-15, -1, 0, true); // coalesced into previous event | |
2822 SimulateWheelEvent(-30, -3, 0, true); // coalesced into previous event | |
2823 SimulateWheelEvent(-20, 6, 1, true); // enqueued, different modifiers | |
2824 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); | |
2825 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); | |
2826 | |
2827 // Receive ACK the first wheel event as processed. | |
2828 SendInputEventACK(WebInputEvent::MouseWheel, | 2685 SendInputEventACK(WebInputEvent::MouseWheel, |
2829 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 2686 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
2830 // ScrollBegin, ScrollUpdate, MouseWheel will be queued events | 2687 // ScrollBegin, ScrollUpdate, MouseWheel will be queued events |
2831 EXPECT_EQ(3U, GetSentMessageCountAndResetSink()); | 2688 EXPECT_EQ(3U, GetSentMessageCountAndResetSink()); |
2832 SendInputEventACK(WebInputEvent::GestureScrollUpdate, | 2689 SendInputEventACK(WebInputEvent::GestureScrollUpdate, |
2833 INPUT_EVENT_ACK_STATE_CONSUMED); | 2690 INPUT_EVENT_ACK_STATE_CONSUMED); |
2834 | 2691 |
2835 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); | 2692 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); |
2836 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); | 2693 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); |
2837 | 2694 |
(...skipping 20 matching lines...) Expand all Loading... |
2858 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); | 2715 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); |
2859 } | 2716 } |
2860 | 2717 |
2861 // Tests that wheel-scrolling correctly turns overscroll on and off. | 2718 // Tests that wheel-scrolling correctly turns overscroll on and off. |
2862 TEST_F(RenderWidgetHostViewAuraOverscrollTest, WheelScrollOverscrollToggle) { | 2719 TEST_F(RenderWidgetHostViewAuraOverscrollTest, WheelScrollOverscrollToggle) { |
2863 SetUpOverscrollEnvironment(); | 2720 SetUpOverscrollEnvironment(); |
2864 | 2721 |
2865 // Send a wheel event. ACK the event as not processed. This should not | 2722 // Send a wheel event. ACK the event as not processed. This should not |
2866 // initiate an overscroll gesture since it doesn't cross the threshold yet. | 2723 // initiate an overscroll gesture since it doesn't cross the threshold yet. |
2867 SimulateWheelEvent(10, 0, 0, true); | 2724 SimulateWheelEvent(10, 0, 0, true); |
2868 SendInputEventACK(WebInputEvent::MouseWheel, | |
2869 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | |
2870 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); | |
2871 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); | |
2872 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); | |
2873 | |
2874 // Scroll some more so as to not overscroll. | |
2875 SimulateWheelEvent(10, 0, 0, true); | |
2876 SendInputEventACK(WebInputEvent::MouseWheel, | |
2877 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | |
2878 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); | |
2879 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); | |
2880 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); | |
2881 | |
2882 // Scroll some more to initiate an overscroll. | |
2883 SimulateWheelEvent(40, 0, 0, true); | |
2884 SendInputEventACK(WebInputEvent::MouseWheel, | |
2885 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | |
2886 EXPECT_EQ(OVERSCROLL_EAST, overscroll_mode()); | |
2887 EXPECT_EQ(OVERSCROLL_EAST, overscroll_delegate()->current_mode()); | |
2888 EXPECT_EQ(60.f, overscroll_delta_x()); | |
2889 EXPECT_EQ(10.f, overscroll_delegate()->delta_x()); | |
2890 EXPECT_EQ(0.f, overscroll_delegate()->delta_y()); | |
2891 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); | |
2892 | |
2893 // Scroll in the reverse direction enough to abort the overscroll. | |
2894 SimulateWheelEvent(-20, 0, 0, true); | |
2895 EXPECT_EQ(0U, sink_->message_count()); | |
2896 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); | |
2897 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); | |
2898 | |
2899 // Continue to scroll in the reverse direction. | |
2900 SimulateWheelEvent(-20, 0, 0, true); | |
2901 SendInputEventACK(WebInputEvent::MouseWheel, | |
2902 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | |
2903 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); | |
2904 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); | |
2905 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); | |
2906 | |
2907 // Continue to scroll in the reverse direction enough to initiate overscroll | |
2908 // in that direction. | |
2909 SimulateWheelEvent(-55, 0, 0, true); | |
2910 EXPECT_EQ(1U, sink_->message_count()); | |
2911 SendInputEventACK(WebInputEvent::MouseWheel, | |
2912 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | |
2913 EXPECT_EQ(OVERSCROLL_WEST, overscroll_mode()); | |
2914 EXPECT_EQ(OVERSCROLL_WEST, overscroll_delegate()->current_mode()); | |
2915 EXPECT_EQ(-75.f, overscroll_delta_x()); | |
2916 EXPECT_EQ(-25.f, overscroll_delegate()->delta_x()); | |
2917 EXPECT_EQ(0.f, overscroll_delegate()->delta_y()); | |
2918 } | |
2919 | |
2920 // Tests that wheel-scrolling correctly turns overscroll on and off. | |
2921 // Disabled on MacOS because it doesn't support wheel gestures | |
2922 // just yet. | |
2923 #if defined(OS_MACOSX) | |
2924 #define MAYBE_WheelScrollOverscrollToggleWithWheelGestures \ | |
2925 DISABLED_WheelScrollOverscrollToggleWithWheelGestures | |
2926 #else | |
2927 #define MAYBE_WheelScrollOverscrollToggleWithWheelGestures \ | |
2928 WheelScrollOverscrollToggleWithWheelGestures | |
2929 #endif | |
2930 TEST_F(RenderWidgetHostViewAuraOverscrollTest, | |
2931 MAYBE_WheelScrollOverscrollToggleWithWheelGestures) { | |
2932 SetUpOverscrollEnvironmentWithWheelGestures(); | |
2933 | |
2934 // Send a wheel event. ACK the event as not processed. This should not | |
2935 // initiate an overscroll gesture since it doesn't cross the threshold yet. | |
2936 SimulateWheelEvent(10, 0, 0, true); | |
2937 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); | 2725 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
2938 SendInputEventACK(WebInputEvent::MouseWheel, | 2726 SendInputEventACK(WebInputEvent::MouseWheel, |
2939 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 2727 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
2940 EXPECT_EQ(2U, GetSentMessageCountAndResetSink()); | 2728 EXPECT_EQ(2U, GetSentMessageCountAndResetSink()); |
2941 SendInputEventACK(WebInputEvent::GestureScrollUpdate, | 2729 SendInputEventACK(WebInputEvent::GestureScrollUpdate, |
2942 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 2730 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
2943 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); | 2731 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); |
2944 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); | 2732 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); |
2945 | 2733 |
2946 // Scroll some more so as to not overscroll. | 2734 // Scroll some more so as to not overscroll. |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3006 EXPECT_EQ(0.f, overscroll_delegate()->delta_y()); | 2794 EXPECT_EQ(0.f, overscroll_delegate()->delta_y()); |
3007 } | 2795 } |
3008 | 2796 |
3009 TEST_F(RenderWidgetHostViewAuraOverscrollTest, | 2797 TEST_F(RenderWidgetHostViewAuraOverscrollTest, |
3010 ScrollEventsOverscrollWithFling) { | 2798 ScrollEventsOverscrollWithFling) { |
3011 SetUpOverscrollEnvironment(); | 2799 SetUpOverscrollEnvironment(); |
3012 | 2800 |
3013 // Send a wheel event. ACK the event as not processed. This should not | 2801 // Send a wheel event. ACK the event as not processed. This should not |
3014 // initiate an overscroll gesture since it doesn't cross the threshold yet. | 2802 // initiate an overscroll gesture since it doesn't cross the threshold yet. |
3015 SimulateWheelEvent(10, 0, 0, true); | 2803 SimulateWheelEvent(10, 0, 0, true); |
3016 SendInputEventACK(WebInputEvent::MouseWheel, | |
3017 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | |
3018 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); | |
3019 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); | |
3020 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); | |
3021 | |
3022 // Scroll some more so as to not overscroll. | |
3023 SimulateWheelEvent(20, 0, 0, true); | |
3024 EXPECT_EQ(1U, sink_->message_count()); | |
3025 SendInputEventACK(WebInputEvent::MouseWheel, | |
3026 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | |
3027 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); | |
3028 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); | |
3029 sink_->ClearMessages(); | |
3030 | |
3031 // Scroll some more to initiate an overscroll. | |
3032 SimulateWheelEvent(30, 0, 0, true); | |
3033 SendInputEventACK(WebInputEvent::MouseWheel, | |
3034 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | |
3035 EXPECT_EQ(OVERSCROLL_EAST, overscroll_mode()); | |
3036 EXPECT_EQ(OVERSCROLL_EAST, overscroll_delegate()->current_mode()); | |
3037 EXPECT_EQ(60.f, overscroll_delta_x()); | |
3038 EXPECT_EQ(10.f, overscroll_delegate()->delta_x()); | |
3039 EXPECT_EQ(0.f, overscroll_delegate()->delta_y()); | |
3040 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); | |
3041 | |
3042 // Send a fling start, but with a small velocity, so that the overscroll is | |
3043 // aborted. The fling should proceed to the renderer, through the gesture | |
3044 // event filter. | |
3045 SimulateGestureEvent(WebInputEvent::GestureScrollBegin, | |
3046 blink::WebGestureDeviceTouchscreen); | |
3047 SimulateGestureFlingStartEvent(0.f, 0.1f, blink::WebGestureDeviceTouchpad); | |
3048 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); | |
3049 EXPECT_EQ(2U, sink_->message_count()); | |
3050 } | |
3051 | |
3052 // Disabled on MacOS because it doesn't support wheel gestures | |
3053 // just yet. | |
3054 #if defined(OS_MACOSX) | |
3055 #define MAYBE_ScrollEventsOverscrollWithFlingAndWheelGestures \ | |
3056 DISABLED_ScrollEventsOverscrollWithFlingAndWheelGestures | |
3057 #else | |
3058 #define MAYBE_ScrollEventsOverscrollWithFlingAndWheelGestures \ | |
3059 ScrollEventsOverscrollWithFlingAndWheelGestures | |
3060 #endif | |
3061 TEST_F(RenderWidgetHostViewAuraOverscrollTest, | |
3062 MAYBE_ScrollEventsOverscrollWithFlingAndWheelGestures) { | |
3063 SetUpOverscrollEnvironmentWithWheelGestures(); | |
3064 | |
3065 // Send a wheel event. ACK the event as not processed. This should not | |
3066 // initiate an overscroll gesture since it doesn't cross the threshold yet. | |
3067 SimulateWheelEvent(10, 0, 0, true); | |
3068 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); | 2804 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
3069 SendInputEventACK(WebInputEvent::MouseWheel, | 2805 SendInputEventACK(WebInputEvent::MouseWheel, |
3070 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 2806 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
3071 EXPECT_EQ(2U, GetSentMessageCountAndResetSink()); | 2807 EXPECT_EQ(2U, GetSentMessageCountAndResetSink()); |
3072 SendInputEventACK(WebInputEvent::GestureScrollUpdate, | 2808 SendInputEventACK(WebInputEvent::GestureScrollUpdate, |
3073 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 2809 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
3074 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); | 2810 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); |
3075 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); | 2811 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); |
3076 EXPECT_EQ(0U, GetSentMessageCountAndResetSink()); | 2812 EXPECT_EQ(0U, GetSentMessageCountAndResetSink()); |
3077 | 2813 |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3113 | 2849 |
3114 // Same as ScrollEventsOverscrollWithFling, but with zero velocity. Checks that | 2850 // Same as ScrollEventsOverscrollWithFling, but with zero velocity. Checks that |
3115 // the zero-velocity fling does not reach the renderer. | 2851 // the zero-velocity fling does not reach the renderer. |
3116 TEST_F(RenderWidgetHostViewAuraOverscrollTest, | 2852 TEST_F(RenderWidgetHostViewAuraOverscrollTest, |
3117 ScrollEventsOverscrollWithZeroFling) { | 2853 ScrollEventsOverscrollWithZeroFling) { |
3118 SetUpOverscrollEnvironment(); | 2854 SetUpOverscrollEnvironment(); |
3119 | 2855 |
3120 // Send a wheel event. ACK the event as not processed. This should not | 2856 // Send a wheel event. ACK the event as not processed. This should not |
3121 // initiate an overscroll gesture since it doesn't cross the threshold yet. | 2857 // initiate an overscroll gesture since it doesn't cross the threshold yet. |
3122 SimulateWheelEvent(10, 0, 0, true); | 2858 SimulateWheelEvent(10, 0, 0, true); |
3123 SendInputEventACK(WebInputEvent::MouseWheel, | |
3124 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | |
3125 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); | |
3126 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); | |
3127 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); | |
3128 | |
3129 // Scroll some more so as to not overscroll. | |
3130 SimulateWheelEvent(20, 0, 0, true); | |
3131 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); | |
3132 SendInputEventACK(WebInputEvent::MouseWheel, | |
3133 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | |
3134 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); | |
3135 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); | |
3136 | |
3137 // Scroll some more to initiate an overscroll. | |
3138 SimulateWheelEvent(30, 0, 0, true); | |
3139 SendInputEventACK(WebInputEvent::MouseWheel, | |
3140 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | |
3141 EXPECT_EQ(OVERSCROLL_EAST, overscroll_mode()); | |
3142 EXPECT_EQ(OVERSCROLL_EAST, overscroll_delegate()->current_mode()); | |
3143 EXPECT_EQ(60.f, overscroll_delta_x()); | |
3144 EXPECT_EQ(10.f, overscroll_delegate()->delta_x()); | |
3145 EXPECT_EQ(0.f, overscroll_delegate()->delta_y()); | |
3146 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); | |
3147 | |
3148 // Send a fling start, but with a small velocity, so that the overscroll is | |
3149 // aborted. The fling should proceed to the renderer, through the gesture | |
3150 // event filter. | |
3151 SimulateGestureEvent(WebInputEvent::GestureScrollBegin, | |
3152 blink::WebGestureDeviceTouchscreen); | |
3153 SimulateGestureFlingStartEvent(10.f, 0.f, blink::WebGestureDeviceTouchpad); | |
3154 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); | |
3155 EXPECT_EQ(2U, sink_->message_count()); | |
3156 } | |
3157 | |
3158 // Same as ScrollEventsOverscrollWithFling, but with zero velocity. Checks that | |
3159 // the zero-velocity fling does not reach the renderer. | |
3160 // Disabled on MacOS because it doesn't support wheel gestures | |
3161 // just yet. | |
3162 #if defined(OS_MACOSX) | |
3163 #define MAYBE_ScrollEventsOverscrollWithZeroFlingAndWheelGestures \ | |
3164 DISABLED_ScrollEventsOverscrollWithZeroFlingAndWheelGestures | |
3165 #else | |
3166 #define MAYBE_ScrollEventsOverscrollWithZeroFlingAndWheelGestures \ | |
3167 ScrollEventsOverscrollWithZeroFlingAndWheelGestures | |
3168 #endif | |
3169 TEST_F(RenderWidgetHostViewAuraOverscrollTest, | |
3170 MAYBE_ScrollEventsOverscrollWithZeroFlingAndWheelGestures) { | |
3171 SetUpOverscrollEnvironmentWithWheelGestures(); | |
3172 | |
3173 // Send a wheel event. ACK the event as not processed. This should not | |
3174 // initiate an overscroll gesture since it doesn't cross the threshold yet. | |
3175 SimulateWheelEvent(10, 0, 0, true); | |
3176 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); | 2859 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
3177 SendInputEventACK(WebInputEvent::MouseWheel, | 2860 SendInputEventACK(WebInputEvent::MouseWheel, |
3178 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 2861 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
3179 EXPECT_EQ(2U, GetSentMessageCountAndResetSink()); | 2862 EXPECT_EQ(2U, GetSentMessageCountAndResetSink()); |
3180 SendInputEventACK(WebInputEvent::GestureScrollUpdate, | 2863 SendInputEventACK(WebInputEvent::GestureScrollUpdate, |
3181 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 2864 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
3182 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); | 2865 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); |
3183 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); | 2866 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); |
3184 EXPECT_EQ(0U, GetSentMessageCountAndResetSink()); | 2867 EXPECT_EQ(0U, GetSentMessageCountAndResetSink()); |
3185 | 2868 |
(...skipping 480 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3666 | 3349 |
3667 TEST_F(RenderWidgetHostViewAuraOverscrollTest, | 3350 TEST_F(RenderWidgetHostViewAuraOverscrollTest, |
3668 OverscrollDirectionChangeMouseWheel) { | 3351 OverscrollDirectionChangeMouseWheel) { |
3669 SetUpOverscrollEnvironment(); | 3352 SetUpOverscrollEnvironment(); |
3670 | 3353 |
3671 // Send wheel event and receive ack as not consumed. | 3354 // Send wheel event and receive ack as not consumed. |
3672 SimulateWheelEvent(125, -5, 0, true); | 3355 SimulateWheelEvent(125, -5, 0, true); |
3673 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); | 3356 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
3674 SendInputEventACK(WebInputEvent::MouseWheel, | 3357 SendInputEventACK(WebInputEvent::MouseWheel, |
3675 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 3358 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
3676 EXPECT_EQ(OVERSCROLL_EAST, overscroll_mode()); | |
3677 EXPECT_EQ(OVERSCROLL_EAST, overscroll_delegate()->current_mode()); | |
3678 EXPECT_EQ(0U, sink_->message_count()); | |
3679 | |
3680 // Send another wheel event, but in the reverse direction. The overscroll | |
3681 // controller will not consume the event, because it is not triggering | |
3682 // gesture-nav. | |
3683 SimulateWheelEvent(-260, 0, 0, true); | |
3684 EXPECT_EQ(1U, sink_->message_count()); | |
3685 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); | |
3686 | |
3687 // Since the overscroll mode has been reset, the next wheel event should reach | |
3688 // the renderer. | |
3689 SimulateWheelEvent(-20, 0, 0, true); | |
3690 EXPECT_EQ(1U, sink_->message_count()); | |
3691 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); | |
3692 } | |
3693 | |
3694 // Disabled on MacOS because it doesn't support wheel gestures | |
3695 // just yet. | |
3696 #if defined(OS_MACOSX) | |
3697 #define MAYBE_OverscrollDirectionChangeMouseWheelWithWheelGestures \ | |
3698 DISABLED_OverscrollDirectionChangeMouseWheelWithWheelGestures | |
3699 #else | |
3700 #define MAYBE_OverscrollDirectionChangeMouseWheelWithWheelGestures \ | |
3701 OverscrollDirectionChangeMouseWheelWithWheelGestures | |
3702 #endif | |
3703 TEST_F(RenderWidgetHostViewAuraOverscrollTest, | |
3704 MAYBE_OverscrollDirectionChangeMouseWheelWithWheelGestures) { | |
3705 SetUpOverscrollEnvironmentWithWheelGestures(); | |
3706 | |
3707 // Send wheel event and receive ack as not consumed. | |
3708 SimulateWheelEvent(125, -5, 0, true); | |
3709 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); | |
3710 SendInputEventACK(WebInputEvent::MouseWheel, | |
3711 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | |
3712 | 3359 |
3713 // ScrollBegin, ScrollUpdate messages. | 3360 // ScrollBegin, ScrollUpdate messages. |
3714 EXPECT_EQ(2U, GetSentMessageCountAndResetSink()); | 3361 EXPECT_EQ(2U, GetSentMessageCountAndResetSink()); |
3715 SendInputEventACK(WebInputEvent::GestureScrollUpdate, | 3362 SendInputEventACK(WebInputEvent::GestureScrollUpdate, |
3716 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 3363 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
3717 EXPECT_EQ(OVERSCROLL_EAST, overscroll_mode()); | 3364 EXPECT_EQ(OVERSCROLL_EAST, overscroll_mode()); |
3718 EXPECT_EQ(OVERSCROLL_EAST, overscroll_delegate()->current_mode()); | 3365 EXPECT_EQ(OVERSCROLL_EAST, overscroll_delegate()->current_mode()); |
3719 | 3366 |
3720 // Send another wheel event, but in the reverse direction. The overscroll | 3367 // Send another wheel event, but in the reverse direction. The overscroll |
3721 // controller will not consume the event, because it is not triggering | 3368 // controller will not consume the event, because it is not triggering |
(...skipping 17 matching lines...) Expand all Loading... |
3739 SendInputEventACK(WebInputEvent::MouseWheel, | 3386 SendInputEventACK(WebInputEvent::MouseWheel, |
3740 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 3387 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
3741 | 3388 |
3742 // wheel event ack generates gesture scroll update; which gets consumed | 3389 // wheel event ack generates gesture scroll update; which gets consumed |
3743 // solely by the overflow controller. | 3390 // solely by the overflow controller. |
3744 EXPECT_EQ(0U, GetSentMessageCountAndResetSink()); | 3391 EXPECT_EQ(0U, GetSentMessageCountAndResetSink()); |
3745 EXPECT_EQ(OVERSCROLL_WEST, overscroll_mode()); | 3392 EXPECT_EQ(OVERSCROLL_WEST, overscroll_mode()); |
3746 EXPECT_EQ(OVERSCROLL_WEST, overscroll_delegate()->current_mode()); | 3393 EXPECT_EQ(OVERSCROLL_WEST, overscroll_delegate()->current_mode()); |
3747 } | 3394 } |
3748 | 3395 |
3749 // Tests that if a mouse-move event completes the overscroll gesture, future | |
3750 // move events do reach the renderer. | |
3751 TEST_F(RenderWidgetHostViewAuraOverscrollTest, OverscrollMouseMoveCompletion) { | 3396 TEST_F(RenderWidgetHostViewAuraOverscrollTest, OverscrollMouseMoveCompletion) { |
3752 SetUpOverscrollEnvironment(); | 3397 SetUpOverscrollEnvironment(); |
3753 | 3398 |
3754 SimulateWheelEvent(5, 0, 0, true); // sent directly | 3399 SimulateWheelEvent(5, 0, 0, true); // sent directly |
3755 SimulateWheelEvent(-1, 0, 0, true); // enqueued | 3400 SimulateWheelEvent(-1, 0, 0, true); // enqueued |
3756 SimulateWheelEvent(-10, -3, 0, true); // coalesced into previous event | 3401 SimulateWheelEvent(-10, -3, 0, true); // coalesced into previous event |
3757 SimulateWheelEvent(-15, -1, 0, true); // coalesced into previous event | 3402 SimulateWheelEvent(-15, -1, 0, true); // coalesced into previous event |
3758 SimulateWheelEvent(-30, -3, 0, true); // coalesced into previous event | 3403 SimulateWheelEvent(-30, -3, 0, true); // coalesced into previous event |
3759 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); | 3404 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); |
3760 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); | 3405 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
3761 | 3406 |
3762 // Receive ACK the first wheel event as not processed. | 3407 // Receive ACK the first wheel event as not processed. |
3763 SendInputEventACK(WebInputEvent::MouseWheel, | 3408 SendInputEventACK(WebInputEvent::MouseWheel, |
3764 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 3409 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
3765 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); | |
3766 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); | |
3767 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); | |
3768 | |
3769 // Receive ACK for the second (coalesced) event as not processed. This will | |
3770 // start an overcroll gesture. | |
3771 SendInputEventACK(WebInputEvent::MouseWheel, | |
3772 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | |
3773 EXPECT_EQ(OVERSCROLL_WEST, overscroll_mode()); | |
3774 EXPECT_EQ(OVERSCROLL_WEST, overscroll_delegate()->current_mode()); | |
3775 EXPECT_EQ(0U, sink_->message_count()); | |
3776 | |
3777 // Send a mouse-move event. This should cancel the overscroll navigation | |
3778 // (since the amount overscrolled is not above the threshold), and so the | |
3779 // mouse-move should reach the renderer. | |
3780 SimulateMouseMove(5, 10, 0); | |
3781 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); | |
3782 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->completed_mode()); | |
3783 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); | |
3784 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); | |
3785 | |
3786 SendInputEventACK(WebInputEvent::MouseMove, | |
3787 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | |
3788 | |
3789 // Moving the mouse more should continue to send the events to the renderer. | |
3790 SimulateMouseMove(5, 10, 0); | |
3791 SendInputEventACK(WebInputEvent::MouseMove, | |
3792 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | |
3793 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); | |
3794 | |
3795 // Now try with gestures. | |
3796 SimulateGestureEvent(WebInputEvent::GestureScrollBegin, | |
3797 blink::WebGestureDeviceTouchscreen); | |
3798 SimulateGestureScrollUpdateEvent(300, -5, 0); | |
3799 SendInputEventACK(WebInputEvent::GestureScrollUpdate, | |
3800 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | |
3801 EXPECT_EQ(OVERSCROLL_EAST, overscroll_mode()); | |
3802 EXPECT_EQ(OVERSCROLL_EAST, overscroll_delegate()->current_mode()); | |
3803 sink_->ClearMessages(); | |
3804 | |
3805 // Overscroll gesture is in progress. Send a mouse-move now. This should | |
3806 // complete the gesture (because the amount overscrolled is above the | |
3807 // threshold). | |
3808 SimulateMouseMove(5, 10, 0); | |
3809 EXPECT_EQ(OVERSCROLL_EAST, overscroll_delegate()->completed_mode()); | |
3810 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); | |
3811 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); | |
3812 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); | |
3813 SendInputEventACK(WebInputEvent::MouseMove, | |
3814 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | |
3815 | |
3816 SimulateGestureEvent(WebInputEvent::GestureScrollEnd, | |
3817 blink::WebGestureDeviceTouchscreen); | |
3818 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); | |
3819 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); | |
3820 | |
3821 // Move mouse some more. The mouse-move events should reach the renderer. | |
3822 SimulateMouseMove(5, 10, 0); | |
3823 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); | |
3824 | |
3825 SendInputEventACK(WebInputEvent::MouseMove, | |
3826 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | |
3827 } | |
3828 | |
3829 // Tests that if a mouse-move event completes the overscroll gesture, future | |
3830 // move events do reach the renderer. | |
3831 // Disabled on MacOS because it doesn't support wheel gestures | |
3832 // just yet. | |
3833 #if defined(OS_MACOSX) | |
3834 #define MAYBE_OverscrollMouseMoveCompletionWheelGestures \ | |
3835 DISABLED_OverscrollMouseMoveCompletionWheelGestures | |
3836 #else | |
3837 #define MAYBE_OverscrollMouseMoveCompletionWheelGestures \ | |
3838 OverscrollMouseMoveCompletionWheelGestures | |
3839 #endif | |
3840 TEST_F(RenderWidgetHostViewAuraOverscrollTest, | |
3841 MAYBE_OverscrollMouseMoveCompletionWheelGestures) { | |
3842 SetUpOverscrollEnvironmentWithWheelGestures(); | |
3843 | |
3844 SimulateWheelEvent(5, 0, 0, true); // sent directly | |
3845 SimulateWheelEvent(-1, 0, 0, true); // enqueued | |
3846 SimulateWheelEvent(-10, -3, 0, true); // coalesced into previous event | |
3847 SimulateWheelEvent(-15, -1, 0, true); // coalesced into previous event | |
3848 SimulateWheelEvent(-30, -3, 0, true); // coalesced into previous event | |
3849 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); | |
3850 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); | |
3851 | |
3852 // Receive ACK the first wheel event as not processed. | |
3853 SendInputEventACK(WebInputEvent::MouseWheel, | |
3854 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | |
3855 EXPECT_EQ(3U, GetSentMessageCountAndResetSink()); | 3410 EXPECT_EQ(3U, GetSentMessageCountAndResetSink()); |
3856 SendInputEventACK(WebInputEvent::GestureScrollUpdate, | 3411 SendInputEventACK(WebInputEvent::GestureScrollUpdate, |
3857 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 3412 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
3858 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); | 3413 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); |
3859 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); | 3414 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); |
3860 | 3415 |
3861 // Receive ACK for the second (coalesced) event as not processed. This will | 3416 // Receive ACK for the second (coalesced) event as not processed. This will |
3862 // start an overcroll gesture. | 3417 // start an overcroll gesture. |
3863 SendInputEventACK(WebInputEvent::MouseWheel, | 3418 SendInputEventACK(WebInputEvent::MouseWheel, |
3864 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 3419 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3928 SetUpOverscrollEnvironment(); | 3483 SetUpOverscrollEnvironment(); |
3929 | 3484 |
3930 SimulateWheelEvent(0, 5, 0, true); // sent directly | 3485 SimulateWheelEvent(0, 5, 0, true); // sent directly |
3931 SimulateWheelEvent(0, 30, 0, true); // enqueued | 3486 SimulateWheelEvent(0, 30, 0, true); // enqueued |
3932 SimulateWheelEvent(0, 40, 0, true); // coalesced into previous event | 3487 SimulateWheelEvent(0, 40, 0, true); // coalesced into previous event |
3933 SimulateWheelEvent(0, 10, 0, true); // coalesced into previous event | 3488 SimulateWheelEvent(0, 10, 0, true); // coalesced into previous event |
3934 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); | 3489 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); |
3935 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); | 3490 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
3936 | 3491 |
3937 // The first wheel event is consumed. Dispatches the queued wheel event. | 3492 // The first wheel event is consumed. Dispatches the queued wheel event. |
3938 SendInputEventACK(WebInputEvent::MouseWheel, INPUT_EVENT_ACK_STATE_CONSUMED); | 3493 SendInputEventACK(WebInputEvent::MouseWheel, |
| 3494 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
| 3495 SendInputEventACK(WebInputEvent::GestureScrollUpdate, |
| 3496 INPUT_EVENT_ACK_STATE_CONSUMED); |
3939 EXPECT_TRUE(ScrollStateIsContentScrolling()); | 3497 EXPECT_TRUE(ScrollStateIsContentScrolling()); |
3940 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); | 3498 EXPECT_EQ(3U, GetSentMessageCountAndResetSink()); |
3941 | 3499 |
3942 // The second wheel event is consumed. | 3500 // The second wheel event is consumed. |
3943 SendInputEventACK(WebInputEvent::MouseWheel, INPUT_EVENT_ACK_STATE_CONSUMED); | 3501 SendInputEventACK(WebInputEvent::MouseWheel, |
| 3502 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
| 3503 SendInputEventACK(WebInputEvent::GestureScrollUpdate, |
| 3504 INPUT_EVENT_ACK_STATE_CONSUMED); |
3944 EXPECT_TRUE(ScrollStateIsContentScrolling()); | 3505 EXPECT_TRUE(ScrollStateIsContentScrolling()); |
3945 | 3506 |
3946 // Touchpad scroll can end with a zero-velocity fling. But it is not | 3507 // Touchpad scroll can end with a zero-velocity fling. But it is not |
3947 // dispatched, but it should still reset the overscroll controller state. | 3508 // dispatched, but it should still reset the overscroll controller state. |
3948 SimulateGestureEvent(WebInputEvent::GestureScrollBegin, | 3509 SimulateGestureEvent(WebInputEvent::GestureScrollBegin, |
3949 blink::WebGestureDeviceTouchscreen); | 3510 blink::WebGestureDeviceTouchscreen); |
3950 SimulateGestureFlingStartEvent(0.f, 0.f, blink::WebGestureDeviceTouchpad); | 3511 SimulateGestureFlingStartEvent(0.f, 0.f, blink::WebGestureDeviceTouchpad); |
3951 EXPECT_TRUE(ScrollStateIsUnknown()); | 3512 EXPECT_TRUE(ScrollStateIsUnknown()); |
3952 EXPECT_EQ(1U, sink_->message_count()); | 3513 EXPECT_EQ(3U, sink_->message_count()); |
3953 | 3514 |
3954 // Dropped flings should neither propagate *nor* indicate that they were | 3515 // Dropped flings should neither propagate *nor* indicate that they were |
3955 // consumed and have triggered a fling animation (as tracked by the router). | 3516 // consumed and have triggered a fling animation (as tracked by the router). |
3956 EXPECT_FALSE(parent_host_->input_router()->HasPendingEvents()); | 3517 EXPECT_FALSE(parent_host_->input_router()->HasPendingEvents()); |
3957 | 3518 |
3958 SimulateGestureEvent(WebInputEvent::GestureScrollEnd, | 3519 SimulateGestureEvent(WebInputEvent::GestureScrollEnd, |
3959 blink::WebGestureDeviceTouchscreen); | 3520 blink::WebGestureDeviceTouchscreen); |
3960 | 3521 |
3961 SimulateWheelEvent(-5, 0, 0, true); // sent directly | 3522 SimulateWheelEvent(-5, 0, 0, true); // sent directly |
3962 SimulateWheelEvent(-60, 0, 0, true); // enqueued | 3523 SimulateWheelEvent(-60, 0, 0, true); // enqueued |
3963 SimulateWheelEvent(-100, 0, 0, true); // coalesced into previous event | 3524 SimulateWheelEvent(-100, 0, 0, true); // coalesced into previous event |
3964 EXPECT_TRUE(ScrollStateIsUnknown()); | 3525 EXPECT_TRUE(ScrollStateIsUnknown()); |
3965 EXPECT_EQ(3U, GetSentMessageCountAndResetSink()); | 3526 EXPECT_EQ(5U, GetSentMessageCountAndResetSink()); |
3966 | 3527 |
3967 // The first wheel scroll did not scroll content. Overscroll should not start | 3528 // The first wheel scroll did not scroll content. Overscroll should not start |
3968 // yet, since enough hasn't been scrolled. | 3529 // yet, since enough hasn't been scrolled. |
3969 SendInputEventACK(WebInputEvent::MouseWheel, | 3530 SendInputEventACK(WebInputEvent::MouseWheel, |
3970 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 3531 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
| 3532 SendInputEventACK(WebInputEvent::GestureScrollUpdate, |
| 3533 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
3971 EXPECT_TRUE(ScrollStateIsUnknown()); | 3534 EXPECT_TRUE(ScrollStateIsUnknown()); |
3972 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); | 3535 EXPECT_EQ(3U, GetSentMessageCountAndResetSink()); |
3973 | 3536 |
3974 SendInputEventACK(WebInputEvent::MouseWheel, | 3537 SendInputEventACK(WebInputEvent::MouseWheel, |
3975 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 3538 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
| 3539 SendInputEventACK(WebInputEvent::GestureScrollUpdate, |
| 3540 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
3976 EXPECT_EQ(OVERSCROLL_WEST, overscroll_mode()); | 3541 EXPECT_EQ(OVERSCROLL_WEST, overscroll_mode()); |
3977 EXPECT_TRUE(ScrollStateIsOverscrolling()); | 3542 EXPECT_TRUE(ScrollStateIsOverscrolling()); |
3978 EXPECT_EQ(0U, sink_->message_count()); | 3543 EXPECT_EQ(1U, sink_->message_count()); |
3979 | 3544 |
3980 // The GestureScrollBegin will reset the delegate's mode, so check it here. | 3545 // The GestureScrollBegin will reset the delegate's mode, so check it here. |
3981 EXPECT_EQ(OVERSCROLL_WEST, overscroll_delegate()->current_mode()); | 3546 EXPECT_EQ(OVERSCROLL_WEST, overscroll_delegate()->current_mode()); |
3982 SimulateGestureEvent(WebInputEvent::GestureScrollBegin, | 3547 SimulateGestureEvent(WebInputEvent::GestureScrollBegin, |
3983 blink::WebGestureDeviceTouchscreen); | 3548 blink::WebGestureDeviceTouchscreen); |
3984 SimulateGestureFlingStartEvent(0.f, 0.f, blink::WebGestureDeviceTouchpad); | 3549 SimulateGestureFlingStartEvent(0.f, 0.f, blink::WebGestureDeviceTouchpad); |
3985 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); | 3550 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); |
3986 EXPECT_TRUE(ScrollStateIsUnknown()); | 3551 EXPECT_TRUE(ScrollStateIsUnknown()); |
3987 EXPECT_EQ(1U, sink_->message_count()); | 3552 EXPECT_EQ(3U, sink_->message_count()); |
3988 EXPECT_FALSE(parent_host_->input_router()->HasPendingEvents()); | 3553 EXPECT_FALSE(parent_host_->input_router()->HasPendingEvents()); |
3989 } | 3554 } |
3990 | 3555 |
3991 TEST_F(RenderWidgetHostViewAuraOverscrollTest, OverscrollResetsOnBlur) { | 3556 TEST_F(RenderWidgetHostViewAuraOverscrollTest, OverscrollResetsOnBlur) { |
3992 SetUpOverscrollEnvironment(); | 3557 SetUpOverscrollEnvironment(); |
3993 | 3558 |
3994 // Start an overscroll with gesture scroll. In the middle of the scroll, blur | 3559 // Start an overscroll with gesture scroll. In the middle of the scroll, blur |
3995 // the host. | 3560 // the host. |
3996 SimulateGestureEvent(WebInputEvent::GestureScrollBegin, | 3561 SimulateGestureEvent(WebInputEvent::GestureScrollBegin, |
3997 blink::WebGestureDeviceTouchscreen); | 3562 blink::WebGestureDeviceTouchscreen); |
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4163 | 3728 |
4164 EXPECT_EQ(2U, view_->dispatcher_->GetAndResetProcessedTouchEventCount()); | 3729 EXPECT_EQ(2U, view_->dispatcher_->GetAndResetProcessedTouchEventCount()); |
4165 } | 3730 } |
4166 | 3731 |
4167 // Tests that the scroll deltas stored within the overscroll controller get | 3732 // Tests that the scroll deltas stored within the overscroll controller get |
4168 // reset at the end of the overscroll gesture even if the overscroll threshold | 3733 // reset at the end of the overscroll gesture even if the overscroll threshold |
4169 // isn't surpassed and the overscroll mode stays OVERSCROLL_NONE. | 3734 // isn't surpassed and the overscroll mode stays OVERSCROLL_NONE. |
4170 TEST_F(RenderWidgetHostViewAuraOverscrollTest, ScrollDeltasResetOnEnd) { | 3735 TEST_F(RenderWidgetHostViewAuraOverscrollTest, ScrollDeltasResetOnEnd) { |
4171 SetUpOverscrollEnvironment(); | 3736 SetUpOverscrollEnvironment(); |
4172 // Wheel event scroll ending with mouse move. | 3737 // Wheel event scroll ending with mouse move. |
4173 SimulateWheelEvent(-30, -10, 0, true); // sent directly | |
4174 SendInputEventACK(WebInputEvent::MouseWheel, | |
4175 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | |
4176 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); | |
4177 EXPECT_EQ(-30.f, overscroll_delta_x()); | |
4178 EXPECT_EQ(-10.f, overscroll_delta_y()); | |
4179 SimulateMouseMove(5, 10, 0); | |
4180 EXPECT_EQ(0.f, overscroll_delta_x()); | |
4181 EXPECT_EQ(0.f, overscroll_delta_y()); | |
4182 | |
4183 // Scroll gesture. | |
4184 SimulateGestureEvent(WebInputEvent::GestureScrollBegin, | |
4185 blink::WebGestureDeviceTouchscreen); | |
4186 SimulateGestureScrollUpdateEvent(-30, -5, 0); | |
4187 SendInputEventACK(WebInputEvent::GestureScrollUpdate, | |
4188 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | |
4189 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); | |
4190 EXPECT_EQ(-30.f, overscroll_delta_x()); | |
4191 EXPECT_EQ(-5.f, overscroll_delta_y()); | |
4192 SimulateGestureEvent(WebInputEvent::GestureScrollEnd, | |
4193 blink::WebGestureDeviceTouchscreen); | |
4194 EXPECT_EQ(0.f, overscroll_delta_x()); | |
4195 EXPECT_EQ(0.f, overscroll_delta_y()); | |
4196 | |
4197 // Wheel event scroll ending with a fling. | |
4198 SimulateWheelEvent(5, 0, 0, true); | |
4199 SendInputEventACK(WebInputEvent::MouseWheel, | |
4200 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | |
4201 SimulateWheelEvent(10, -5, 0, true); | |
4202 SendInputEventACK(WebInputEvent::MouseWheel, | |
4203 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | |
4204 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); | |
4205 EXPECT_EQ(15.f, overscroll_delta_x()); | |
4206 EXPECT_EQ(-5.f, overscroll_delta_y()); | |
4207 SimulateGestureEvent(WebInputEvent::GestureScrollBegin, | |
4208 blink::WebGestureDeviceTouchscreen); | |
4209 SimulateGestureFlingStartEvent(0.f, 0.1f, blink::WebGestureDeviceTouchpad); | |
4210 EXPECT_EQ(0.f, overscroll_delta_x()); | |
4211 EXPECT_EQ(0.f, overscroll_delta_y()); | |
4212 } | |
4213 | |
4214 // Tests that the scroll deltas stored within the overscroll controller get | |
4215 // reset at the end of the overscroll gesture even if the overscroll threshold | |
4216 // isn't surpassed and the overscroll mode stays OVERSCROLL_NONE. | |
4217 // Disabled on MacOS because it doesn't support wheel gestures | |
4218 // just yet. | |
4219 #if defined(OS_MACOSX) | |
4220 #define MAYBE_ScrollDeltasResetOnEndWithWheelGestures \ | |
4221 DISABLED_ScrollDeltasResetOnEndWithWheelGestures | |
4222 #else | |
4223 #define MAYBE_ScrollDeltasResetOnEndWithWheelGestures \ | |
4224 ScrollDeltasResetOnEndWithWheelGestures | |
4225 #endif | |
4226 TEST_F(RenderWidgetHostViewAuraOverscrollTest, | |
4227 MAYBE_ScrollDeltasResetOnEndWithWheelGestures) { | |
4228 SetUpOverscrollEnvironmentWithWheelGestures(); | |
4229 // Wheel event scroll ending with mouse move. | |
4230 SimulateWheelEvent(-30, -10, 0, true); // sent directly | 3738 SimulateWheelEvent(-30, -10, 0, true); // sent directly |
4231 SendInputEventACK(WebInputEvent::MouseWheel, | 3739 SendInputEventACK(WebInputEvent::MouseWheel, |
4232 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 3740 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
4233 SendInputEventACK(WebInputEvent::GestureScrollUpdate, | 3741 SendInputEventACK(WebInputEvent::GestureScrollUpdate, |
4234 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 3742 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
4235 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); | 3743 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); |
4236 EXPECT_EQ(-30.f, overscroll_delta_x()); | 3744 EXPECT_EQ(-30.f, overscroll_delta_x()); |
4237 EXPECT_EQ(-10.f, overscroll_delta_y()); | 3745 EXPECT_EQ(-10.f, overscroll_delta_y()); |
4238 SimulateMouseMove(5, 10, 0); | 3746 SimulateMouseMove(5, 10, 0); |
4239 EXPECT_EQ(0.f, overscroll_delta_x()); | 3747 EXPECT_EQ(0.f, overscroll_delta_x()); |
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4484 view()->OnGestureEvent(&gesture_event); | 3992 view()->OnGestureEvent(&gesture_event); |
4485 | 3993 |
4486 EXPECT_TRUE(delegate->context_menu_request_received()); | 3994 EXPECT_TRUE(delegate->context_menu_request_received()); |
4487 EXPECT_EQ(delegate->context_menu_source_type(), ui::MENU_SOURCE_TOUCH); | 3995 EXPECT_EQ(delegate->context_menu_source_type(), ui::MENU_SOURCE_TOUCH); |
4488 #endif | 3996 #endif |
4489 | 3997 |
4490 RenderViewHostFactory::set_is_real_render_view_host(false); | 3998 RenderViewHostFactory::set_is_real_render_view_host(false); |
4491 } | 3999 } |
4492 | 4000 |
4493 } // namespace content | 4001 } // namespace content |
OLD | NEW |