Merge "Do Not Merge. Move ssl callbacks to webcore thread." into ics-mr1
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user