Skip to content

Commit 51938e2

Browse files
Selim GurunAndroid (Google) Code Review
authored andcommitted
Merge "Do Not Merge. Move ssl callbacks to webcore thread." into ics-mr1
2 parents c15cf3d + 972b1a5 commit 51938e2

File tree

3 files changed

+38
-13
lines changed

3 files changed

+38
-13
lines changed

core/java/android/webkit/BrowserFrame.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1187,11 +1187,19 @@ private void reportSslCertError(final int handle, final int certError, byte cert
11871187
@Override
11881188
public void proceed() {
11891189
SslCertLookupTable.getInstance().setIsAllowed(sslError);
1190-
nativeSslCertErrorProceed(handle);
1190+
post(new Runnable() {
1191+
public void run() {
1192+
nativeSslCertErrorProceed(handle);
1193+
}
1194+
});
11911195
}
11921196
@Override
11931197
public void cancel() {
1194-
nativeSslCertErrorCancel(handle, certError);
1198+
post(new Runnable() {
1199+
public void run() {
1200+
nativeSslCertErrorCancel(handle, certError);
1201+
}
1202+
});
11951203
}
11961204
};
11971205
mCallbackProxy.onReceivedSslError(handler, sslError);

core/java/android/webkit/ClientCertRequestHandler.java

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
package android.webkit;
1818

19+
import android.os.Handler;
1920
import java.security.PrivateKey;
2021
import java.security.cert.CertificateEncodingException;
2122
import java.security.cert.X509Certificate;
@@ -29,7 +30,7 @@
2930
*
3031
* @hide
3132
*/
32-
public final class ClientCertRequestHandler {
33+
public final class ClientCertRequestHandler extends Handler {
3334

3435
private final BrowserFrame mBrowserFrame;
3536
private final int mHandle;
@@ -49,30 +50,46 @@ public final class ClientCertRequestHandler {
4950
* Proceed with the specified private key and client certificate chain.
5051
*/
5152
public void proceed(PrivateKey privateKey, X509Certificate[] chain) {
52-
byte[] privateKeyBytes = privateKey.getEncoded();
53-
byte[][] chainBytes;
53+
final byte[] privateKeyBytes = privateKey.getEncoded();
54+
final byte[][] chainBytes;
5455
try {
5556
chainBytes = NativeCrypto.encodeCertificates(chain);
57+
mTable.Allow(mHostAndPort, privateKeyBytes, chainBytes);
58+
post(new Runnable() {
59+
public void run() {
60+
mBrowserFrame.nativeSslClientCert(mHandle, privateKeyBytes, chainBytes);
61+
}
62+
});
5663
} catch (CertificateEncodingException e) {
57-
mBrowserFrame.nativeSslClientCert(mHandle, null, null);
58-
return;
64+
post(new Runnable() {
65+
public void run() {
66+
mBrowserFrame.nativeSslClientCert(mHandle, null, null);
67+
return;
68+
}
69+
});
5970
}
60-
mTable.Allow(mHostAndPort, privateKeyBytes, chainBytes);
61-
mBrowserFrame.nativeSslClientCert(mHandle, privateKeyBytes, chainBytes);
6271
}
6372

6473
/**
6574
* Igore the request for now, the user may be prompted again.
6675
*/
6776
public void ignore() {
68-
mBrowserFrame.nativeSslClientCert(mHandle, null, null);
77+
post(new Runnable() {
78+
public void run() {
79+
mBrowserFrame.nativeSslClientCert(mHandle, null, null);
80+
}
81+
});
6982
}
7083

7184
/**
7285
* Cancel this request, remember the users negative choice.
7386
*/
7487
public void cancel() {
7588
mTable.Deny(mHostAndPort);
76-
mBrowserFrame.nativeSslClientCert(mHandle, null, null);
89+
post(new Runnable() {
90+
public void run() {
91+
mBrowserFrame.nativeSslClientCert(mHandle, null, null);
92+
}
93+
});
7794
}
7895
}

core/java/android/webkit/WebViewCore.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2872,6 +2872,6 @@ private native boolean nativeValidNodeAndBounds(int frame, int node,
28722872
private native ArrayList<Rect> nativeGetTouchHighlightRects(int x, int y,
28732873
int slop);
28742874

2875-
private native void nativeAutoFillForm(int queryId);
2876-
private native void nativeScrollLayer(int layer, Rect rect);
2875+
private native void nativeAutoFillForm(int queryId);
2876+
private native void nativeScrollLayer(int layer, Rect rect);
28772877
}

0 commit comments

Comments
 (0)