diff options
| author | 2012-01-11 14:18:14 -0800 | |
|---|---|---|
| committer | 2012-01-11 14:18:14 -0800 | |
| commit | 51938e26913a98aa8de0292e9be8ea9d9ebc67c3 (patch) | |
| tree | 2af83fd83e24a1e0cae98753d58ea888efe4a330 | |
| parent | c15cf3d286f3d63d141b73f639a5a61ddb028029 (diff) | |
| parent | 972b1a505c352ef3a89bffa49ddf3f9bd2aa3ca8 (diff) | |
Merge "Do Not Merge. Move ssl callbacks to webcore thread." into ics-mr1
| -rw-r--r-- | core/java/android/webkit/BrowserFrame.java | 12 | ||||
| -rw-r--r-- | core/java/android/webkit/ClientCertRequestHandler.java | 35 | ||||
| -rw-r--r-- | core/java/android/webkit/WebViewCore.java | 4 |
3 files changed, 38 insertions, 13 deletions
diff --git a/core/java/android/webkit/BrowserFrame.java b/core/java/android/webkit/BrowserFrame.java index b94eb763b8b8..66fca80b31ed 100644 --- a/core/java/android/webkit/BrowserFrame.java +++ b/core/java/android/webkit/BrowserFrame.java @@ -1187,11 +1187,19 @@ class BrowserFrame extends Handler { @Override public void proceed() { SslCertLookupTable.getInstance().setIsAllowed(sslError); - nativeSslCertErrorProceed(handle); + post(new Runnable() { + public void run() { + nativeSslCertErrorProceed(handle); + } + }); } @Override public void cancel() { - nativeSslCertErrorCancel(handle, certError); + post(new Runnable() { + public void run() { + nativeSslCertErrorCancel(handle, certError); + } + }); } }; mCallbackProxy.onReceivedSslError(handler, sslError); diff --git a/core/java/android/webkit/ClientCertRequestHandler.java b/core/java/android/webkit/ClientCertRequestHandler.java index 3a71e7e5bc33..f86261305559 100644 --- a/core/java/android/webkit/ClientCertRequestHandler.java +++ b/core/java/android/webkit/ClientCertRequestHandler.java @@ -16,6 +16,7 @@ package android.webkit; +import android.os.Handler; import java.security.PrivateKey; import java.security.cert.CertificateEncodingException; import java.security.cert.X509Certificate; @@ -29,7 +30,7 @@ import org.apache.harmony.xnet.provider.jsse.NativeCrypto; * * @hide */ -public final class ClientCertRequestHandler { +public final class ClientCertRequestHandler extends Handler { private final BrowserFrame mBrowserFrame; private final int mHandle; @@ -49,23 +50,35 @@ public final class ClientCertRequestHandler { * Proceed with the specified private key and client certificate chain. */ public void proceed(PrivateKey privateKey, X509Certificate[] chain) { - byte[] privateKeyBytes = privateKey.getEncoded(); - byte[][] chainBytes; + final byte[] privateKeyBytes = privateKey.getEncoded(); + final byte[][] chainBytes; try { chainBytes = NativeCrypto.encodeCertificates(chain); + mTable.Allow(mHostAndPort, privateKeyBytes, chainBytes); + post(new Runnable() { + public void run() { + mBrowserFrame.nativeSslClientCert(mHandle, privateKeyBytes, chainBytes); + } + }); } catch (CertificateEncodingException e) { - mBrowserFrame.nativeSslClientCert(mHandle, null, null); - return; + post(new Runnable() { + public void run() { + mBrowserFrame.nativeSslClientCert(mHandle, null, null); + return; + } + }); } - mTable.Allow(mHostAndPort, privateKeyBytes, chainBytes); - mBrowserFrame.nativeSslClientCert(mHandle, privateKeyBytes, chainBytes); } /** * Igore the request for now, the user may be prompted again. */ public void ignore() { - mBrowserFrame.nativeSslClientCert(mHandle, null, null); + post(new Runnable() { + public void run() { + mBrowserFrame.nativeSslClientCert(mHandle, null, null); + } + }); } /** @@ -73,6 +86,10 @@ public final class ClientCertRequestHandler { */ public void cancel() { mTable.Deny(mHostAndPort); - mBrowserFrame.nativeSslClientCert(mHandle, null, null); + post(new Runnable() { + public void run() { + mBrowserFrame.nativeSslClientCert(mHandle, null, null); + } + }); } } diff --git a/core/java/android/webkit/WebViewCore.java b/core/java/android/webkit/WebViewCore.java index d13600438e9b..2d15afb5ba46 100644 --- a/core/java/android/webkit/WebViewCore.java +++ b/core/java/android/webkit/WebViewCore.java @@ -2872,6 +2872,6 @@ public final class WebViewCore { private native ArrayList<Rect> nativeGetTouchHighlightRects(int x, int y, int slop); - private native void nativeAutoFillForm(int queryId); - private native void nativeScrollLayer(int layer, Rect rect); + private native void nativeAutoFillForm(int queryId); + private native void nativeScrollLayer(int layer, Rect rect); } |