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 "base/basictypes.h" | 5 #include "base/basictypes.h" |
6 #include "base/logging.h" | 6 #include "base/logging.h" |
7 #include "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
8 #include "base/message_loop/message_loop.h" | 8 #include "base/message_loop/message_loop.h" |
9 #include "content/browser/renderer_host/input/timeout_monitor.h" | 9 #include "content/browser/renderer_host/input/timeout_monitor.h" |
10 #include "content/browser/renderer_host/input/touch_event_queue.h" | 10 #include "content/browser/renderer_host/input/touch_event_queue.h" |
(...skipping 841 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
852 // Queue a TouchStart. | 852 // Queue a TouchStart. |
853 PressTouchPoint(0, 1); | 853 PressTouchPoint(0, 1); |
854 EXPECT_EQ(1U, GetAndResetSentEventCount()); | 854 EXPECT_EQ(1U, GetAndResetSentEventCount()); |
855 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 855 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
856 EXPECT_EQ(1U, GetAndResetAckedEventCount()); | 856 EXPECT_EQ(1U, GetAndResetAckedEventCount()); |
857 | 857 |
858 MoveTouchPoint(0, 20, 5); | 858 MoveTouchPoint(0, 20, 5); |
859 EXPECT_EQ(1U, queued_event_count()); | 859 EXPECT_EQ(1U, queued_event_count()); |
860 EXPECT_EQ(1U, GetAndResetSentEventCount()); | 860 EXPECT_EQ(1U, GetAndResetSentEventCount()); |
861 | 861 |
862 MoveTouchPoint(0, 30, 15); | |
863 EXPECT_EQ(2U, queued_event_count()); | |
864 EXPECT_EQ(0U, GetAndResetSentEventCount()); | |
865 | |
862 // Queue another TouchStart. | 866 // Queue another TouchStart. |
863 PressTouchPoint(20, 20); | 867 PressTouchPoint(20, 20); |
864 EXPECT_EQ(2U, queued_event_count()); | 868 EXPECT_EQ(3U, queued_event_count()); |
865 EXPECT_EQ(0U, GetAndResetSentEventCount()); | 869 EXPECT_EQ(0U, GetAndResetSentEventCount()); |
866 EXPECT_EQ(WebInputEvent::TouchStart, latest_event().type); | 870 EXPECT_EQ(WebInputEvent::TouchStart, latest_event().type); |
867 | 871 |
868 // GestureScrollBegin inserts a synthetic TouchCancel before the TouchStart. | |
869 WebGestureEvent followup_scroll; | 872 WebGestureEvent followup_scroll; |
870 followup_scroll.type = WebInputEvent::GestureScrollBegin; | 873 followup_scroll.type = WebInputEvent::GestureScrollBegin; |
871 SetFollowupEvent(followup_scroll); | 874 SetFollowupEvent(followup_scroll); |
872 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 875 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
873 EXPECT_EQ(1U, GetAndResetSentEventCount()); | 876 EXPECT_EQ(1U, GetAndResetSentEventCount()); |
874 EXPECT_EQ(1U, GetAndResetAckedEventCount()); | 877 EXPECT_EQ(1U, GetAndResetAckedEventCount()); |
875 EXPECT_EQ(2U, queued_event_count()); | 878 EXPECT_EQ(2U, queued_event_count()); |
879 EXPECT_TRUE(sent_event().cancelable); | |
880 EXPECT_EQ(WebInputEvent::TouchMove, sent_event().type); | |
881 | |
882 // GestureScrollUpdate inserts a synthetic TouchCancel before the TouchStart. | |
883 followup_scroll.type = WebInputEvent::GestureScrollUpdate; | |
884 SetFollowupEvent(followup_scroll); | |
885 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | |
886 EXPECT_EQ(1U, GetAndResetSentEventCount()); | |
887 EXPECT_EQ(1U, GetAndResetAckedEventCount()); | |
888 EXPECT_EQ(2U, queued_event_count()); | |
876 EXPECT_EQ(WebInputEvent::TouchCancel, sent_event().type); | 889 EXPECT_EQ(WebInputEvent::TouchCancel, sent_event().type); |
877 EXPECT_FALSE(sent_event().cancelable); | 890 EXPECT_FALSE(sent_event().cancelable); |
878 EXPECT_EQ(WebInputEvent::TouchStart, latest_event().type); | 891 EXPECT_EQ(WebInputEvent::TouchStart, latest_event().type); |
879 | 892 |
880 // Acking the TouchCancel will result in dispatch of the next TouchStart. | 893 // Acking the TouchCancel will result in dispatch of the next TouchStart. |
881 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 894 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
882 // The synthetic TouchCancel should not reach client, only the TouchStart. | 895 // The synthetic TouchCancel should not reach client, only the TouchStart. |
883 EXPECT_EQ(1U, GetAndResetAckedEventCount()); | 896 EXPECT_EQ(1U, GetAndResetAckedEventCount()); |
884 EXPECT_EQ(0U, GetAndResetSentEventCount()); | 897 EXPECT_EQ(0U, GetAndResetSentEventCount()); |
885 EXPECT_EQ(WebInputEvent::TouchStart, acked_event().type); | 898 EXPECT_EQ(WebInputEvent::TouchStart, acked_event().type); |
886 | 899 |
887 // TouchMove should not be sent to the renderer. | 900 // TouchMove should not be sent to the renderer. |
888 MoveTouchPoint(0, 30, 5); | 901 MoveTouchPoint(0, 30, 5); |
889 EXPECT_EQ(1U, GetAndResetAckedEventCount()); | 902 EXPECT_EQ(1U, GetAndResetAckedEventCount()); |
890 EXPECT_EQ(0U, GetAndResetSentEventCount()); | 903 EXPECT_EQ(0U, GetAndResetSentEventCount()); |
891 EXPECT_EQ(INPUT_EVENT_ACK_STATE_NO_CONSUMER_EXISTS, acked_event_state()); | 904 EXPECT_EQ(INPUT_EVENT_ACK_STATE_NO_CONSUMER_EXISTS, acked_event_state()); |
892 | 905 |
893 // GestureScrollUpdates should not change affect touch forwarding. | |
894 SendGestureEvent(WebInputEvent::GestureScrollUpdate); | |
jdduke (slow)
2014/07/07 23:09:14
Why remove this?
tdresser
2014/07/08 15:56:41
I was thinking of it more as moving it upwards. Re
| |
895 | |
896 // TouchEnd should not be sent to the renderer. | 906 // TouchEnd should not be sent to the renderer. |
897 ReleaseTouchPoint(0); | 907 ReleaseTouchPoint(0); |
898 EXPECT_EQ(1U, GetAndResetAckedEventCount()); | 908 EXPECT_EQ(1U, GetAndResetAckedEventCount()); |
899 EXPECT_EQ(0U, GetAndResetSentEventCount()); | 909 EXPECT_EQ(0U, GetAndResetSentEventCount()); |
900 EXPECT_EQ(INPUT_EVENT_ACK_STATE_NO_CONSUMER_EXISTS, acked_event_state()); | 910 EXPECT_EQ(INPUT_EVENT_ACK_STATE_NO_CONSUMER_EXISTS, acked_event_state()); |
901 | 911 |
902 ReleaseTouchPoint(0); | 912 ReleaseTouchPoint(0); |
903 EXPECT_EQ(1U, GetAndResetAckedEventCount()); | 913 EXPECT_EQ(1U, GetAndResetAckedEventCount()); |
904 EXPECT_EQ(0U, GetAndResetSentEventCount()); | 914 EXPECT_EQ(0U, GetAndResetSentEventCount()); |
905 EXPECT_EQ(INPUT_EVENT_ACK_STATE_NO_CONSUMER_EXISTS, acked_event_state()); | 915 EXPECT_EQ(INPUT_EVENT_ACK_STATE_NO_CONSUMER_EXISTS, acked_event_state()); |
(...skipping 804 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1710 // scroll sequences that transitions between scrolls consumed and unconsumed. | 1720 // scroll sequences that transitions between scrolls consumed and unconsumed. |
1711 TEST_F(TouchEventQueueTest, AsyncTouchThrottledAfterScroll) { | 1721 TEST_F(TouchEventQueueTest, AsyncTouchThrottledAfterScroll) { |
1712 SetTouchScrollingMode(TouchEventQueue::TOUCH_SCROLLING_MODE_ASYNC_TOUCHMOVE); | 1722 SetTouchScrollingMode(TouchEventQueue::TOUCH_SCROLLING_MODE_ASYNC_TOUCHMOVE); |
1713 | 1723 |
1714 // Process a TouchStart | 1724 // Process a TouchStart |
1715 PressTouchPoint(0, 1); | 1725 PressTouchPoint(0, 1); |
1716 EXPECT_EQ(1U, GetAndResetSentEventCount()); | 1726 EXPECT_EQ(1U, GetAndResetSentEventCount()); |
1717 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 1727 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
1718 EXPECT_EQ(1U, GetAndResetAckedEventCount()); | 1728 EXPECT_EQ(1U, GetAndResetAckedEventCount()); |
1719 | 1729 |
1720 // Now send the first touch move and associated GestureScrollBegin, | 1730 // Now send the first touch move and associated GestureScrollBegin. |
1721 // but don't ACK the gesture event yet. | |
1722 MoveTouchPoint(0, 0, 5); | 1731 MoveTouchPoint(0, 0, 5); |
1723 WebGestureEvent followup_scroll; | 1732 WebGestureEvent followup_scroll; |
1724 followup_scroll.type = WebInputEvent::GestureScrollBegin; | 1733 followup_scroll.type = WebInputEvent::GestureScrollBegin; |
1725 SetFollowupEvent(followup_scroll); | 1734 SetFollowupEvent(followup_scroll); |
1726 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 1735 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
1727 EXPECT_EQ(1U, GetAndResetSentEventCount()); | 1736 EXPECT_EQ(1U, GetAndResetSentEventCount()); |
1728 EXPECT_EQ(1U, GetAndResetAckedEventCount()); | 1737 EXPECT_EQ(1U, GetAndResetAckedEventCount()); |
1738 SendGestureEventAck(WebInputEvent::GestureScrollBegin, | |
1739 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | |
1740 | |
1741 // Send the second touch move and associated GestureScrollUpdate, but don't | |
1742 // ACK the gesture event yet. | |
1743 MoveTouchPoint(0, 0, 5); | |
1744 followup_scroll.type = WebInputEvent::GestureScrollUpdate; | |
1745 SetFollowupEvent(followup_scroll); | |
1746 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | |
1747 EXPECT_EQ(1U, GetAndResetSentEventCount()); | |
1748 EXPECT_EQ(1U, GetAndResetAckedEventCount()); | |
1729 | 1749 |
1730 // Now queue a second touchmove and verify it's not (yet) dispatched. | 1750 // Now queue a second touchmove and verify it's not (yet) dispatched. |
1731 MoveTouchPoint(0, 0, 10); | 1751 MoveTouchPoint(0, 0, 10); |
1732 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 1752 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
1733 EXPECT_TRUE(HasPendingAsyncTouchMove()); | 1753 EXPECT_TRUE(HasPendingAsyncTouchMove()); |
1734 EXPECT_EQ(0U, queued_event_count()); | 1754 EXPECT_EQ(0U, queued_event_count()); |
1735 EXPECT_EQ(0U, GetAndResetSentEventCount()); | 1755 EXPECT_EQ(0U, GetAndResetSentEventCount()); |
1736 EXPECT_EQ(1U, GetAndResetAckedEventCount()); | 1756 EXPECT_EQ(1U, GetAndResetAckedEventCount()); |
1737 | 1757 |
1738 // Queuing the final touchend should flush the pending, async touchmove. | 1758 // Queuing the final touchend should flush the pending, async touchmove. |
(...skipping 14 matching lines...) Expand all Loading... | |
1753 EXPECT_EQ(1U, queued_event_count()); | 1773 EXPECT_EQ(1U, queued_event_count()); |
1754 | 1774 |
1755 // Ack the touchend. | 1775 // Ack the touchend. |
1756 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 1776 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
1757 EXPECT_EQ(0U, queued_event_count()); | 1777 EXPECT_EQ(0U, queued_event_count()); |
1758 EXPECT_EQ(0U, GetAndResetSentEventCount()); | 1778 EXPECT_EQ(0U, GetAndResetSentEventCount()); |
1759 EXPECT_EQ(1U, GetAndResetAckedEventCount()); | 1779 EXPECT_EQ(1U, GetAndResetAckedEventCount()); |
1760 | 1780 |
1761 // Now mark the scroll as not consumed (which would cause future | 1781 // Now mark the scroll as not consumed (which would cause future |
1762 // touchmoves in the active sequence to be sent if there was one). | 1782 // touchmoves in the active sequence to be sent if there was one). |
1763 SendGestureEventAck(WebInputEvent::GestureScrollBegin, | 1783 SendGestureEventAck(WebInputEvent::GestureScrollUpdate, |
1764 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 1784 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
1765 | 1785 |
1766 // Start a new touch sequence and verify that throttling has been reset. | 1786 // Start a new touch sequence and verify that throttling has been reset. |
1767 // Touch moves after the start of scrolling will again be throttled. | 1787 // Touch moves after the start of scrolling will again be throttled. |
1768 PressTouchPoint(0, 0); | 1788 PressTouchPoint(0, 0); |
1769 EXPECT_EQ(1U, GetAndResetSentEventCount()); | 1789 EXPECT_EQ(1U, GetAndResetSentEventCount()); |
1770 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 1790 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
1771 EXPECT_EQ(1U, GetAndResetAckedEventCount()); | 1791 EXPECT_EQ(1U, GetAndResetAckedEventCount()); |
1772 MoveTouchPoint(0, 0, 5); | 1792 MoveTouchPoint(0, 0, 5); |
1793 followup_scroll.type = WebInputEvent::GestureScrollBegin; | |
1773 SetFollowupEvent(followup_scroll); | 1794 SetFollowupEvent(followup_scroll); |
1774 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 1795 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
1775 EXPECT_EQ(1U, GetAndResetSentEventCount()); | 1796 EXPECT_EQ(1U, GetAndResetSentEventCount()); |
1776 EXPECT_EQ(1U, GetAndResetAckedEventCount()); | 1797 EXPECT_EQ(1U, GetAndResetAckedEventCount()); |
1798 | |
1799 MoveTouchPoint(0, 0, 5); | |
1800 followup_scroll.type = WebInputEvent::GestureScrollUpdate; | |
1801 SetFollowupEvent(followup_scroll); | |
1802 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | |
1803 EXPECT_EQ(1U, GetAndResetSentEventCount()); | |
1804 EXPECT_EQ(1U, GetAndResetAckedEventCount()); | |
1805 | |
1777 MoveTouchPoint(0, 0, 10); | 1806 MoveTouchPoint(0, 0, 10); |
1778 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 1807 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
1779 EXPECT_TRUE(HasPendingAsyncTouchMove()); | 1808 EXPECT_TRUE(HasPendingAsyncTouchMove()); |
1780 EXPECT_EQ(0U, queued_event_count()); | 1809 EXPECT_EQ(0U, queued_event_count()); |
1781 EXPECT_EQ(0U, GetAndResetSentEventCount()); | 1810 EXPECT_EQ(0U, GetAndResetSentEventCount()); |
1782 EXPECT_EQ(1U, GetAndResetAckedEventCount()); | 1811 EXPECT_EQ(1U, GetAndResetAckedEventCount()); |
1783 | 1812 |
1784 // As soon as a touchmove exceeds the outer slop region it will be forwarded | 1813 // As soon as a touchmove exceeds the outer slop region it will be forwarded |
1785 // immediately. | 1814 // immediately. |
1786 MoveTouchPoint(0, 0, 20); | 1815 MoveTouchPoint(0, 0, 20); |
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1986 // The start of a scroll gesture should trigger async touch event dispatch. | 2015 // The start of a scroll gesture should trigger async touch event dispatch. |
1987 MoveTouchPoint(0, 1, 1); | 2016 MoveTouchPoint(0, 1, 1); |
1988 EXPECT_EQ(1U, GetAndResetSentEventCount()); | 2017 EXPECT_EQ(1U, GetAndResetSentEventCount()); |
1989 WebGestureEvent followup_scroll; | 2018 WebGestureEvent followup_scroll; |
1990 followup_scroll.type = WebInputEvent::GestureScrollBegin; | 2019 followup_scroll.type = WebInputEvent::GestureScrollBegin; |
1991 SetFollowupEvent(followup_scroll); | 2020 SetFollowupEvent(followup_scroll); |
1992 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 2021 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
1993 EXPECT_EQ(1U, GetAndResetAckedEventCount()); | 2022 EXPECT_EQ(1U, GetAndResetAckedEventCount()); |
1994 EXPECT_EQ(0U, queued_event_count()); | 2023 EXPECT_EQ(0U, queued_event_count()); |
1995 | 2024 |
2025 SendGestureEvent(WebInputEvent::GestureScrollUpdate); | |
2026 | |
1996 // The async touchmove should be ack'ed immediately, but not forwarded. | 2027 // The async touchmove should be ack'ed immediately, but not forwarded. |
1997 // However, because the ack triggers a touchcancel, both the pending touch and | 2028 // However, because the ack triggers a touchcancel, both the pending touch and |
1998 // the queued touchcancel should be flushed. | 2029 // the queued touchcancel should be flushed. |
1999 WebTouchEvent followup_cancel; | 2030 WebTouchEvent followup_cancel; |
2000 followup_cancel.type = WebInputEvent::TouchCancel; | 2031 followup_cancel.type = WebInputEvent::TouchCancel; |
2001 followup_cancel.touchesLength = 1; | 2032 followup_cancel.touchesLength = 1; |
2002 followup_cancel.touches[0].state = WebTouchPoint::StateCancelled; | 2033 followup_cancel.touches[0].state = WebTouchPoint::StateCancelled; |
2003 SetFollowupEvent(followup_cancel); | 2034 SetFollowupEvent(followup_cancel); |
2004 MoveTouchPoint(0, 5, 5); | 2035 MoveTouchPoint(0, 5, 5); |
2005 EXPECT_EQ(2U, queued_event_count()); | 2036 EXPECT_EQ(2U, queued_event_count()); |
2006 EXPECT_FALSE(sent_event().cancelable); | 2037 EXPECT_FALSE(sent_event().cancelable); |
2007 EXPECT_FALSE(HasPendingAsyncTouchMove()); | 2038 EXPECT_FALSE(HasPendingAsyncTouchMove()); |
2008 EXPECT_EQ(WebInputEvent::TouchMove, acked_event().type); | 2039 EXPECT_EQ(WebInputEvent::TouchMove, acked_event().type); |
2009 EXPECT_EQ(WebInputEvent::TouchMove, sent_event().type); | 2040 EXPECT_EQ(WebInputEvent::TouchMove, sent_event().type); |
2010 EXPECT_EQ(1U, GetAndResetAckedEventCount()); | 2041 EXPECT_EQ(1U, GetAndResetAckedEventCount()); |
2011 EXPECT_EQ(1U, GetAndResetSentEventCount()); | 2042 EXPECT_EQ(1U, GetAndResetSentEventCount()); |
2012 | 2043 |
2013 // The ack for the asnc touchmove should not reach the client, as it has | 2044 // The ack for the async touchmove should not reach the client, as it has |
2014 // already been ack'ed. | 2045 // already been ack'ed. |
2015 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 2046 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
2016 EXPECT_FALSE(sent_event().cancelable); | 2047 EXPECT_FALSE(sent_event().cancelable); |
2017 EXPECT_EQ(1U, queued_event_count()); | 2048 EXPECT_EQ(1U, queued_event_count()); |
2018 EXPECT_EQ(WebInputEvent::TouchCancel, sent_event().type); | 2049 EXPECT_EQ(WebInputEvent::TouchCancel, sent_event().type); |
2019 EXPECT_EQ(0U, GetAndResetAckedEventCount()); | 2050 EXPECT_EQ(0U, GetAndResetAckedEventCount()); |
2020 EXPECT_EQ(1U, GetAndResetSentEventCount()); | 2051 EXPECT_EQ(1U, GetAndResetSentEventCount()); |
2021 | 2052 |
2022 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 2053 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
2023 EXPECT_EQ(0U, queued_event_count()); | 2054 EXPECT_EQ(0U, queued_event_count()); |
2024 EXPECT_EQ(WebInputEvent::TouchCancel, acked_event().type); | 2055 EXPECT_EQ(WebInputEvent::TouchCancel, acked_event().type); |
2025 EXPECT_EQ(1U, GetAndResetAckedEventCount()); | 2056 EXPECT_EQ(1U, GetAndResetAckedEventCount()); |
2026 EXPECT_EQ(0U, GetAndResetSentEventCount()); | 2057 EXPECT_EQ(0U, GetAndResetSentEventCount()); |
2027 } | 2058 } |
2028 | 2059 |
2060 TEST_F(TouchEventQueueTest, TouchAbsorptionWithConsumedFirstMove) { | |
2061 SetTouchScrollingMode(TouchEventQueue::TOUCH_SCROLLING_MODE_ASYNC_TOUCHMOVE); | |
2062 | |
2063 // Queue a TouchStart. | |
2064 PressTouchPoint(0, 1); | |
2065 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | |
2066 EXPECT_EQ(0U, queued_event_count()); | |
2067 EXPECT_EQ(1U, GetAndResetAckedEventCount()); | |
2068 | |
2069 MoveTouchPoint(0, 20, 5); | |
2070 SendGestureEvent(blink::WebInputEvent::GestureScrollBegin); | |
2071 SendTouchEventAck(INPUT_EVENT_ACK_STATE_CONSUMED); | |
2072 EXPECT_EQ(0U, queued_event_count()); | |
2073 EXPECT_EQ(2U, GetAndResetSentEventCount()); | |
2074 | |
2075 // Even if the first touchmove event was consumed, we should be able to | |
2076 // scroll if we receive unconsumed touchmove events. | |
jdduke (slow)
2014/07/07 23:09:14
Maybe change the comment to say:
// Even if the f
tdresser
2014/07/08 15:56:41
Done.
| |
2077 MoveTouchPoint(0, 60, 5); | |
2078 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | |
2079 EXPECT_EQ(0U, queued_event_count()); | |
2080 EXPECT_EQ(1U, GetAndResetSentEventCount()); | |
2081 } | |
2082 | |
2029 } // namespace content | 2083 } // namespace content |
OLD | NEW |