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
|
@Override
|
||||||
public void proceed() {
|
public void proceed() {
|
||||||
SslCertLookupTable.getInstance().setIsAllowed(sslError);
|
SslCertLookupTable.getInstance().setIsAllowed(sslError);
|
||||||
nativeSslCertErrorProceed(handle);
|
post(new Runnable() {
|
||||||
|
public void run() {
|
||||||
|
nativeSslCertErrorProceed(handle);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public void cancel() {
|
public void cancel() {
|
||||||
nativeSslCertErrorCancel(handle, certError);
|
post(new Runnable() {
|
||||||
|
public void run() {
|
||||||
|
nativeSslCertErrorCancel(handle, certError);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
mCallbackProxy.onReceivedSslError(handler, sslError);
|
mCallbackProxy.onReceivedSslError(handler, sslError);
|
||||||
|
|||||||
@@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
package android.webkit;
|
package android.webkit;
|
||||||
|
|
||||||
|
import android.os.Handler;
|
||||||
import java.security.PrivateKey;
|
import java.security.PrivateKey;
|
||||||
import java.security.cert.CertificateEncodingException;
|
import java.security.cert.CertificateEncodingException;
|
||||||
import java.security.cert.X509Certificate;
|
import java.security.cert.X509Certificate;
|
||||||
@@ -29,7 +30,7 @@ import org.apache.harmony.xnet.provider.jsse.NativeCrypto;
|
|||||||
*
|
*
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
public final class ClientCertRequestHandler {
|
public final class ClientCertRequestHandler extends Handler {
|
||||||
|
|
||||||
private final BrowserFrame mBrowserFrame;
|
private final BrowserFrame mBrowserFrame;
|
||||||
private final int mHandle;
|
private final int mHandle;
|
||||||
@@ -49,23 +50,35 @@ public final class ClientCertRequestHandler {
|
|||||||
* Proceed with the specified private key and client certificate chain.
|
* Proceed with the specified private key and client certificate chain.
|
||||||
*/
|
*/
|
||||||
public void proceed(PrivateKey privateKey, X509Certificate[] chain) {
|
public void proceed(PrivateKey privateKey, X509Certificate[] chain) {
|
||||||
byte[] privateKeyBytes = privateKey.getEncoded();
|
final byte[] privateKeyBytes = privateKey.getEncoded();
|
||||||
byte[][] chainBytes;
|
final byte[][] chainBytes;
|
||||||
try {
|
try {
|
||||||
chainBytes = NativeCrypto.encodeCertificates(chain);
|
chainBytes = NativeCrypto.encodeCertificates(chain);
|
||||||
|
mTable.Allow(mHostAndPort, privateKeyBytes, chainBytes);
|
||||||
|
post(new Runnable() {
|
||||||
|
public void run() {
|
||||||
|
mBrowserFrame.nativeSslClientCert(mHandle, privateKeyBytes, chainBytes);
|
||||||
|
}
|
||||||
|
});
|
||||||
} catch (CertificateEncodingException e) {
|
} catch (CertificateEncodingException e) {
|
||||||
mBrowserFrame.nativeSslClientCert(mHandle, null, null);
|
post(new Runnable() {
|
||||||
return;
|
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.
|
* Igore the request for now, the user may be prompted again.
|
||||||
*/
|
*/
|
||||||
public void ignore() {
|
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() {
|
public void cancel() {
|
||||||
mTable.Deny(mHostAndPort);
|
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,
|
private native ArrayList<Rect> nativeGetTouchHighlightRects(int x, int y,
|
||||||
int slop);
|
int slop);
|
||||||
|
|
||||||
private native void nativeAutoFillForm(int queryId);
|
private native void nativeAutoFillForm(int queryId);
|
||||||
private native void nativeScrollLayer(int layer, Rect rect);
|
private native void nativeScrollLayer(int layer, Rect rect);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user