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

Commit a8f99bbb authored by Shimeng (Simon) Wang's avatar Shimeng (Simon) Wang
Browse files

Use website specified viewport.

In fixed viewport mode, use website specified viewport to override
the default fixed viewport.

issue: 3007588
Change-Id: I0ed86a2f829d18bf35dba47f766b23be1ace8ff5
parent 8c256274
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -1705,7 +1705,12 @@ final class WebViewCore {
                                    nativeGetContentMinPrefWidth())));
                }
            } else if (mViewportWidth > 0) {
                if (mSettings.getUseFixedViewport()) {
                    // Use website specified viewport width.
                    width = mViewportWidth;
                } else {
                    width = Math.max(w, mViewportWidth);
                }
            } else {
                width = textwrapWidth;
            }
@@ -1780,6 +1785,7 @@ final class WebViewCore {
        int mScrollX;
        int mScrollY;
        boolean mMobileSite;
        int mViewportWidth;
    }

    static class DrawData {
@@ -2154,6 +2160,7 @@ final class WebViewCore {
        mInitialViewState.mScrollX = mRestoredX;
        mInitialViewState.mScrollY = mRestoredY;
        mInitialViewState.mMobileSite = (0 == mViewportWidth);
        mInitialViewState.mViewportWidth = mViewportWidth;
        if (mRestoredScale > 0) {
            mInitialViewState.mViewScale = mRestoredScale / 100.0f;
            if (mRestoredTextWrapScale > 0) {
+7 −1
Original line number Diff line number Diff line
@@ -770,6 +770,12 @@ class ZoomManager {
        } else {
            mMaxZoomScale = viewState.mMaxScale;
        }
        if (viewState.mViewportWidth > 0 &&
            mWebView.getSettings().getUseFixedViewport() &&
            mWebView.getSettings().getUseWideViewPort()) {
            // Use website specified viewport width.
            setZoomOverviewWidth(viewState.mViewportWidth);
        }
    }

    /**
@@ -835,7 +841,7 @@ class ZoomManager {
                if (settings.getUseWideViewPort()
                    && (settings.getLoadWithOverviewMode() || settings.getUseFixedViewport())) {
                    mInitialZoomOverview = true;
                    scale = (float) mWebView.getViewWidth() / WebView.DEFAULT_VIEWPORT_WIDTH;
                    scale = (float) mWebView.getViewWidth() / mZoomOverviewWidth;
                } else {
                    scale = viewState.mTextWrapScale;
                }