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

Commit cae80b25 authored by Chris Craik's avatar Chris Craik Committed by Android (Google) Code Review
Browse files

Merge "Unify composited layer/base layer draw path"

parents 0a1c6c8b 00ed0fd2
Loading
Loading
Loading
Loading
+4 −6
Original line number Diff line number Diff line
@@ -9440,13 +9440,11 @@ public final class WebViewClassic implements WebViewProvider, WebViewProvider.Sc
                && mWebView.getLayerType() != View.LAYER_TYPE_SOFTWARE) {
            hwAccelerated = true;
        }

        // result is of type LayerAndroid::InvalidateFlags, non zero means invalidate/redraw
        int result = nativeSetHwAccelerated(mNativeClass, hwAccelerated);
        if (mWebViewCore == null || mBlockWebkitViewMessages) {
            return;
        }
        if (result == 1) {
            // Sync layers
            mWebViewCore.layersDraw();
        if (mWebViewCore != null && !mBlockWebkitViewMessages && result != 0) {
            mWebViewCore.contentDraw();
        }
    }

+0 −41
Original line number Diff line number Diff line
@@ -594,11 +594,6 @@ public final class WebViewCore {
    private native int nativeRecordContent(int nativeClass, Region invalRegion,
            Point wh);

    /**
     * Update the layers' content
     */
    private native boolean nativeUpdateLayers(int nativeClass, int baseLayer);

    /**
     * Notify webkit that animations have begun (on the hardware accelerated content)
     */
@@ -1115,9 +1110,6 @@ public final class WebViewCore {
        // Load and save web archives
        static final int SAVE_WEBARCHIVE = 147;

        // Update layers
        static final int WEBKIT_DRAW_LAYERS = 148;

        static final int REMOVE_JS_INTERFACE = 149;

        // Network-based messaging
@@ -1266,10 +1258,6 @@ public final class WebViewCore {
                            webkitDraw();
                            break;

                        case WEBKIT_DRAW_LAYERS:
                            webkitDrawLayers();
                            break;

                        case DESTROY:
                            // Time to take down the world. Cancel all pending
                            // loads and destroy the native view and frame.
@@ -2154,7 +2142,6 @@ public final class WebViewCore {

    // Used to avoid posting more than one draw message.
    private boolean mDrawIsScheduled;
    private boolean mDrawLayersIsScheduled;

    // Used to avoid posting more than one split picture message.
    private boolean mSplitPictureIsScheduled;
@@ -2200,25 +2187,6 @@ public final class WebViewCore {

    DrawData mLastDrawData = null;

    // Only update the layers' content, not the base surface
    // PictureSet.
    private void webkitDrawLayers() {
        mDrawLayersIsScheduled = false;
        if (mDrawIsScheduled || mLastDrawData == null) {
            removeMessages(EventHub.WEBKIT_DRAW);
            webkitDraw();
            return;
        }
        // Directly update the layers we last passed to the UI side
        if (nativeUpdateLayers(mNativeClass, mLastDrawData.mBaseLayer)) {
            // If anything more complex than position has been touched, let's do a full draw
            webkitDraw();
        }
        mWebViewClassic.mPrivateHandler.removeMessages(WebViewClassic.INVAL_RECT_MSG_ID);
        mWebViewClassic.mPrivateHandler.sendMessageAtFrontOfQueue(mWebViewClassic.mPrivateHandler
                .obtainMessage(WebViewClassic.INVAL_RECT_MSG_ID));
    }

    private Boolean m_skipDrawFlag = false;
    private boolean m_drawWasSkipped = false;

@@ -2394,15 +2362,6 @@ public final class WebViewCore {
        }
    }

    // called from JNI
    void layersDraw() {
        synchronized (this) {
            if (mDrawLayersIsScheduled) return;
            mDrawLayersIsScheduled = true;
            mEventHub.sendMessage(Message.obtain(null, EventHub.WEBKIT_DRAW_LAYERS));
        }
    }

    // called by JNI
    private void contentScrollTo(int x, int y, boolean animate,
            boolean onlyIfImeIsShowing) {