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

Commit fbd26467 authored by Shimeng (Simon) Wang's avatar Shimeng (Simon) Wang Committed by Android (Google) Code Review
Browse files

Merge "DO NOT MERGE" into gingerbread

parents bd2e9ec6 dc9f2b66
Loading
Loading
Loading
Loading
+13 −9
Original line number Diff line number Diff line
@@ -20,6 +20,8 @@ import android.os.Handler;
import android.os.Message;
import android.util.Log;

import java.lang.ref.WeakReference;
import java.util.HashMap;
import java.util.Set;

final class JWebCoreJavaBridge extends Handler {
@@ -44,7 +46,8 @@ final class JWebCoreJavaBridge extends Handler {

    // keep track of the main WebView attached to the current window so that we
    // can get the proper Context.
    private WebView mCurrentMainWebView;
    private static WeakReference<WebView> sCurrentMainWebView =
            new WeakReference<WebView>(null);

    /* package */
    static final int REFRESH_PLUGINS = 100;
@@ -62,20 +65,20 @@ final class JWebCoreJavaBridge extends Handler {
        nativeFinalize();
    }

    synchronized void setActiveWebView(WebView webview) {
        if (mCurrentMainWebView != null) {
    static synchronized void setActiveWebView(WebView webview) {
        if (sCurrentMainWebView.get() != null) {
            // it is possible if there is a sub-WebView. Do nothing.
            return;
        }
        mCurrentMainWebView = webview;
        sCurrentMainWebView = new WeakReference<WebView>(webview);
    }

    synchronized void removeActiveWebView(WebView webview) {
        if (mCurrentMainWebView != webview) {
    static synchronized void removeActiveWebView(WebView webview) {
        if (sCurrentMainWebView.get() != webview) {
            // it is possible if there is a sub-WebView. Do nothing.
            return;
        }
        mCurrentMainWebView = null;
        sCurrentMainWebView.clear();
    }

    /**
@@ -256,11 +259,12 @@ final class JWebCoreJavaBridge extends Handler {

    synchronized private String getSignedPublicKey(int index, String challenge,
            String url) {
        if (mCurrentMainWebView != null) {
        WebView current = sCurrentMainWebView.get();
        if (current != null) {
            // generateKeyPair expects organizations which we don't have. Ignore
            // url.
            return CertTool.getSignedPublicKey(
                    mCurrentMainWebView.getContext(), index, challenge);
                    current.getContext(), index, challenge);
        } else {
            Log.e(LOGTAG, "There is no active WebView for getSignedPublicKey");
            return "";
+2 −2
Original line number Diff line number Diff line
@@ -4502,9 +4502,9 @@ public class WebView extends AbsoluteLayout
    public void onWindowFocusChanged(boolean hasWindowFocus) {
        setActive(hasWindowFocus);
        if (hasWindowFocus) {
            BrowserFrame.sJavaBridge.setActiveWebView(this);
            JWebCoreJavaBridge.setActiveWebView(this);
        } else {
            BrowserFrame.sJavaBridge.removeActiveWebView(this);
            JWebCoreJavaBridge.removeActiveWebView(this);
        }
        super.onWindowFocusChanged(hasWindowFocus);
    }