Loading core/java/android/webkit/JWebCoreJavaBridge.java +12 −9 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ 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; Loading @@ -46,7 +47,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; Loading @@ -67,20 +69,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(); } /** Loading Loading @@ -261,11 +263,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 ""; Loading core/java/android/webkit/WebView.java +2 −2 Original line number Diff line number Diff line Loading @@ -4257,9 +4257,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); } Loading Loading
core/java/android/webkit/JWebCoreJavaBridge.java +12 −9 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ 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; Loading @@ -46,7 +47,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; Loading @@ -67,20 +69,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(); } /** Loading Loading @@ -261,11 +263,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 ""; Loading
core/java/android/webkit/WebView.java +2 −2 Original line number Diff line number Diff line Loading @@ -4257,9 +4257,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); } Loading