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

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

Update viewport asap.

Update viewport as soon as possible to make sure layout has correct viewport.

This helps fixes gmail flickering issue.

Also helps the case a mobile site is switched to desktop when the
user agent is switched.

issue: 4723800
Change-Id: I3dc9e52d912d49478d562cec3f38d653a563715e
parent 63acea6a
Loading
Loading
Loading
Loading
+9 −10
Original line number Diff line number Diff line
@@ -2235,14 +2235,9 @@ public final class WebViewCore {

    // called by JNI
    private void updateViewport() {
        // if updateViewport is called before first layout, wait until first
        // layout to update the viewport. In the rare case, this is called after
        // first layout, force an update as we have just parsed the viewport
        // meta tag.
        if (mBrowserFrame.firstLayoutDone()) {
        // Update viewport asap to make sure we get correct one.
        setupViewport(true);
    }
    }

    private void setupViewport(boolean updateViewState) {
        // set the viewport settings from WebKit
@@ -2375,8 +2370,12 @@ public final class WebViewCore {
                        (float) webViewWidth / mViewportWidth;
            } else {
                mInitialViewState.mTextWrapScale = adjust;
                if (mSettings.getUseWideViewPort()) {
                    // 0 will trigger WebView to turn on zoom overview mode
                    mInitialViewState.mViewScale = 0;
                } else {
                    mInitialViewState.mViewScale = adjust;
                }
            }
        }

@@ -2407,7 +2406,7 @@ public final class WebViewCore {
            mEventHub.removeMessages(EventHub.VIEW_SIZE_CHANGED);
            mEventHub.sendMessageAtFrontOfQueue(Message.obtain(null,
                    EventHub.VIEW_SIZE_CHANGED, data));
        } else if (mSettings.getUseWideViewPort()) {
        } else {
            if (viewportWidth == 0) {
                // Trick to ensure VIEW_SIZE_CHANGED will be sent from WebView
                // to WebViewCore