Loading core/java/android/webkit/WebViewClassic.java +4 −22 Original line number Diff line number Diff line Loading @@ -1716,6 +1716,10 @@ public final class WebViewClassic implements WebViewProvider, WebViewProvider.Sc mZoomManager.updateDefaultZoomDensity(density); } /* package */ int getScaledNavSlop() { return viewToContentDimension(mNavSlop); } /* package */ boolean onSavePassword(String schemePlusHost, String username, String password, final Message resumeMsg) { boolean rVal = false; Loading Loading @@ -4338,10 +4342,6 @@ public final class WebViewClassic implements WebViewProvider, WebViewProvider.Sc } private void removeTouchHighlight() { if (mWebViewCore != null) { mWebViewCore.removeMessages(EventHub.HIT_TEST); } mPrivateHandler.removeMessages(HIT_TEST_RESULT); setTouchHighlightRects(null); } Loading Loading @@ -5816,7 +5816,6 @@ public final class WebViewClassic implements WebViewProvider, WebViewProvider.Sc switch (action) { case MotionEvent.ACTION_DOWN: { mConfirmMove = false; mInitialHitTestResult = null; if (!mEditTextScroller.isFinished()) { mEditTextScroller.abortAnimation(); } Loading @@ -5838,23 +5837,6 @@ public final class WebViewClassic implements WebViewProvider, WebViewProvider.Sc } } else { // the normal case mTouchMode = TOUCH_INIT_MODE; // TODO: Have WebViewInputDispatch handle this TouchHighlightData data = new TouchHighlightData(); data.mX = contentX; data.mY = contentY; data.mNativeLayerRect = new Rect(); if (mNativeClass != 0) { data.mNativeLayer = nativeScrollableLayer(mNativeClass, contentX, contentY, data.mNativeLayerRect, null); } else { data.mNativeLayer = 0; } data.mSlop = viewToContentDimension(mNavSlop); removeTouchHighlight(); if (!mBlockWebkitViewMessages && mWebViewCore != null) { mWebViewCore.sendMessageAtFrontOfQueue( EventHub.HIT_TEST, data); } if (mLogEvent && eventTime - mLastTouchUpTime < 1000) { EventLog.writeEvent(EventLogTags.BROWSER_DOUBLE_TAP_DURATION, (eventTime - mLastTouchUpTime), eventTime); Loading core/java/android/webkit/WebViewCore.java +9 −14 Original line number Diff line number Diff line Loading @@ -1143,8 +1143,6 @@ public final class WebViewCore { static final int ADD_PACKAGE_NAME = 185; static final int REMOVE_PACKAGE_NAME = 186; static final int HIT_TEST = 187; // accessibility support static final int MODIFY_SELECTION = 190; Loading Loading @@ -1648,18 +1646,6 @@ public final class WebViewCore { (Set<String>) msg.obj); break; case HIT_TEST: TouchHighlightData d = (TouchHighlightData) msg.obj; if (d.mNativeLayer != 0) { nativeScrollLayer(mNativeClass, d.mNativeLayer, d.mNativeLayerRect); } WebKitHitTest hit = performHitTest(d.mX, d.mY, d.mSlop, true); mWebViewClassic.mPrivateHandler.obtainMessage( WebViewClassic.HIT_TEST_RESULT, hit) .sendToTarget(); break; case SET_USE_MOCK_DEVICE_ORIENTATION: setUseMockDeviceOrientation(); break; Loading Loading @@ -1792,6 +1778,15 @@ public final class WebViewCore { return false; } switch (eventType) { case WebViewInputDispatcher.EVENT_TYPE_HIT_TEST: int x = Math.round(event.getX()); int y = Math.round(event.getY()); WebKitHitTest hit = performHitTest(x, y, mWebViewClassic.getScaledNavSlop(), true); mWebViewClassic.mPrivateHandler.obtainMessage( WebViewClassic.HIT_TEST_RESULT, hit).sendToTarget(); return false; case WebViewInputDispatcher.EVENT_TYPE_CLICK: return nativeMouseClick(mNativeClass); Loading core/java/android/webkit/WebViewInputDispatcher.java +14 −3 Original line number Diff line number Diff line Loading @@ -203,6 +203,11 @@ final class WebViewInputDispatcher { */ public static final int EVENT_TYPE_DOUBLE_TAP = 5; /** * Event type: Indicates that a hit test should be performed */ public static final int EVENT_TYPE_HIT_TEST = 6; /** * Flag: This event is private to this queue. Do not forward it. */ Loading Loading @@ -499,13 +504,17 @@ final class WebViewInputDispatcher { } private void enqueueDoubleTapLocked(MotionEvent event) { unscheduleClickLocked(); hideTapCandidateLocked(); MotionEvent eventToEnqueue = MotionEvent.obtainNoHistory(event); DispatchEvent d = obtainDispatchEventLocked(eventToEnqueue, EVENT_TYPE_DOUBLE_TAP, 0, mPostLastWebKitXOffset, mPostLastWebKitYOffset, mPostLastWebKitScale); enqueueEventLocked(d); mIsDoubleTapCandidate = false; } private void enqueueHitTestLocked(MotionEvent event) { MotionEvent eventToEnqueue = MotionEvent.obtainNoHistory(event); DispatchEvent d = obtainDispatchEventLocked(eventToEnqueue, EVENT_TYPE_HIT_TEST, 0, mPostLastWebKitXOffset, mPostLastWebKitYOffset, mPostLastWebKitScale); enqueueEventLocked(d); } private void checkForSlopLocked(MotionEvent event) { Loading Loading @@ -545,6 +554,7 @@ final class WebViewInputDispatcher { mInitialDownX = event.getX(); mInitialDownY = event.getY(); scheduleShowTapHighlightLocked(); enqueueHitTestLocked(event); } else if (action == MotionEvent.ACTION_UP) { unscheduleLongPressLocked(); if (isClickCandidateLocked(event)) { Loading Loading @@ -824,6 +834,7 @@ final class WebViewInputDispatcher { case EVENT_TYPE_CLICK: case EVENT_TYPE_HOVER: case EVENT_TYPE_SCROLL: case EVENT_TYPE_HIT_TEST: return false; case EVENT_TYPE_TOUCH: return !mPostSendTouchEventsToWebKit Loading Loading
core/java/android/webkit/WebViewClassic.java +4 −22 Original line number Diff line number Diff line Loading @@ -1716,6 +1716,10 @@ public final class WebViewClassic implements WebViewProvider, WebViewProvider.Sc mZoomManager.updateDefaultZoomDensity(density); } /* package */ int getScaledNavSlop() { return viewToContentDimension(mNavSlop); } /* package */ boolean onSavePassword(String schemePlusHost, String username, String password, final Message resumeMsg) { boolean rVal = false; Loading Loading @@ -4338,10 +4342,6 @@ public final class WebViewClassic implements WebViewProvider, WebViewProvider.Sc } private void removeTouchHighlight() { if (mWebViewCore != null) { mWebViewCore.removeMessages(EventHub.HIT_TEST); } mPrivateHandler.removeMessages(HIT_TEST_RESULT); setTouchHighlightRects(null); } Loading Loading @@ -5816,7 +5816,6 @@ public final class WebViewClassic implements WebViewProvider, WebViewProvider.Sc switch (action) { case MotionEvent.ACTION_DOWN: { mConfirmMove = false; mInitialHitTestResult = null; if (!mEditTextScroller.isFinished()) { mEditTextScroller.abortAnimation(); } Loading @@ -5838,23 +5837,6 @@ public final class WebViewClassic implements WebViewProvider, WebViewProvider.Sc } } else { // the normal case mTouchMode = TOUCH_INIT_MODE; // TODO: Have WebViewInputDispatch handle this TouchHighlightData data = new TouchHighlightData(); data.mX = contentX; data.mY = contentY; data.mNativeLayerRect = new Rect(); if (mNativeClass != 0) { data.mNativeLayer = nativeScrollableLayer(mNativeClass, contentX, contentY, data.mNativeLayerRect, null); } else { data.mNativeLayer = 0; } data.mSlop = viewToContentDimension(mNavSlop); removeTouchHighlight(); if (!mBlockWebkitViewMessages && mWebViewCore != null) { mWebViewCore.sendMessageAtFrontOfQueue( EventHub.HIT_TEST, data); } if (mLogEvent && eventTime - mLastTouchUpTime < 1000) { EventLog.writeEvent(EventLogTags.BROWSER_DOUBLE_TAP_DURATION, (eventTime - mLastTouchUpTime), eventTime); Loading
core/java/android/webkit/WebViewCore.java +9 −14 Original line number Diff line number Diff line Loading @@ -1143,8 +1143,6 @@ public final class WebViewCore { static final int ADD_PACKAGE_NAME = 185; static final int REMOVE_PACKAGE_NAME = 186; static final int HIT_TEST = 187; // accessibility support static final int MODIFY_SELECTION = 190; Loading Loading @@ -1648,18 +1646,6 @@ public final class WebViewCore { (Set<String>) msg.obj); break; case HIT_TEST: TouchHighlightData d = (TouchHighlightData) msg.obj; if (d.mNativeLayer != 0) { nativeScrollLayer(mNativeClass, d.mNativeLayer, d.mNativeLayerRect); } WebKitHitTest hit = performHitTest(d.mX, d.mY, d.mSlop, true); mWebViewClassic.mPrivateHandler.obtainMessage( WebViewClassic.HIT_TEST_RESULT, hit) .sendToTarget(); break; case SET_USE_MOCK_DEVICE_ORIENTATION: setUseMockDeviceOrientation(); break; Loading Loading @@ -1792,6 +1778,15 @@ public final class WebViewCore { return false; } switch (eventType) { case WebViewInputDispatcher.EVENT_TYPE_HIT_TEST: int x = Math.round(event.getX()); int y = Math.round(event.getY()); WebKitHitTest hit = performHitTest(x, y, mWebViewClassic.getScaledNavSlop(), true); mWebViewClassic.mPrivateHandler.obtainMessage( WebViewClassic.HIT_TEST_RESULT, hit).sendToTarget(); return false; case WebViewInputDispatcher.EVENT_TYPE_CLICK: return nativeMouseClick(mNativeClass); Loading
core/java/android/webkit/WebViewInputDispatcher.java +14 −3 Original line number Diff line number Diff line Loading @@ -203,6 +203,11 @@ final class WebViewInputDispatcher { */ public static final int EVENT_TYPE_DOUBLE_TAP = 5; /** * Event type: Indicates that a hit test should be performed */ public static final int EVENT_TYPE_HIT_TEST = 6; /** * Flag: This event is private to this queue. Do not forward it. */ Loading Loading @@ -499,13 +504,17 @@ final class WebViewInputDispatcher { } private void enqueueDoubleTapLocked(MotionEvent event) { unscheduleClickLocked(); hideTapCandidateLocked(); MotionEvent eventToEnqueue = MotionEvent.obtainNoHistory(event); DispatchEvent d = obtainDispatchEventLocked(eventToEnqueue, EVENT_TYPE_DOUBLE_TAP, 0, mPostLastWebKitXOffset, mPostLastWebKitYOffset, mPostLastWebKitScale); enqueueEventLocked(d); mIsDoubleTapCandidate = false; } private void enqueueHitTestLocked(MotionEvent event) { MotionEvent eventToEnqueue = MotionEvent.obtainNoHistory(event); DispatchEvent d = obtainDispatchEventLocked(eventToEnqueue, EVENT_TYPE_HIT_TEST, 0, mPostLastWebKitXOffset, mPostLastWebKitYOffset, mPostLastWebKitScale); enqueueEventLocked(d); } private void checkForSlopLocked(MotionEvent event) { Loading Loading @@ -545,6 +554,7 @@ final class WebViewInputDispatcher { mInitialDownX = event.getX(); mInitialDownY = event.getY(); scheduleShowTapHighlightLocked(); enqueueHitTestLocked(event); } else if (action == MotionEvent.ACTION_UP) { unscheduleLongPressLocked(); if (isClickCandidateLocked(event)) { Loading Loading @@ -824,6 +834,7 @@ final class WebViewInputDispatcher { case EVENT_TYPE_CLICK: case EVENT_TYPE_HOVER: case EVENT_TYPE_SCROLL: case EVENT_TYPE_HIT_TEST: return false; case EVENT_TYPE_TOUCH: return !mPostSendTouchEventsToWebKit Loading