| Index: content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java
|
| diff --git a/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java b/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java
|
| index e39393d77b2bf560d17f65b407633f8537ee986e..4b2711004d59442329cce8ce44283865f51316f0 100644
|
| --- a/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java
|
| +++ b/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java
|
| @@ -1364,11 +1364,6 @@ import java.util.Map;
|
| x, y, computeHorizontalScrollOffset(), computeVerticalScrollOffset());
|
| }
|
|
|
| - @Override
|
| - public boolean hasFixedPageScale() {
|
| - return mRenderCoordinates.hasFixedPageScale();
|
| - }
|
| -
|
| private void hidePopupDialog() {
|
| SelectPopupDialog.hide(this);
|
| hideHandles();
|
| @@ -2203,6 +2198,8 @@ import java.util.Map;
|
| if (needUpdateZoomControls) mZoomControlsDelegate.updateZoomControls();
|
| if (contentOffsetChanged) updateHandleScreenPositions();
|
|
|
| + updateDoubleTapZoomEnabled();
|
| +
|
| // Update offsets for fullscreen.
|
| final float deviceScale = mRenderCoordinates.getDeviceScaleFactor();
|
| final float controlsOffsetPix = controlsOffsetYCss * deviceScale;
|
| @@ -2216,6 +2213,26 @@ import java.util.Map;
|
| }
|
| }
|
|
|
| + private void updateDoubleTapZoomEnabled() {
|
| + float pageScale = mRenderCoordinates.getPageScaleFactor();
|
| + float contentWidthCss = mRenderCoordinates.getContentWidthCss();
|
| + float windowWidthDp = pageScale * mRenderCoordinates.getLastFrameViewportWidthCss();
|
| +
|
| + float minScale = mRenderCoordinates.getMinPageScaleFactor();
|
| + float maxScale = mRenderCoordinates.getMaxPageScaleFactor();
|
| +
|
| + // We disable double-tap zoom for pages that have a width=device-width
|
| + // or narrower viewport (indicating that this is a mobile-optimized or
|
| + // responsive website), as long as the user has not pinch-zoomed in by
|
| + // more than 10% (in which case they might reasonably expect to be able
|
| + // to zoom back out using double-tap zoom).
|
| + // It is also disabled for pages that disallow the user from zooming in
|
| + // or out (even if they don't have a device-width or narrower viewport).
|
| + boolean enable = (contentWidthCss > windowWidthDp || pageScale >= 1.1f * minScale)
|
| + && minScale != maxScale;
|
| + mContentViewGestureHandler.setDoubleTapZoomEnabled(enable);
|
| + }
|
| +
|
| @SuppressWarnings("unused")
|
| @CalledByNative
|
| private void updateImeAdapter(int nativeImeAdapterAndroid, int textInputType,
|
|
|