Merge "Set a flag that indicates a response is pending."
diff --git a/core/java/android/webkit/SslErrorHandler.java b/core/java/android/webkit/SslErrorHandler.java
index 90ed65d..d99c2c0 100644
--- a/core/java/android/webkit/SslErrorHandler.java
+++ b/core/java/android/webkit/SslErrorHandler.java
@@ -51,6 +51,11 @@
*/
private Bundle mSslPrefTable;
+ /**
+ * Flag indicating that a client reponse is pending.
+ */
+ private boolean mResponsePending;
+
// Message id for handling the response
private static final int HANDLE_RESPONSE = 100;
@@ -191,6 +196,7 @@
// if we do not have information on record, ask
// the user (display a dialog)
CallbackProxy proxy = loader.getFrame().getCallbackProxy();
+ mResponsePending = true;
proxy.onReceivedSslError(this, error);
}
@@ -202,7 +208,11 @@
* Proceed with the SSL certificate.
*/
public void proceed() {
- sendMessage(obtainMessage(HANDLE_RESPONSE, 1, 0, mLoaderQueue.poll()));
+ if (mResponsePending) {
+ mResponsePending = false;
+ sendMessage(obtainMessage(HANDLE_RESPONSE, 1, 0,
+ mLoaderQueue.poll()));
+ }
}
/**
@@ -210,7 +220,11 @@
* the error.
*/
public void cancel() {
- sendMessage(obtainMessage(HANDLE_RESPONSE, 0, 0, mLoaderQueue.poll()));
+ if (mResponsePending) {
+ mResponsePending = false;
+ sendMessage(obtainMessage(HANDLE_RESPONSE, 0, 0,
+ mLoaderQueue.poll()));
+ }
}
/**