From b983c893d4307caec8504e6b46ca69ae859b25d3 Mon Sep 17 00:00:00 2001 From: Derek Sollenberger Date: Mon, 28 Jun 2010 08:38:28 -0400 Subject: [PATCH] Rename a data storage object to better reflect its intended usage. Change-Id: I18eae0665b59e7fee389a0e09955c5860a7e65f2 --- core/java/android/webkit/WebView.java | 18 ++-- core/java/android/webkit/WebViewCore.java | 85 +++++++++---------- core/java/android/webkit/ZoomManager.java | 35 ++++---- .../src/android/webkit/ZoomManagerTest.java | 24 +++--- 4 files changed, 81 insertions(+), 81 deletions(-) diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java index 5f76e56fffbaa..21e7b63120228 100644 --- a/core/java/android/webkit/WebView.java +++ b/core/java/android/webkit/WebView.java @@ -6033,11 +6033,9 @@ public class WebView extends AbsoluteLayout spawnContentScrollTo(msg.arg1, msg.arg2); break; case UPDATE_ZOOM_RANGE: { - WebViewCore.RestoreState restoreState - = (WebViewCore.RestoreState) msg.obj; + WebViewCore.ViewState viewState = (WebViewCore.ViewState) msg.obj; // mScrollX contains the new minPrefWidth - mZoomManager.updateZoomRange(restoreState, getViewWidth(), - restoreState.mScrollX); + mZoomManager.updateZoomRange(viewState, getViewWidth(), viewState.mScrollX); break; } case NEW_PICTURE_MSG_ID: { @@ -6051,12 +6049,12 @@ public class WebView extends AbsoluteLayout final WebViewCore.DrawData draw = (WebViewCore.DrawData) msg.obj; final Point viewSize = draw.mViewPoint; - WebViewCore.RestoreState restoreState = draw.mRestoreState; - boolean hasRestoreState = restoreState != null; - if (hasRestoreState) { - mZoomManager.restoreZoomState(draw); + WebViewCore.ViewState viewState = draw.mViewState; + boolean isPictureAfterFirstLayout = viewState != null; + if (isPictureAfterFirstLayout) { + mZoomManager.onFirstLayout(draw); if (!mDrawHistory) { - setContentScrollTo(restoreState.mScrollX, restoreState.mScrollY); + setContentScrollTo(viewState.mScrollX, viewState.mScrollY); // As we are on a new page, remove the WebTextView. This // is necessary for page loads driven by webkit, and in // particular when the user was on a password field, so @@ -6090,7 +6088,7 @@ public class WebView extends AbsoluteLayout if (draw.mFocusSizeChanged && inEditingMode()) { mFocusSizeChanged = true; } - if (hasRestoreState) { + if (isPictureAfterFirstLayout) { mViewManager.postReadyToDrawAll(); } break; diff --git a/core/java/android/webkit/WebViewCore.java b/core/java/android/webkit/WebViewCore.java index badb391a4545a..3c157463dc2e3 100644 --- a/core/java/android/webkit/WebViewCore.java +++ b/core/java/android/webkit/WebViewCore.java @@ -1738,11 +1738,11 @@ final class WebViewCore { // Used to suspend drawing. private boolean mDrawIsPaused; - // mRestoreState is set in didFirstLayout(), and reset in the next - // webkitDraw after passing it to the UI thread. - private RestoreState mRestoreState = null; + // mInitialViewState is set by didFirstLayout() and then reset in the + // next webkitDraw after passing the state to the UI thread. + private ViewState mInitialViewState = null; - static class RestoreState { + static class ViewState { float mMinScale; float mMaxScale; float mViewScale; @@ -1762,8 +1762,8 @@ final class WebViewCore { Point mViewPoint; Point mWidthHeight; int mMinPrefWidth; - RestoreState mRestoreState; // only non-null if it is for the first - // picture set after the first layout + // only non-null if it is for the first picture set after the first layout + ViewState mViewState; boolean mFocusSizeChanged; } @@ -1788,9 +1788,9 @@ final class WebViewCore { : mViewportWidth), nativeGetContentMinPrefWidth()); } - if (mRestoreState != null) { - draw.mRestoreState = mRestoreState; - mRestoreState = null; + if (mInitialViewState != null) { + draw.mViewState = mInitialViewState; + mInitialViewState = null; } if (DebugFlags.WEB_VIEW_CORE) Log.v(LOGTAG, "webkitDraw NEW_PICTURE_MSG_ID"); Message.obtain(mWebView.mPrivateHandler, @@ -2065,12 +2065,12 @@ final class WebViewCore { if (mWebView == null) return; - boolean updateRestoreState = standardLoad || mRestoredScale > 0; - setupViewport(updateRestoreState); + boolean updateViewState = standardLoad || mRestoredScale > 0; + setupViewport(updateViewState); // if updateRestoreState is true, ViewManager.postReadyToDrawAll() will - // be called after the WebView restore the state. If updateRestoreState + // be called after the WebView updates its state. If updateRestoreState // is false, start to draw now as it is ready. - if (!updateRestoreState) { + if (!updateViewState) { mWebView.mViewManager.postReadyToDrawAll(); } @@ -2096,7 +2096,7 @@ final class WebViewCore { } } - private void setupViewport(boolean updateRestoreState) { + private void setupViewport(boolean updateViewState) { // set the viewport settings from WebKit setViewportSettingsFromNative(); @@ -2148,17 +2148,17 @@ final class WebViewCore { } // if mViewportWidth is 0, it means device-width, always update. - if (mViewportWidth != 0 && !updateRestoreState) { - RestoreState restoreState = new RestoreState(); - restoreState.mMinScale = mViewportMinimumScale / 100.0f; - restoreState.mMaxScale = mViewportMaximumScale / 100.0f; - restoreState.mDefaultScale = adjust; + if (mViewportWidth != 0 && !updateViewState) { + ViewState viewState = new ViewState(); + viewState.mMinScale = mViewportMinimumScale / 100.0f; + viewState.mMaxScale = mViewportMaximumScale / 100.0f; + viewState.mDefaultScale = adjust; // as mViewportWidth is not 0, it is not mobile site. - restoreState.mMobileSite = false; + viewState.mMobileSite = false; // for non-mobile site, we don't need minPrefWidth, set it as 0 - restoreState.mScrollX = 0; + viewState.mScrollX = 0; Message.obtain(mWebView.mPrivateHandler, - WebView.UPDATE_ZOOM_RANGE, restoreState).sendToTarget(); + WebView.UPDATE_ZOOM_RANGE, viewState).sendToTarget(); return; } @@ -2179,32 +2179,31 @@ final class WebViewCore { } else { webViewWidth = Math.round(viewportWidth * mCurrentViewScale); } - mRestoreState = new RestoreState(); - mRestoreState.mMinScale = mViewportMinimumScale / 100.0f; - mRestoreState.mMaxScale = mViewportMaximumScale / 100.0f; - mRestoreState.mDefaultScale = adjust; - mRestoreState.mScrollX = mRestoredX; - mRestoreState.mScrollY = mRestoredY; - mRestoreState.mMobileSite = (0 == mViewportWidth); + mInitialViewState = new ViewState(); + mInitialViewState.mMinScale = mViewportMinimumScale / 100.0f; + mInitialViewState.mMaxScale = mViewportMaximumScale / 100.0f; + mInitialViewState.mDefaultScale = adjust; + mInitialViewState.mScrollX = mRestoredX; + mInitialViewState.mScrollY = mRestoredY; + mInitialViewState.mMobileSite = (0 == mViewportWidth); if (mRestoredScale > 0) { - mRestoreState.mViewScale = mRestoredScale / 100.0f; + mInitialViewState.mViewScale = mRestoredScale / 100.0f; if (mRestoredTextWrapScale > 0) { - mRestoreState.mTextWrapScale = - mRestoredTextWrapScale / 100.0f; + mInitialViewState.mTextWrapScale = mRestoredTextWrapScale / 100.0f; } else { - mRestoreState.mTextWrapScale = mRestoreState.mViewScale; + mInitialViewState.mTextWrapScale = mInitialViewState.mViewScale; } } else { if (mViewportInitialScale > 0) { - mRestoreState.mViewScale = mRestoreState.mTextWrapScale = + mInitialViewState.mViewScale = mInitialViewState.mTextWrapScale = mViewportInitialScale / 100.0f; } else if (mViewportWidth > 0 && mViewportWidth < webViewWidth) { - mRestoreState.mViewScale = mRestoreState.mTextWrapScale = + mInitialViewState.mViewScale = mInitialViewState.mTextWrapScale = (float) webViewWidth / mViewportWidth; } else { - mRestoreState.mTextWrapScale = adjust; + mInitialViewState.mTextWrapScale = adjust; // 0 will trigger WebView to turn on zoom overview mode - mRestoreState.mViewScale = 0; + mInitialViewState.mViewScale = 0; } } @@ -2245,15 +2244,15 @@ final class WebViewCore { // mViewScale as 0 means it is in zoom overview mode. So we don't // know the exact scale. If mRestoredScale is non-zero, use it; // otherwise just use mTextWrapScale as the initial scale. - data.mScale = mRestoreState.mViewScale == 0 + data.mScale = mInitialViewState.mViewScale == 0 ? (mRestoredScale > 0 ? mRestoredScale / 100.0f - : mRestoreState.mTextWrapScale) - : mRestoreState.mViewScale; + : mInitialViewState.mTextWrapScale) + : mInitialViewState.mViewScale; if (DebugFlags.WEB_VIEW_CORE) { Log.v(LOGTAG, "setupViewport" + " mRestoredScale=" + mRestoredScale - + " mViewScale=" + mRestoreState.mViewScale - + " mTextWrapScale=" + mRestoreState.mTextWrapScale + + " mViewScale=" + mInitialViewState.mViewScale + + " mTextWrapScale=" + mInitialViewState.mTextWrapScale ); } data.mWidth = Math.round(webViewWidth / data.mScale); @@ -2266,7 +2265,7 @@ final class WebViewCore { Math.round(mWebView.getViewHeight() / data.mScale) : mCurrentViewHeight * data.mWidth / viewportWidth; data.mTextWrapWidth = Math.round(webViewWidth - / mRestoreState.mTextWrapScale); + / mInitialViewState.mTextWrapScale); data.mIgnoreHeight = false; data.mAnchorX = data.mAnchorY = 0; // send VIEW_SIZE_CHANGED to the front of the queue so that we diff --git a/core/java/android/webkit/ZoomManager.java b/core/java/android/webkit/ZoomManager.java index cf9688aa1b8c6..00fadb5a45f65 100644 --- a/core/java/android/webkit/ZoomManager.java +++ b/core/java/android/webkit/ZoomManager.java @@ -720,15 +720,15 @@ class ZoomManager { } } - public void updateZoomRange(WebViewCore.RestoreState restoreState, + public void updateZoomRange(WebViewCore.ViewState viewState, int viewWidth, int minPrefWidth) { - if (restoreState.mMinScale == 0) { - if (restoreState.mMobileSite) { + if (viewState.mMinScale == 0) { + if (viewState.mMobileSite) { if (minPrefWidth > Math.max(0, viewWidth)) { mMinZoomScale = (float) viewWidth / minPrefWidth; mMinZoomScaleFixed = false; } else { - mMinZoomScale = restoreState.mDefaultScale; + mMinZoomScale = viewState.mDefaultScale; mMinZoomScaleFixed = true; } } else { @@ -736,13 +736,13 @@ class ZoomManager { mMinZoomScaleFixed = false; } } else { - mMinZoomScale = restoreState.mMinScale; + mMinZoomScale = viewState.mMinScale; mMinZoomScaleFixed = true; } - if (restoreState.mMaxScale == 0) { + if (viewState.mMaxScale == 0) { mMaxZoomScale = mDefaultMaxZoomScale; } else { - mMaxZoomScale = restoreState.mMaxScale; + mMaxZoomScale = viewState.mMaxScale; } } @@ -776,18 +776,21 @@ class ZoomManager { } /** - * Updates zoom values when Webkit restores a old picture. This method + * Updates zoom values after Webkit completes the initial page layout. It + * is called when visiting a page for the first time as well as when the + * user navigates back to a page (in which case we may need to restore the + * zoom levels to the state they were when you left the page). This method * should only be called from the UI thread's message handler. */ - public void restoreZoomState(WebViewCore.DrawData drawData) { + public void onFirstLayout(WebViewCore.DrawData drawData) { // precondition check assert drawData != null; - assert drawData.mRestoreState != null; + assert drawData.mViewState != null; assert mWebView.getSettings() != null; - WebViewCore.RestoreState restoreState = drawData.mRestoreState; + WebViewCore.ViewState viewState = drawData.mViewState; final Point viewSize = drawData.mViewPoint; - updateZoomRange(restoreState, viewSize.x, drawData.mMinPrefWidth); + updateZoomRange(viewState, viewSize.x, drawData.mMinPrefWidth); if (!mWebView.drawHistory()) { final float scale; @@ -796,9 +799,9 @@ class ZoomManager { if (mInitialScale > 0) { scale = mInitialScale; reflowText = exceedsMinScaleIncrement(mTextWrapScale, scale); - } else if (restoreState.mViewScale > 0) { - mTextWrapScale = restoreState.mTextWrapScale; - scale = restoreState.mViewScale; + } else if (viewState.mViewScale > 0) { + mTextWrapScale = viewState.mTextWrapScale; + scale = viewState.mViewScale; reflowText = false; } else { WebSettings settings = mWebView.getSettings(); @@ -806,7 +809,7 @@ class ZoomManager { mInitialZoomOverview = true; scale = (float) mWebView.getViewWidth() / WebView.DEFAULT_VIEWPORT_WIDTH; } else { - scale = restoreState.mTextWrapScale; + scale = viewState.mTextWrapScale; } reflowText = exceedsMinScaleIncrement(mTextWrapScale, scale); } diff --git a/core/tests/coretests/src/android/webkit/ZoomManagerTest.java b/core/tests/coretests/src/android/webkit/ZoomManagerTest.java index b8c547c793e33..1c9defe31b2eb 100644 --- a/core/tests/coretests/src/android/webkit/ZoomManagerTest.java +++ b/core/tests/coretests/src/android/webkit/ZoomManagerTest.java @@ -61,9 +61,9 @@ public class ZoomManagerTest extends AndroidTestCase { // test the case where the minZoomScale has changed to be < the default float newDefaultScale = 1.50f; float minZoomScale = ZoomManager.DEFAULT_MIN_ZOOM_SCALE_FACTOR * newDefaultScale; - WebViewCore.RestoreState minRestoreState = new WebViewCore.RestoreState(); - minRestoreState.mMinScale = minZoomScale - 0.1f; - zoomManager.updateZoomRange(minRestoreState, 0, 0); + WebViewCore.ViewState minViewState = new WebViewCore.ViewState(); + minViewState.mMinScale = minZoomScale - 0.1f; + zoomManager.updateZoomRange(minViewState, 0, 0); zoomManager.updateDefaultZoomDensity(newDefaultScale); defaultScaleTest(newDefaultScale); } @@ -72,9 +72,9 @@ public class ZoomManagerTest extends AndroidTestCase { // test the case where the minZoomScale has changed to be > the default float newDefaultScale = 1.50f; float minZoomScale = ZoomManager.DEFAULT_MIN_ZOOM_SCALE_FACTOR * newDefaultScale; - WebViewCore.RestoreState minRestoreState = new WebViewCore.RestoreState(); - minRestoreState.mMinScale = minZoomScale + 0.1f; - zoomManager.updateZoomRange(minRestoreState, 0, 0); + WebViewCore.ViewState minViewState = new WebViewCore.ViewState(); + minViewState.mMinScale = minZoomScale + 0.1f; + zoomManager.updateZoomRange(minViewState, 0, 0); zoomManager.updateDefaultZoomDensity(newDefaultScale); defaultScaleTest(newDefaultScale); } @@ -83,9 +83,9 @@ public class ZoomManagerTest extends AndroidTestCase { // test the case where the maxZoomScale has changed to be < the default float newDefaultScale = 1.50f; float maxZoomScale = ZoomManager.DEFAULT_MAX_ZOOM_SCALE_FACTOR * newDefaultScale; - WebViewCore.RestoreState maxRestoreState = new WebViewCore.RestoreState(); - maxRestoreState.mMaxScale = maxZoomScale - 0.1f; - zoomManager.updateZoomRange(maxRestoreState, 0, 0); + WebViewCore.ViewState maxViewState = new WebViewCore.ViewState(); + maxViewState.mMaxScale = maxZoomScale - 0.1f; + zoomManager.updateZoomRange(maxViewState, 0, 0); zoomManager.updateDefaultZoomDensity(newDefaultScale); defaultScaleTest(newDefaultScale); } @@ -94,9 +94,9 @@ public class ZoomManagerTest extends AndroidTestCase { // test the case where the maxZoomScale has changed to be > the default float newDefaultScale = 1.50f; float maxZoomScale = ZoomManager.DEFAULT_MAX_ZOOM_SCALE_FACTOR * newDefaultScale; - WebViewCore.RestoreState maxRestoreState = new WebViewCore.RestoreState(); - maxRestoreState.mMaxScale = maxZoomScale + 0.1f; - zoomManager.updateZoomRange(maxRestoreState, 0, 0); + WebViewCore.ViewState maxViewState = new WebViewCore.ViewState(); + maxViewState.mMaxScale = maxZoomScale + 0.1f; + zoomManager.updateZoomRange(maxViewState, 0, 0); zoomManager.updateDefaultZoomDensity(newDefaultScale); defaultScaleTest(newDefaultScale); }