| 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 "base/basictypes.h" | 5 #include "base/basictypes.h" |
| 6 #include "base/memory/scoped_ptr.h" | 6 #include "base/memory/scoped_ptr.h" |
| 7 #include "base/shared_memory.h" | 7 #include "base/shared_memory.h" |
| 8 #include "base/timer.h" | 8 #include "base/timer.h" |
| 9 #include "content/browser/browser_thread_impl.h" | 9 #include "content/browser/browser_thread_impl.h" |
| 10 #include "content/browser/renderer_host/backing_store.h" | 10 #include "content/browser/renderer_host/backing_store.h" |
| 11 #include "content/browser/renderer_host/render_widget_host_delegate.h" | 11 #include "content/browser/renderer_host/render_widget_host_delegate.h" |
| 12 #include "content/browser/renderer_host/gesture_event_filter.h" | 12 #include "content/browser/renderer_host/gesture_event_filter.h" |
| 13 #include "content/browser/renderer_host/overscroll_controller.h" | 13 #include "content/browser/renderer_host/overscroll_controller.h" |
| 14 #include "content/browser/renderer_host/overscroll_controller_delegate.h" | 14 #include "content/browser/renderer_host/overscroll_controller_delegate.h" |
| 15 #include "content/browser/renderer_host/tap_suppression_controller.h" | |
| 16 #include "content/browser/renderer_host/test_render_view_host.h" | 15 #include "content/browser/renderer_host/test_render_view_host.h" |
| 17 #include "content/browser/renderer_host/touch_event_queue.h" | 16 #include "content/browser/renderer_host/touch_event_queue.h" |
| 17 #include "content/browser/renderer_host/touchpad_tap_suppression_controller.h" |
| 18 #include "content/common/view_messages.h" | 18 #include "content/common/view_messages.h" |
| 19 #include "content/port/browser/render_widget_host_view_port.h" | 19 #include "content/port/browser/render_widget_host_view_port.h" |
| 20 #include "content/public/browser/notification_details.h" | 20 #include "content/public/browser/notification_details.h" |
| 21 #include "content/public/browser/notification_observer.h" | 21 #include "content/public/browser/notification_observer.h" |
| 22 #include "content/public/browser/notification_registrar.h" | 22 #include "content/public/browser/notification_registrar.h" |
| 23 #include "content/public/browser/notification_source.h" | 23 #include "content/public/browser/notification_source.h" |
| 24 #include "content/public/browser/notification_types.h" | 24 #include "content/public/browser/notification_types.h" |
| 25 #include "content/public/test/mock_render_process_host.h" | 25 #include "content/public/test/mock_render_process_host.h" |
| 26 #include "content/public/test/test_browser_context.h" | 26 #include "content/public/test/test_browser_context.h" |
| 27 #include "testing/gtest/include/gtest/gtest.h" | 27 #include "testing/gtest/include/gtest/gtest.h" |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 112 using RenderWidgetHostImpl::OnUpdateRect; | 112 using RenderWidgetHostImpl::OnUpdateRect; |
| 113 using RenderWidgetHostImpl::RendererExited; | 113 using RenderWidgetHostImpl::RendererExited; |
| 114 using RenderWidgetHostImpl::in_flight_size_; | 114 using RenderWidgetHostImpl::in_flight_size_; |
| 115 using RenderWidgetHostImpl::is_hidden_; | 115 using RenderWidgetHostImpl::is_hidden_; |
| 116 using RenderWidgetHostImpl::resize_ack_pending_; | 116 using RenderWidgetHostImpl::resize_ack_pending_; |
| 117 using RenderWidgetHostImpl::gesture_event_filter_; | 117 using RenderWidgetHostImpl::gesture_event_filter_; |
| 118 using RenderWidgetHostImpl::touch_event_queue_; | 118 using RenderWidgetHostImpl::touch_event_queue_; |
| 119 using RenderWidgetHostImpl::overscroll_controller_; | 119 using RenderWidgetHostImpl::overscroll_controller_; |
| 120 | 120 |
| 121 enum TapSuppressionState { | 121 enum TapSuppressionState { |
| 122 TSC_NOTHING = TapSuppressionController::NOTHING, | 122 TSC_NOTHING = TouchpadTapSuppressionController::NOTHING, |
| 123 TSC_GFC_IN_PROGRESS = TapSuppressionController::GFC_IN_PROGRESS, | 123 TSC_GFC_IN_PROGRESS = TouchpadTapSuppressionController::GFC_IN_PROGRESS, |
| 124 TSC_MD_STASHED = TapSuppressionController::MD_STASHED, | 124 TSC_MD_STASHED = TouchpadTapSuppressionController::MD_STASHED, |
| 125 TSC_LAST_CANCEL_STOPPED_FLING = | 125 TSC_LAST_CANCEL_STOPPED_FLING = |
| 126 TapSuppressionController::LAST_CANCEL_STOPPED_FLING, | 126 TouchpadTapSuppressionController::LAST_CANCEL_STOPPED_FLING, |
| 127 }; | 127 }; |
| 128 | 128 |
| 129 bool unresponsive_timer_fired() const { | 129 bool unresponsive_timer_fired() const { |
| 130 return unresponsive_timer_fired_; | 130 return unresponsive_timer_fired_; |
| 131 } | 131 } |
| 132 | 132 |
| 133 void set_hung_renderer_delay_ms(int delay_ms) { | 133 void set_hung_renderer_delay_ms(int delay_ms) { |
| 134 hung_renderer_delay_ms_ = delay_ms; | 134 hung_renderer_delay_ms_ = delay_ms; |
| 135 } | 135 } |
| 136 | 136 |
| (...skipping 20 matching lines...) Expand all Loading... |
| 157 bool ScrollingInProgress() { | 157 bool ScrollingInProgress() { |
| 158 return gesture_event_filter_->scrolling_in_progress_; | 158 return gesture_event_filter_->scrolling_in_progress_; |
| 159 } | 159 } |
| 160 | 160 |
| 161 bool FlingInProgress() { | 161 bool FlingInProgress() { |
| 162 return gesture_event_filter_->fling_in_progress_; | 162 return gesture_event_filter_->fling_in_progress_; |
| 163 } | 163 } |
| 164 | 164 |
| 165 TapSuppressionState TapSuppressionControllerState() { | 165 TapSuppressionState TapSuppressionControllerState() { |
| 166 return static_cast<TapSuppressionState>( | 166 return static_cast<TapSuppressionState>( |
| 167 gesture_event_filter_->tap_suppression_controller_->state_); | 167 gesture_event_filter_->touchpad_tap_suppression_controller_->state_); |
| 168 } | 168 } |
| 169 | 169 |
| 170 void SetupForOverscrollControllerTest() { | 170 void SetupForOverscrollControllerTest() { |
| 171 InitializeOverscrollController(); | 171 InitializeOverscrollController(); |
| 172 overscroll_delegate_.reset(new TestOverscrollDelegate); | 172 overscroll_delegate_.reset(new TestOverscrollDelegate); |
| 173 overscroll_controller_->set_delegate(overscroll_delegate_.get()); | 173 overscroll_controller_->set_delegate(overscroll_delegate_.get()); |
| 174 } | 174 } |
| 175 | 175 |
| 176 void set_maximum_tap_gap_time_ms(int delay_ms) { | 176 void set_maximum_tap_gap_time_ms(int delay_ms) { |
| 177 gesture_event_filter_->maximum_tap_gap_time_ms_ = delay_ms; | 177 gesture_event_filter_->maximum_tap_gap_time_ms_ = delay_ms; |
| (...skipping 1402 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1580 WebInputEvent::GestureScrollUpdate}; | 1580 WebInputEvent::GestureScrollUpdate}; |
| 1581 | 1581 |
| 1582 for (unsigned i = 0; i < sizeof(expected) / sizeof(WebInputEvent::Type); | 1582 for (unsigned i = 0; i < sizeof(expected) / sizeof(WebInputEvent::Type); |
| 1583 i++) { | 1583 i++) { |
| 1584 WebGestureEvent merged_event = host_->GestureEventQueueEventAt(i); | 1584 WebGestureEvent merged_event = host_->GestureEventQueueEventAt(i); |
| 1585 EXPECT_EQ(expected[i], merged_event.type); | 1585 EXPECT_EQ(expected[i], merged_event.type); |
| 1586 } | 1586 } |
| 1587 } | 1587 } |
| 1588 | 1588 |
| 1589 #if defined(USE_AURA) | 1589 #if defined(USE_AURA) |
| 1590 // Test TapSuppressionController for when GestureFlingCancel Ack comes before | 1590 // Test TouchpadTapSuppressionController for when GestureFlingCancel Ack comes |
| 1591 // MouseDown and everything happens without any delays. | 1591 // before MouseDown and everything happens without any delays. |
| 1592 TEST_F(RenderWidgetHostTest, GFCAckBeforeMouseFast) { | 1592 TEST_F(RenderWidgetHostTest, GFCAckBeforeMouseFast) { |
| 1593 process_->sink().ClearMessages(); | 1593 process_->sink().ClearMessages(); |
| 1594 | 1594 |
| 1595 // Send GestureFlingStart. | 1595 // Send GestureFlingStart. |
| 1596 SimulateGestureFlingStartEvent(0, -10, WebGestureEvent::Touchpad); | 1596 SimulateGestureFlingStartEvent(0, -10, WebGestureEvent::Touchpad); |
| 1597 EXPECT_EQ(1U, process_->sink().message_count()); | 1597 EXPECT_EQ(1U, process_->sink().message_count()); |
| 1598 EXPECT_EQ(1U, host_->GestureEventLastQueueEventSize()); | 1598 EXPECT_EQ(1U, host_->GestureEventLastQueueEventSize()); |
| 1599 EXPECT_EQ(WebInputEvent::GestureFlingStart, | 1599 EXPECT_EQ(WebInputEvent::GestureFlingStart, |
| 1600 host_->GestureEventLastQueueEvent().type); | 1600 host_->GestureEventLastQueueEvent().type); |
| 1601 EXPECT_EQ(MockRenderWidgetHost::TSC_NOTHING, | 1601 EXPECT_EQ(MockRenderWidgetHost::TSC_NOTHING, |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1641 | 1641 |
| 1642 // Send MouseUp. This MouseUp should be suppressed. | 1642 // Send MouseUp. This MouseUp should be suppressed. |
| 1643 SimulateMouseEvent(WebInputEvent::MouseUp); | 1643 SimulateMouseEvent(WebInputEvent::MouseUp); |
| 1644 EXPECT_EQ(2U, process_->sink().message_count()); | 1644 EXPECT_EQ(2U, process_->sink().message_count()); |
| 1645 EXPECT_EQ(0U, host_->GestureEventLastQueueEventSize()); | 1645 EXPECT_EQ(0U, host_->GestureEventLastQueueEventSize()); |
| 1646 EXPECT_EQ(MockRenderWidgetHost::TSC_NOTHING, | 1646 EXPECT_EQ(MockRenderWidgetHost::TSC_NOTHING, |
| 1647 host_->TapSuppressionControllerState()); | 1647 host_->TapSuppressionControllerState()); |
| 1648 EXPECT_FALSE(host_->FlingInProgress()); | 1648 EXPECT_FALSE(host_->FlingInProgress()); |
| 1649 } | 1649 } |
| 1650 | 1650 |
| 1651 // Test TapSuppressionController for when GestureFlingCancel Ack comes before | 1651 // Test TouchpadTapSuppressionController for when GestureFlingCancel Ack comes |
| 1652 // MouseDown, but there is a small delay between MouseDown and MouseUp. | 1652 // before MouseDown, but there is a small delay between MouseDown and MouseUp. |
| 1653 TEST_F(RenderWidgetHostTest, GFCAckBeforeMouseInsufficientlyLateMouseUp) { | 1653 TEST_F(RenderWidgetHostTest, GFCAckBeforeMouseInsufficientlyLateMouseUp) { |
| 1654 process_->sink().ClearMessages(); | 1654 process_->sink().ClearMessages(); |
| 1655 | 1655 |
| 1656 // Send GestureFlingStart. | 1656 // Send GestureFlingStart. |
| 1657 SimulateGestureFlingStartEvent(0, -10, WebGestureEvent::Touchpad); | 1657 SimulateGestureFlingStartEvent(0, -10, WebGestureEvent::Touchpad); |
| 1658 EXPECT_EQ(1U, process_->sink().message_count()); | 1658 EXPECT_EQ(1U, process_->sink().message_count()); |
| 1659 EXPECT_EQ(1U, host_->GestureEventLastQueueEventSize()); | 1659 EXPECT_EQ(1U, host_->GestureEventLastQueueEventSize()); |
| 1660 EXPECT_EQ(WebInputEvent::GestureFlingStart, | 1660 EXPECT_EQ(WebInputEvent::GestureFlingStart, |
| 1661 host_->GestureEventLastQueueEvent().type); | 1661 host_->GestureEventLastQueueEvent().type); |
| 1662 EXPECT_EQ(MockRenderWidgetHost::TSC_NOTHING, | 1662 EXPECT_EQ(MockRenderWidgetHost::TSC_NOTHING, |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1717 | 1717 |
| 1718 // Send MouseUp. This MouseUp should be suppressed. | 1718 // Send MouseUp. This MouseUp should be suppressed. |
| 1719 SimulateMouseEvent(WebInputEvent::MouseUp); | 1719 SimulateMouseEvent(WebInputEvent::MouseUp); |
| 1720 EXPECT_EQ(2U, process_->sink().message_count()); | 1720 EXPECT_EQ(2U, process_->sink().message_count()); |
| 1721 EXPECT_EQ(0U, host_->GestureEventLastQueueEventSize()); | 1721 EXPECT_EQ(0U, host_->GestureEventLastQueueEventSize()); |
| 1722 EXPECT_EQ(MockRenderWidgetHost::TSC_NOTHING, | 1722 EXPECT_EQ(MockRenderWidgetHost::TSC_NOTHING, |
| 1723 host_->TapSuppressionControllerState()); | 1723 host_->TapSuppressionControllerState()); |
| 1724 EXPECT_FALSE(host_->FlingInProgress()); | 1724 EXPECT_FALSE(host_->FlingInProgress()); |
| 1725 } | 1725 } |
| 1726 | 1726 |
| 1727 // Test TapSuppressionController for when GestureFlingCancel Ack comes before | 1727 // Test TouchpadTapSuppressionController for when GestureFlingCancel Ack comes |
| 1728 // MouseDown, but there is a long delay between MouseDown and MouseUp. | 1728 // before MouseDown, but there is a long delay between MouseDown and MouseUp. |
| 1729 TEST_F(RenderWidgetHostTest, GFCAckBeforeMouseSufficientlyLateMouseUp) { | 1729 TEST_F(RenderWidgetHostTest, GFCAckBeforeMouseSufficientlyLateMouseUp) { |
| 1730 process_->sink().ClearMessages(); | 1730 process_->sink().ClearMessages(); |
| 1731 | 1731 |
| 1732 // Send GestureFlingStart. | 1732 // Send GestureFlingStart. |
| 1733 SimulateGestureFlingStartEvent(0, -10, WebGestureEvent::Touchpad); | 1733 SimulateGestureFlingStartEvent(0, -10, WebGestureEvent::Touchpad); |
| 1734 EXPECT_EQ(1U, process_->sink().message_count()); | 1734 EXPECT_EQ(1U, process_->sink().message_count()); |
| 1735 EXPECT_EQ(1U, host_->GestureEventLastQueueEventSize()); | 1735 EXPECT_EQ(1U, host_->GestureEventLastQueueEventSize()); |
| 1736 EXPECT_EQ(WebInputEvent::GestureFlingStart, | 1736 EXPECT_EQ(WebInputEvent::GestureFlingStart, |
| 1737 host_->GestureEventLastQueueEvent().type); | 1737 host_->GestureEventLastQueueEvent().type); |
| 1738 EXPECT_EQ(MockRenderWidgetHost::TSC_NOTHING, | 1738 EXPECT_EQ(MockRenderWidgetHost::TSC_NOTHING, |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1794 | 1794 |
| 1795 // Send MouseUp. This MouseUp should not be suppressed. | 1795 // Send MouseUp. This MouseUp should not be suppressed. |
| 1796 SimulateMouseEvent(WebInputEvent::MouseUp); | 1796 SimulateMouseEvent(WebInputEvent::MouseUp); |
| 1797 EXPECT_EQ(4U, process_->sink().message_count()); | 1797 EXPECT_EQ(4U, process_->sink().message_count()); |
| 1798 EXPECT_EQ(0U, host_->GestureEventLastQueueEventSize()); | 1798 EXPECT_EQ(0U, host_->GestureEventLastQueueEventSize()); |
| 1799 EXPECT_EQ(MockRenderWidgetHost::TSC_NOTHING, | 1799 EXPECT_EQ(MockRenderWidgetHost::TSC_NOTHING, |
| 1800 host_->TapSuppressionControllerState()); | 1800 host_->TapSuppressionControllerState()); |
| 1801 EXPECT_FALSE(host_->FlingInProgress()); | 1801 EXPECT_FALSE(host_->FlingInProgress()); |
| 1802 } | 1802 } |
| 1803 | 1803 |
| 1804 // Test TapSuppressionController for when GestureFlingCancel Ack comes before | 1804 // Test TouchpadTapSuppressionController for when GestureFlingCancel Ack comes |
| 1805 // MouseDown, but there is a small delay between the Ack and MouseDown. | 1805 // before MouseDown, but there is a small delay between the Ack and MouseDown. |
| 1806 TEST_F(RenderWidgetHostTest, GFCAckBeforeMouseInsufficientlyLateMouseDown) { | 1806 TEST_F(RenderWidgetHostTest, GFCAckBeforeMouseInsufficientlyLateMouseDown) { |
| 1807 process_->sink().ClearMessages(); | 1807 process_->sink().ClearMessages(); |
| 1808 | 1808 |
| 1809 // Send GestureFlingStart. | 1809 // Send GestureFlingStart. |
| 1810 SimulateGestureFlingStartEvent(0, -10, WebGestureEvent::Touchpad); | 1810 SimulateGestureFlingStartEvent(0, -10, WebGestureEvent::Touchpad); |
| 1811 EXPECT_EQ(1U, process_->sink().message_count()); | 1811 EXPECT_EQ(1U, process_->sink().message_count()); |
| 1812 EXPECT_EQ(1U, host_->GestureEventLastQueueEventSize()); | 1812 EXPECT_EQ(1U, host_->GestureEventLastQueueEventSize()); |
| 1813 EXPECT_EQ(WebInputEvent::GestureFlingStart, | 1813 EXPECT_EQ(WebInputEvent::GestureFlingStart, |
| 1814 host_->GestureEventLastQueueEvent().type); | 1814 host_->GestureEventLastQueueEvent().type); |
| 1815 EXPECT_EQ(MockRenderWidgetHost::TSC_NOTHING, | 1815 EXPECT_EQ(MockRenderWidgetHost::TSC_NOTHING, |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1871 | 1871 |
| 1872 // Send MouseUp. This MouseUp should be suppressed. | 1872 // Send MouseUp. This MouseUp should be suppressed. |
| 1873 SimulateMouseEvent(WebInputEvent::MouseUp); | 1873 SimulateMouseEvent(WebInputEvent::MouseUp); |
| 1874 EXPECT_EQ(2U, process_->sink().message_count()); | 1874 EXPECT_EQ(2U, process_->sink().message_count()); |
| 1875 EXPECT_EQ(0U, host_->GestureEventLastQueueEventSize()); | 1875 EXPECT_EQ(0U, host_->GestureEventLastQueueEventSize()); |
| 1876 EXPECT_EQ(MockRenderWidgetHost::TSC_NOTHING, | 1876 EXPECT_EQ(MockRenderWidgetHost::TSC_NOTHING, |
| 1877 host_->TapSuppressionControllerState()); | 1877 host_->TapSuppressionControllerState()); |
| 1878 EXPECT_FALSE(host_->FlingInProgress()); | 1878 EXPECT_FALSE(host_->FlingInProgress()); |
| 1879 } | 1879 } |
| 1880 | 1880 |
| 1881 // Test TapSuppressionController for when GestureFlingCancel Ack comes before | 1881 // Test TouchpadTapSuppressionController for when GestureFlingCancel Ack comes |
| 1882 // MouseDown, but there is a long delay between the Ack and MouseDown. | 1882 // before MouseDown, but there is a long delay between the Ack and MouseDown. |
| 1883 TEST_F(RenderWidgetHostTest, GFCAckBeforeMouseSufficientlyLateMouseDown) { | 1883 TEST_F(RenderWidgetHostTest, GFCAckBeforeMouseSufficientlyLateMouseDown) { |
| 1884 process_->sink().ClearMessages(); | 1884 process_->sink().ClearMessages(); |
| 1885 | 1885 |
| 1886 // Send GestureFlingStart. | 1886 // Send GestureFlingStart. |
| 1887 SimulateGestureFlingStartEvent(0, -10, WebGestureEvent::Touchpad); | 1887 SimulateGestureFlingStartEvent(0, -10, WebGestureEvent::Touchpad); |
| 1888 EXPECT_EQ(1U, process_->sink().message_count()); | 1888 EXPECT_EQ(1U, process_->sink().message_count()); |
| 1889 EXPECT_EQ(1U, host_->GestureEventLastQueueEventSize()); | 1889 EXPECT_EQ(1U, host_->GestureEventLastQueueEventSize()); |
| 1890 EXPECT_EQ(WebInputEvent::GestureFlingStart, | 1890 EXPECT_EQ(WebInputEvent::GestureFlingStart, |
| 1891 host_->GestureEventLastQueueEvent().type); | 1891 host_->GestureEventLastQueueEvent().type); |
| 1892 EXPECT_EQ(MockRenderWidgetHost::TSC_NOTHING, | 1892 EXPECT_EQ(MockRenderWidgetHost::TSC_NOTHING, |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1947 | 1947 |
| 1948 // Send MouseUp. This MouseUp should not be suppressed. | 1948 // Send MouseUp. This MouseUp should not be suppressed. |
| 1949 SimulateMouseEvent(WebInputEvent::MouseUp); | 1949 SimulateMouseEvent(WebInputEvent::MouseUp); |
| 1950 EXPECT_EQ(4U, process_->sink().message_count()); | 1950 EXPECT_EQ(4U, process_->sink().message_count()); |
| 1951 EXPECT_EQ(0U, host_->GestureEventLastQueueEventSize()); | 1951 EXPECT_EQ(0U, host_->GestureEventLastQueueEventSize()); |
| 1952 EXPECT_EQ(MockRenderWidgetHost::TSC_NOTHING, | 1952 EXPECT_EQ(MockRenderWidgetHost::TSC_NOTHING, |
| 1953 host_->TapSuppressionControllerState()); | 1953 host_->TapSuppressionControllerState()); |
| 1954 EXPECT_FALSE(host_->FlingInProgress()); | 1954 EXPECT_FALSE(host_->FlingInProgress()); |
| 1955 } | 1955 } |
| 1956 | 1956 |
| 1957 // Test TapSuppressionController for when unprocessed GestureFlingCancel Ack | 1957 // Test TouchpadTapSuppressionController for when unprocessed GestureFlingCancel |
| 1958 // comes after MouseDown and everything happens without any delay. | 1958 // Ack comes after MouseDown and everything happens without any delay. |
| 1959 TEST_F(RenderWidgetHostTest, GFCAckUnprocessedAfterMouseFast) { | 1959 TEST_F(RenderWidgetHostTest, GFCAckUnprocessedAfterMouseFast) { |
| 1960 process_->sink().ClearMessages(); | 1960 process_->sink().ClearMessages(); |
| 1961 | 1961 |
| 1962 // Send GestureFlingStart. | 1962 // Send GestureFlingStart. |
| 1963 SimulateGestureFlingStartEvent(0, -10, WebGestureEvent::Touchpad); | 1963 SimulateGestureFlingStartEvent(0, -10, WebGestureEvent::Touchpad); |
| 1964 EXPECT_EQ(1U, process_->sink().message_count()); | 1964 EXPECT_EQ(1U, process_->sink().message_count()); |
| 1965 EXPECT_EQ(1U, host_->GestureEventLastQueueEventSize()); | 1965 EXPECT_EQ(1U, host_->GestureEventLastQueueEventSize()); |
| 1966 EXPECT_EQ(WebInputEvent::GestureFlingStart, | 1966 EXPECT_EQ(WebInputEvent::GestureFlingStart, |
| 1967 host_->GestureEventLastQueueEvent().type); | 1967 host_->GestureEventLastQueueEvent().type); |
| 1968 EXPECT_EQ(MockRenderWidgetHost::TSC_NOTHING, | 1968 EXPECT_EQ(MockRenderWidgetHost::TSC_NOTHING, |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2011 | 2011 |
| 2012 // Send MouseUp. This MouseUp should not be suppressed. | 2012 // Send MouseUp. This MouseUp should not be suppressed. |
| 2013 SimulateMouseEvent(WebInputEvent::MouseUp); | 2013 SimulateMouseEvent(WebInputEvent::MouseUp); |
| 2014 EXPECT_EQ(4U, process_->sink().message_count()); | 2014 EXPECT_EQ(4U, process_->sink().message_count()); |
| 2015 EXPECT_EQ(0U, host_->GestureEventLastQueueEventSize()); | 2015 EXPECT_EQ(0U, host_->GestureEventLastQueueEventSize()); |
| 2016 EXPECT_EQ(MockRenderWidgetHost::TSC_NOTHING, | 2016 EXPECT_EQ(MockRenderWidgetHost::TSC_NOTHING, |
| 2017 host_->TapSuppressionControllerState()); | 2017 host_->TapSuppressionControllerState()); |
| 2018 EXPECT_FALSE(host_->FlingInProgress()); | 2018 EXPECT_FALSE(host_->FlingInProgress()); |
| 2019 } | 2019 } |
| 2020 | 2020 |
| 2021 // Test TapSuppressionController for when processed GestureFlingCancel Ack | 2021 // Test TouchpadTapSuppressionController for when processed GestureFlingCancel |
| 2022 // comes after MouseDown and everything happens without any delay. | 2022 // Ack comes after MouseDown and everything happens without any delay. |
| 2023 TEST_F(RenderWidgetHostTest, GFCAckProcessedAfterMouseFast) { | 2023 TEST_F(RenderWidgetHostTest, GFCAckProcessedAfterMouseFast) { |
| 2024 process_->sink().ClearMessages(); | 2024 process_->sink().ClearMessages(); |
| 2025 | 2025 |
| 2026 // Send GestureFlingStart. | 2026 // Send GestureFlingStart. |
| 2027 SimulateGestureFlingStartEvent(0, -10, WebGestureEvent::Touchpad); | 2027 SimulateGestureFlingStartEvent(0, -10, WebGestureEvent::Touchpad); |
| 2028 EXPECT_EQ(1U, process_->sink().message_count()); | 2028 EXPECT_EQ(1U, process_->sink().message_count()); |
| 2029 EXPECT_EQ(1U, host_->GestureEventLastQueueEventSize()); | 2029 EXPECT_EQ(1U, host_->GestureEventLastQueueEventSize()); |
| 2030 EXPECT_EQ(WebInputEvent::GestureFlingStart, | 2030 EXPECT_EQ(WebInputEvent::GestureFlingStart, |
| 2031 host_->GestureEventLastQueueEvent().type); | 2031 host_->GestureEventLastQueueEvent().type); |
| 2032 EXPECT_EQ(MockRenderWidgetHost::TSC_NOTHING, | 2032 EXPECT_EQ(MockRenderWidgetHost::TSC_NOTHING, |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2074 | 2074 |
| 2075 // Send MouseUp. This MouseUp should be suppressed. | 2075 // Send MouseUp. This MouseUp should be suppressed. |
| 2076 SimulateMouseEvent(WebInputEvent::MouseUp); | 2076 SimulateMouseEvent(WebInputEvent::MouseUp); |
| 2077 EXPECT_EQ(2U, process_->sink().message_count()); | 2077 EXPECT_EQ(2U, process_->sink().message_count()); |
| 2078 EXPECT_EQ(0U, host_->GestureEventLastQueueEventSize()); | 2078 EXPECT_EQ(0U, host_->GestureEventLastQueueEventSize()); |
| 2079 EXPECT_EQ(MockRenderWidgetHost::TSC_NOTHING, | 2079 EXPECT_EQ(MockRenderWidgetHost::TSC_NOTHING, |
| 2080 host_->TapSuppressionControllerState()); | 2080 host_->TapSuppressionControllerState()); |
| 2081 EXPECT_FALSE(host_->FlingInProgress()); | 2081 EXPECT_FALSE(host_->FlingInProgress()); |
| 2082 } | 2082 } |
| 2083 | 2083 |
| 2084 // Test TapSuppressionController for when GestureFlingCancel Ack comes after | 2084 // Test TouchpadTapSuppressionController for when GestureFlingCancel Ack comes |
| 2085 // MouseDown and there is a small delay between the Ack and MouseUp. | 2085 // after MouseDown and there is a small delay between the Ack and MouseUp. |
| 2086 TEST_F(RenderWidgetHostTest, GFCAckAfterMouseInsufficientlyLateMouseUp) { | 2086 TEST_F(RenderWidgetHostTest, GFCAckAfterMouseInsufficientlyLateMouseUp) { |
| 2087 process_->sink().ClearMessages(); | 2087 process_->sink().ClearMessages(); |
| 2088 | 2088 |
| 2089 // Send GestureFlingStart. | 2089 // Send GestureFlingStart. |
| 2090 SimulateGestureFlingStartEvent(0, -10, WebGestureEvent::Touchpad); | 2090 SimulateGestureFlingStartEvent(0, -10, WebGestureEvent::Touchpad); |
| 2091 EXPECT_EQ(1U, process_->sink().message_count()); | 2091 EXPECT_EQ(1U, process_->sink().message_count()); |
| 2092 EXPECT_EQ(1U, host_->GestureEventLastQueueEventSize()); | 2092 EXPECT_EQ(1U, host_->GestureEventLastQueueEventSize()); |
| 2093 EXPECT_EQ(WebInputEvent::GestureFlingStart, | 2093 EXPECT_EQ(WebInputEvent::GestureFlingStart, |
| 2094 host_->GestureEventLastQueueEvent().type); | 2094 host_->GestureEventLastQueueEvent().type); |
| 2095 EXPECT_EQ(MockRenderWidgetHost::TSC_NOTHING, | 2095 EXPECT_EQ(MockRenderWidgetHost::TSC_NOTHING, |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2152 | 2152 |
| 2153 // Send MouseUp. This MouseUp should be suppressed. | 2153 // Send MouseUp. This MouseUp should be suppressed. |
| 2154 SimulateMouseEvent(WebInputEvent::MouseUp); | 2154 SimulateMouseEvent(WebInputEvent::MouseUp); |
| 2155 EXPECT_EQ(2U, process_->sink().message_count()); | 2155 EXPECT_EQ(2U, process_->sink().message_count()); |
| 2156 EXPECT_EQ(0U, host_->GestureEventLastQueueEventSize()); | 2156 EXPECT_EQ(0U, host_->GestureEventLastQueueEventSize()); |
| 2157 EXPECT_EQ(MockRenderWidgetHost::TSC_NOTHING, | 2157 EXPECT_EQ(MockRenderWidgetHost::TSC_NOTHING, |
| 2158 host_->TapSuppressionControllerState()); | 2158 host_->TapSuppressionControllerState()); |
| 2159 EXPECT_FALSE(host_->FlingInProgress()); | 2159 EXPECT_FALSE(host_->FlingInProgress()); |
| 2160 } | 2160 } |
| 2161 | 2161 |
| 2162 // Test TapSuppressionController for when GestureFlingCancel Ack comes after | 2162 // Test TouchpadTapSuppressionController for when GestureFlingCancel Ack comes |
| 2163 // MouseDown and there is a long delay between the Ack and MouseUp. | 2163 // after MouseDown and there is a long delay between the Ack and MouseUp. |
| 2164 TEST_F(RenderWidgetHostTest, GFCAckAfterMouseSufficientlyLateMouseUp) { | 2164 TEST_F(RenderWidgetHostTest, GFCAckAfterMouseSufficientlyLateMouseUp) { |
| 2165 process_->sink().ClearMessages(); | 2165 process_->sink().ClearMessages(); |
| 2166 | 2166 |
| 2167 // Send GestureFlingStart. | 2167 // Send GestureFlingStart. |
| 2168 SimulateGestureFlingStartEvent(0, -10, WebGestureEvent::Touchpad); | 2168 SimulateGestureFlingStartEvent(0, -10, WebGestureEvent::Touchpad); |
| 2169 EXPECT_EQ(1U, process_->sink().message_count()); | 2169 EXPECT_EQ(1U, process_->sink().message_count()); |
| 2170 EXPECT_EQ(1U, host_->GestureEventLastQueueEventSize()); | 2170 EXPECT_EQ(1U, host_->GestureEventLastQueueEventSize()); |
| 2171 EXPECT_EQ(WebInputEvent::GestureFlingStart, | 2171 EXPECT_EQ(WebInputEvent::GestureFlingStart, |
| 2172 host_->GestureEventLastQueueEvent().type); | 2172 host_->GestureEventLastQueueEvent().type); |
| 2173 EXPECT_EQ(MockRenderWidgetHost::TSC_NOTHING, | 2173 EXPECT_EQ(MockRenderWidgetHost::TSC_NOTHING, |
| (...skipping 1091 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3265 EXPECT_EQ(1U, host_->GestureEventLastQueueEventSize()); | 3265 EXPECT_EQ(1U, host_->GestureEventLastQueueEventSize()); |
| 3266 EXPECT_EQ(0U, host_->GestureEventDebouncingQueueSize()); | 3266 EXPECT_EQ(0U, host_->GestureEventDebouncingQueueSize()); |
| 3267 | 3267 |
| 3268 SendInputEventACK(WebKit::WebInputEvent::GestureScrollEnd, false); | 3268 SendInputEventACK(WebKit::WebInputEvent::GestureScrollEnd, false); |
| 3269 EXPECT_EQ(0U, process_->sink().message_count()); | 3269 EXPECT_EQ(0U, process_->sink().message_count()); |
| 3270 EXPECT_EQ(0U, host_->GestureEventLastQueueEventSize()); | 3270 EXPECT_EQ(0U, host_->GestureEventLastQueueEventSize()); |
| 3271 EXPECT_EQ(0U, host_->GestureEventDebouncingQueueSize()); | 3271 EXPECT_EQ(0U, host_->GestureEventDebouncingQueueSize()); |
| 3272 } | 3272 } |
| 3273 | 3273 |
| 3274 } // namespace content | 3274 } // namespace content |
| OLD | NEW |