Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(119)

Side by Side Diff: content/public/android/javatests/src/org/chromium/content/browser/ContentViewGestureHandlerTest.java

Issue 18850005: Disable double tap zoom on mobile sites, to remove 300ms click delay (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix typo Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 package org.chromium.content.browser; 5 package org.chromium.content.browser;
6 6
7 import android.content.Context; 7 import android.content.Context;
8 import android.os.Build; 8 import android.os.Build;
9 import android.os.Bundle; 9 import android.os.Bundle;
10 import android.os.SystemClock; 10 import android.os.SystemClock;
(...skipping 1755 matching lines...) Expand 10 before | Expand all | Expand 10 after
1766 // If events are delivered at vsync, multiple SCROLL_BY and PINCH_BY eve nts should still 1766 // If events are delivered at vsync, multiple SCROLL_BY and PINCH_BY eve nts should still
1767 // trigger only a single vsync from any given call to confirmTouchEvent( ). 1767 // trigger only a single vsync from any given call to confirmTouchEvent( ).
1768 if (inputEventsDeliveredAtVSync) { 1768 if (inputEventsDeliveredAtVSync) {
1769 assertEquals(1, mMockMotionEventDelegate.mTotalSentLastGestureForVSy ncCount); 1769 assertEquals(1, mMockMotionEventDelegate.mTotalSentLastGestureForVSy ncCount);
1770 } else { 1770 } else {
1771 assertEquals(0, mMockMotionEventDelegate.mTotalSentLastGestureForVSy ncCount); 1771 assertEquals(0, mMockMotionEventDelegate.mTotalSentLastGestureForVSy ncCount);
1772 } 1772 }
1773 } 1773 }
1774 1774
1775 /** 1775 /**
1776 * Verify that no double tap gestures are created if the page has a fixed 1776 * Verify that no double tap gestures are created if the gesture handler is
1777 * page scale. 1777 * told to disable double tap gesture detection (according to the logic in
1778 * ContentViewCore.onRenderCoordinatesUpdated).
1778 * @throws Exception 1779 * @throws Exception
1779 */ 1780 */
1780 @SmallTest 1781 @SmallTest
1781 @Feature({"Gestures"}) 1782 @Feature({"Gestures"})
1782 public void testNoDoubleTapWhenPageScaleFixed() throws Exception { 1783 public void testNoDoubleTapWhenDoubleTapDisabled() throws Exception {
1783 final long downTime = SystemClock.uptimeMillis(); 1784 final long downTime = SystemClock.uptimeMillis();
1784 final long eventTime = SystemClock.uptimeMillis(); 1785 final long eventTime = SystemClock.uptimeMillis();
1785 1786
1786 GestureRecordingMotionEventDelegate mockDelegate = 1787 GestureRecordingMotionEventDelegate mockDelegate =
1787 new GestureRecordingMotionEventDelegate(); 1788 new GestureRecordingMotionEventDelegate();
1788 mGestureHandler = new ContentViewGestureHandler( 1789 mGestureHandler = new ContentViewGestureHandler(
1789 getInstrumentation().getTargetContext(), mockDelegate, mMockZoom Manager, 1790 getInstrumentation().getTargetContext(), mockDelegate, mMockZoom Manager,
1790 ContentViewCore.INPUT_EVENTS_DELIVERED_AT_VSYNC); 1791 ContentViewCore.INPUT_EVENTS_DELIVERED_AT_VSYNC);
1791 mGestureHandler.updateHasFixedPageScale(true); 1792 mGestureHandler.updateShouldDisableDoubleTap(true);
1792 1793
1793 MotionEvent event = MotionEvent.obtain( 1794 MotionEvent event = MotionEvent.obtain(
1794 downTime, downTime, MotionEvent.ACTION_DOWN, 1795 downTime, downTime, MotionEvent.ACTION_DOWN,
1795 FAKE_COORD_X, FAKE_COORD_Y, 0); 1796 FAKE_COORD_X, FAKE_COORD_Y, 0);
1796 assertTrue(mGestureHandler.onTouchEvent(event)); 1797 assertTrue(mGestureHandler.onTouchEvent(event));
1797 assertEquals("No events should have been sent", 1798 assertEquals("No events should have been sent",
1798 0, mockDelegate.mGestureTypeList.size()); 1799 0, mockDelegate.mGestureTypeList.size());
1799 1800
1800 event = MotionEvent.obtain( 1801 event = MotionEvent.obtain(
1801 downTime, eventTime + 5, MotionEvent.ACTION_UP, 1802 downTime, eventTime + 5, MotionEvent.ACTION_UP,
(...skipping 18 matching lines...) Expand all
1820 assertTrue(mGestureHandler.onTouchEvent(event)); 1821 assertTrue(mGestureHandler.onTouchEvent(event));
1821 assertEquals("A double tap should not have occurred", 1822 assertEquals("A double tap should not have occurred",
1822 ContentViewGestureHandler.GESTURE_SINGLE_TAP_CONFIRMED, 1823 ContentViewGestureHandler.GESTURE_SINGLE_TAP_CONFIRMED,
1823 mockDelegate.mMostRecentGestureEvent.mType); 1824 mockDelegate.mMostRecentGestureEvent.mType);
1824 assertEquals("Only GESTURE_SINGLE_TAP_CONFIRMED and " + 1825 assertEquals("Only GESTURE_SINGLE_TAP_CONFIRMED and " +
1825 "GESTURE_SINGLE_TAP_CONFIRMED should have been sent", 1826 "GESTURE_SINGLE_TAP_CONFIRMED should have been sent",
1826 2, mockDelegate.mGestureTypeList.size()); 1827 2, mockDelegate.mGestureTypeList.size());
1827 } 1828 }
1828 1829
1829 /** 1830 /**
1830 * Verify that double tap drag zoom feature is not invoked 1831 * Verify that double tap drag zoom feature is not invoked when the gesture
1831 * when the page scale is fixed. The second tap sequence should be 1832 * handler is told to disable double tap gesture detection (according to the
1832 * treated just as the first would be. 1833 * logic in ContentViewCore.onRenderCoordinatesUpdated).
1834 * The second tap sequence should be treated just as the first would be.
1833 * @throws Exception 1835 * @throws Exception
1834 */ 1836 */
1835 @SmallTest 1837 @SmallTest
1836 @Feature({"Gestures"}) 1838 @Feature({"Gestures"})
1837 public void testNoDoubleTapDragZoomWhenPageScaleFixed() throws Exception { 1839 public void testNoDoubleTapDragZoomWhenDoubleTapDisabled() throws Exception {
1838 final long downTime1 = SystemClock.uptimeMillis(); 1840 final long downTime1 = SystemClock.uptimeMillis();
1839 final long downTime2 = downTime1 + 100; 1841 final long downTime2 = downTime1 + 100;
1840 1842
1841 GestureRecordingMotionEventDelegate mockDelegate = 1843 GestureRecordingMotionEventDelegate mockDelegate =
1842 new GestureRecordingMotionEventDelegate(); 1844 new GestureRecordingMotionEventDelegate();
1843 mGestureHandler = new ContentViewGestureHandler( 1845 mGestureHandler = new ContentViewGestureHandler(
1844 getInstrumentation().getTargetContext(), mockDelegate, mMockZoom Manager, 1846 getInstrumentation().getTargetContext(), mockDelegate, mMockZoom Manager,
1845 ContentViewCore.INPUT_EVENTS_DELIVERED_AT_VSYNC); 1847 ContentViewCore.INPUT_EVENTS_DELIVERED_AT_VSYNC);
1846 mGestureHandler.updateHasFixedPageScale(true); 1848 mGestureHandler.updateShouldDisableDoubleTap(true);
1847 1849
1848 MotionEvent event = motionEvent(MotionEvent.ACTION_DOWN, downTime1, down Time1); 1850 MotionEvent event = motionEvent(MotionEvent.ACTION_DOWN, downTime1, down Time1);
1849 assertTrue(mGestureHandler.onTouchEvent(event)); 1851 assertTrue(mGestureHandler.onTouchEvent(event));
1850 1852
1851 event = MotionEvent.obtain( 1853 event = MotionEvent.obtain(
1852 downTime1, downTime1 + 5, MotionEvent.ACTION_UP, 1854 downTime1, downTime1 + 5, MotionEvent.ACTION_UP,
1853 FAKE_COORD_X, FAKE_COORD_Y, 0); 1855 FAKE_COORD_X, FAKE_COORD_Y, 0);
1854 mGestureHandler.onTouchEvent(event); 1856 mGestureHandler.onTouchEvent(event);
1855 1857
1856 event = MotionEvent.obtain( 1858 event = MotionEvent.obtain(
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
1888 1890
1889 event = MotionEvent.obtain( 1891 event = MotionEvent.obtain(
1890 downTime2, downTime2 + 15, MotionEvent.ACTION_UP, 1892 downTime2, downTime2 + 15, MotionEvent.ACTION_UP,
1891 FAKE_COORD_X, FAKE_COORD_Y + 200, 0); 1893 FAKE_COORD_X, FAKE_COORD_Y + 200, 0);
1892 assertTrue(mGestureHandler.onTouchEvent(event)); 1894 assertTrue(mGestureHandler.onTouchEvent(event));
1893 assertFalse("No GESTURE_PINCH_END should have been sent", 1895 assertFalse("No GESTURE_PINCH_END should have been sent",
1894 mockDelegate.mGestureTypeList.contains( 1896 mockDelegate.mGestureTypeList.contains(
1895 ContentViewGestureHandler.GESTURE_PINCH_END)); 1897 ContentViewGestureHandler.GESTURE_PINCH_END));
1896 } 1898 }
1897 } 1899 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698