Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 59ec92c4 authored by Derek Sollenberger's avatar Derek Sollenberger Committed by Android (Google) Code Review
Browse files

Merge "Rename a data storage object to better reflect its intended usage."

parents d64dd2ef b983c893
Loading
Loading
Loading
Loading
+8 −10
Original line number Diff line number Diff line
@@ -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;
+42 −43
Original line number Diff line number Diff line
@@ -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
+19 −16
Original line number Diff line number Diff line
@@ -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);
            }
+12 −12
Original line number Diff line number Diff line
@@ -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);
    }