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

Commit 9ae010a3 authored by Feng Qian's avatar Feng Qian Committed by The Android Open Source Project
Browse files

AI 145796: Land the WebKit merge @r42026.

Automated import of CL 145796
parent 71d83c04
Loading
Loading
Loading
Loading
+28 −8
Original line number Diff line number Diff line
@@ -34,9 +34,13 @@ final class JWebCoreJavaBridge extends Handler {
    // Instant timer is used to implement a timer that needs to fire almost
    // immediately.
    private boolean mHasInstantTimer;

    // Reference count the pause/resume of timers
    private int mPauseTimerRefCount;

    private boolean mTimerPaused;
    private boolean mHasDeferredTimers;

    /**
     * Construct a new JWebCoreJavaBridge to interface with
     * WebCore timers and cookies.
@@ -50,6 +54,17 @@ final class JWebCoreJavaBridge extends Handler {
        nativeFinalize();
    }

    /**
     * Call native timer callbacks.
     */
    private void fireSharedTimer() { 
        PerfChecker checker = new PerfChecker();
        // clear the flag so that sharedTimerFired() can set a new timer
        mHasInstantTimer = false;
        sharedTimerFired();
        checker.responseAlert("sharedTimer");
    }

    /**
     * handleMessage
     * @param msg The dispatched message.
@@ -60,11 +75,11 @@ final class JWebCoreJavaBridge extends Handler {
    public void handleMessage(Message msg) {
        switch (msg.what) {
            case TIMER_MESSAGE: {
                PerfChecker checker = new PerfChecker();
                // clear the flag so that sharedTimerFired() can set a new timer
                mHasInstantTimer = false;
                sharedTimerFired();
                checker.responseAlert("sharedTimer");
                if (mTimerPaused) {
                    mHasDeferredTimers = true;
                } else {
                    fireSharedTimer();
                }
                break;
            }
            case FUNCPTR_MESSAGE:
@@ -86,7 +101,8 @@ final class JWebCoreJavaBridge extends Handler {
     */
    public void pause() {
        if (--mPauseTimerRefCount == 0) {
            setDeferringTimers(true);
            mTimerPaused = true;
            mHasDeferredTimers = false;
        }
    }

@@ -95,7 +111,11 @@ final class JWebCoreJavaBridge extends Handler {
     */
    public void resume() {
        if (++mPauseTimerRefCount == 1) {
            setDeferringTimers(false);
           mTimerPaused = false;
           if (mHasDeferredTimers) {
               mHasDeferredTimers = false;
               fireSharedTimer();
           }
        }
    }

@@ -185,11 +205,11 @@ final class JWebCoreJavaBridge extends Handler {
        }
        removeMessages(TIMER_MESSAGE);
        mHasInstantTimer = false;
        mHasDeferredTimers = false;
    }

    private native void nativeConstructor();
    private native void nativeFinalize();
    private native void sharedTimerFired();
    private native void setDeferringTimers(boolean defer);
    public native void setNetworkOnLine(boolean online);
}