diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java index f6ad79340f6f3..b5f2efc4d4103 100644 --- a/core/java/android/webkit/WebView.java +++ b/core/java/android/webkit/WebView.java @@ -4654,6 +4654,7 @@ public class WebView extends AbsoluteLayout if (mInitialScale > 0) { scale = mInitialScale / 100.0f; } else { + if (initialScale < 0) break; if (mWebViewCore.getSettings().getUseWideViewPort()) { // force viewSizeChanged by setting mLastWidthSent // to 0 diff --git a/core/java/android/webkit/WebViewCore.java b/core/java/android/webkit/WebViewCore.java index 72b30f65f1f5a..9c00e7f56ee3d 100644 --- a/core/java/android/webkit/WebViewCore.java +++ b/core/java/android/webkit/WebViewCore.java @@ -1518,7 +1518,7 @@ final class WebViewCore { private native void setViewportSettingsFromNative(); // called by JNI - private void didFirstLayout() { + private void didFirstLayout(boolean standardLoad) { // Trick to ensure that the Picture has the exact height for the content // by forcing to layout with 0 height after the page is ready, which is // indicated by didFirstLayout. This is essential to get rid of the @@ -1584,8 +1584,11 @@ final class WebViewCore { scaleLimit).sendToTarget(); mRestoredScale = 0; } else { + // if standardLoad is true, use mViewportInitialScale, otherwise + // pass -1 to the WebView to indicate no change of the scale. Message.obtain(mWebView.mPrivateHandler, - WebView.DID_FIRST_LAYOUT_MSG_ID, mViewportInitialScale, + WebView.DID_FIRST_LAYOUT_MSG_ID, + standardLoad ? mViewportInitialScale : -1, mViewportWidth, scaleLimit).sendToTarget(); }