@@ -124,6 +124,7 @@ public final class WebViewCore {
124124 */
125125 private int mViewportDensityDpi = -1 ;
126126
127+ private boolean mIsRestored = false ;
127128 private float mRestoredScale = 0 ;
128129 private float mRestoredTextWrapScale = 0 ;
129130 private int mRestoredX = 0 ;
@@ -2254,7 +2255,7 @@ private void didFirstLayout(boolean standardLoad) {
22542255
22552256 if (mWebView == null ) return ;
22562257
2257- boolean updateViewState = standardLoad || mRestoredScale > 0 ;
2258+ boolean updateViewState = standardLoad || mIsRestored ;
22582259 setupViewport (updateViewState );
22592260 // if updateRestoreState is true, ViewManager.postReadyToDrawAll() will
22602261 // be called after the WebView updates its state. If updateRestoreState
@@ -2271,6 +2272,7 @@ private void didFirstLayout(boolean standardLoad) {
22712272
22722273 // reset the scroll position, the restored offset and scales
22732274 mRestoredX = mRestoredY = 0 ;
2275+ mIsRestored = false ;
22742276 mRestoredScale = mRestoredTextWrapScale = 0 ;
22752277 }
22762278
@@ -2399,14 +2401,10 @@ private void setupViewport(boolean updateViewState) {
23992401 mInitialViewState .mScrollX = mRestoredX ;
24002402 mInitialViewState .mScrollY = mRestoredY ;
24012403 mInitialViewState .mMobileSite = (0 == mViewportWidth );
2402- if (mRestoredScale > 0 ) {
2404+ if (mIsRestored ) {
24032405 mInitialViewState .mIsRestored = true ;
24042406 mInitialViewState .mViewScale = mRestoredScale ;
2405- if (mRestoredTextWrapScale > 0 ) {
2406- mInitialViewState .mTextWrapScale = mRestoredTextWrapScale ;
2407- } else {
2408- mInitialViewState .mTextWrapScale = mInitialViewState .mViewScale ;
2409- }
2407+ mInitialViewState .mTextWrapScale = mRestoredTextWrapScale ;
24102408 } else {
24112409 if (mViewportInitialScale > 0 ) {
24122410 mInitialViewState .mViewScale = mInitialViewState .mTextWrapScale =
@@ -2525,14 +2523,9 @@ private void setupViewport(boolean updateViewState) {
25252523 // called by JNI
25262524 private void restoreScale (float scale , float textWrapScale ) {
25272525 if (mBrowserFrame .firstLayoutDone () == false ) {
2528- // If restored scale and textWrapScale are 0, set them to
2529- // overview and reading level scale respectively.
2530- mRestoredScale = (scale <= 0.0 )
2531- ? mWebView .getZoomOverviewScale () : scale ;
2532- if (mSettings .getUseWideViewPort ()) {
2533- mRestoredTextWrapScale = (textWrapScale <= 0.0 )
2534- ? mWebView .getReadingLevelScale () : textWrapScale ;
2535- }
2526+ mIsRestored = true ;
2527+ mRestoredScale = scale ;
2528+ mRestoredTextWrapScale = textWrapScale ;
25362529 }
25372530 }
25382531
0 commit comments