| Index: android_webview/java/src/org/chromium/android_webview/AwContents.java
|
| diff --git a/android_webview/java/src/org/chromium/android_webview/AwContents.java b/android_webview/java/src/org/chromium/android_webview/AwContents.java
|
| index b4e752e4d27d9b473c523e7e3cbe97a092faccbe..030a0a55bf0a10e9dbe748bc7c357e23b0e7f600 100644
|
| --- a/android_webview/java/src/org/chromium/android_webview/AwContents.java
|
| +++ b/android_webview/java/src/org/chromium/android_webview/AwContents.java
|
| @@ -74,6 +74,7 @@
|
| import org.chromium.ui.base.PageTransition;
|
| import org.chromium.ui.base.ViewAndroidDelegate;
|
| import org.chromium.ui.base.WindowAndroid;
|
| +import org.chromium.ui.gfx.DeviceDisplayInfo;
|
|
|
| import java.io.File;
|
| import java.lang.annotation.Annotation;
|
| @@ -297,6 +298,8 @@
|
|
|
| private Bitmap mFavicon;
|
| private boolean mHasRequestedVisitedHistoryFromClient;
|
| + // TODO(boliu): This should be in a global context, not per webview.
|
| + private final double mDIPScale;
|
| // Whether this WebView is a popup.
|
| private boolean mIsPopupWindow = false;
|
|
|
| @@ -758,7 +761,9 @@
|
| mContentViewClient = new AwContentViewClient(contentsClient, settings, this, mContext);
|
| mLayoutSizer = dependencyFactory.createLayoutSizer();
|
| mSettings = settings;
|
| + mDIPScale = DeviceDisplayInfo.create(mContext).getDIPScale();
|
| mLayoutSizer.setDelegate(new AwLayoutSizerDelegate());
|
| + mLayoutSizer.setDIPScale(mDIPScale);
|
| mWebContentsDelegate = new AwWebContentsDelegateAdapter(
|
| this, contentsClient, mContentViewClient, mContext, mContainerView);
|
| mContentsClientBridge = new AwContentsClientBridge(mContext, contentsClient,
|
| @@ -789,6 +794,7 @@
|
| mDefaultVideoPosterRequestHandler = new DefaultVideoPosterRequestHandler(mContentsClient);
|
| mSettings.setDefaultVideoPosterURL(
|
| mDefaultVideoPosterRequestHandler.getDefaultVideoPosterURL());
|
| + mSettings.setDIPScale(mDIPScale);
|
| mScrollOffsetManager =
|
| dependencyFactory.createScrollOffsetManager(new AwScrollOffsetManagerDelegate());
|
| mScrollAccessibilityHelper = new ScrollAccessibilityHelper(mContainerView);
|
| @@ -1046,12 +1052,7 @@
|
| mNavigationController = mWebContents.getNavigationController();
|
| installWebContentsObserver();
|
| mSettings.setWebContents(webContents);
|
| -
|
| - float dipScale = mContentViewCore.getDeviceScaleFactor();
|
| - nativeSetDipScale(mNativeAwContents, dipScale);
|
| - mLayoutSizer.setDIPScale(dipScale);
|
| - mSettings.setDIPScale(dipScale);
|
| -
|
| + nativeSetDipScale(mNativeAwContents, (float) mDIPScale);
|
| updateContentViewCoreVisibility();
|
|
|
| // The native side object has been bound to this java instance, so now is the time to
|
| @@ -2091,7 +2092,7 @@
|
| */
|
| public float getScale() {
|
| if (isDestroyed(WARN)) return 1;
|
| - return (float) (mPageScaleFactor * mContentViewCore.getDeviceScaleFactor());
|
| + return (float) (mPageScaleFactor * mDIPScale);
|
| }
|
|
|
| /**
|
| @@ -2862,9 +2863,9 @@
|
| if (mPageScaleFactor != pageScaleFactor) {
|
| float oldPageScaleFactor = mPageScaleFactor;
|
| mPageScaleFactor = pageScaleFactor;
|
| - float dipScale = mContentViewCore.getDeviceScaleFactor();
|
| mContentsClient.getCallbackHelper().postOnScaleChangedScaled(
|
| - oldPageScaleFactor * dipScale, mPageScaleFactor * dipScale);
|
| + (float) (oldPageScaleFactor * mDIPScale),
|
| + (float) (mPageScaleFactor * mDIPScale));
|
| }
|
| }
|
|
|
| @@ -3090,10 +3091,10 @@
|
| if (event.getActionMasked() == MotionEvent.ACTION_DOWN) {
|
| // Note this will trigger IPC back to browser even if nothing is
|
| // hit.
|
| - float dipScale = mContentViewCore.getDeviceScaleFactor();
|
| nativeRequestNewHitTestDataAt(mNativeAwContents,
|
| - event.getX() / dipScale, event.getY() / dipScale,
|
| - Math.max(event.getTouchMajor(), event.getTouchMinor()) / dipScale);
|
| + event.getX() / (float) mDIPScale,
|
| + event.getY() / (float) mDIPScale,
|
| + Math.max(event.getTouchMajor(), event.getTouchMinor()) / (float) mDIPScale);
|
| }
|
|
|
| if (mOverScrollGlow != null) {
|
|
|