Loading core/java/android/net/http/EventHandler.java +4 −1 Original line number Diff line number Diff line Loading @@ -141,7 +141,10 @@ public interface EventHandler { * SSL certificate error callback. Handles SSL error(s) on the way * up to the user. The callback has to make sure that restartConnection() is called, * otherwise the connection will be suspended indefinitely. * @return True if the callback can handle the error, which means it will * call restartConnection() to unblock the thread later, * otherwise return false. */ public void handleSslErrorRequest(SslError error); public boolean handleSslErrorRequest(SslError error); } core/java/android/net/http/HttpsConnection.java +4 −1 Original line number Diff line number Diff line Loading @@ -323,7 +323,10 @@ public class HttpsConnection extends Connection { mSuspended = true; } // don't hold the lock while calling out to the event handler eventHandler.handleSslErrorRequest(error); boolean canHandle = eventHandler.handleSslErrorRequest(error); if(!canHandle) { throw new IOException("failed to handle "+ error); } synchronized (mSuspendLock) { if (mSuspended) { try { Loading core/java/android/net/http/LoggingEventHandler.java +3 −1 Original line number Diff line number Diff line Loading @@ -82,9 +82,11 @@ public class LoggingEventHandler implements EventHandler { } } public void handleSslErrorRequest(SslError error) { public boolean handleSslErrorRequest(SslError error) { if (HttpLog.LOGV) { HttpLog.v("LoggingEventHandler: handleSslErrorRequest():" + error); } // return false so that the caller thread won't wait forever return false; } } core/java/android/webkit/LoadListener.java +14 −1 Original line number Diff line number Diff line Loading @@ -104,6 +104,7 @@ class LoadListener extends Handler implements EventHandler { private String mErrorDescription; private SslError mSslError; private RequestHandle mRequestHandle; private RequestHandle mSslErrorRequestHandle; // Request data. It is only valid when we are doing a load from the // cache. It is needed if the cache returns a redirect Loading Loading @@ -673,7 +674,7 @@ class LoadListener extends Handler implements EventHandler { * IMPORTANT: as this is called from network thread, can't call native * directly */ public void handleSslErrorRequest(SslError error) { public boolean handleSslErrorRequest(SslError error) { if (DebugFlags.LOAD_LISTENER) { Log.v(LOGTAG, "LoadListener.handleSslErrorRequest(): url:" + url() + Loading @@ -681,6 +682,15 @@ class LoadListener extends Handler implements EventHandler { " certificate: " + error.getCertificate()); } sendMessageInternal(obtainMessage(MSG_SSL_ERROR, error)); // if it has been canceled, return false so that the network thread // won't be blocked. If it is not canceled, save the mRequestHandle // so that if it is canceled when MSG_SSL_ERROR is handled, we can // still call handleSslErrorResponse which will call restartConnection // to unblock the network thread. if (!mCancelled) { mSslErrorRequestHandle = mRequestHandle; } return !mCancelled; } // Handle the ssl error on the WebCore thread. Loading @@ -688,7 +698,10 @@ class LoadListener extends Handler implements EventHandler { if (!mCancelled) { mSslError = error; Network.getInstance(mContext).handleSslErrorRequest(this); } else if (mSslErrorRequestHandle != null) { mSslErrorRequestHandle.handleSslErrorResponse(true); } mSslErrorRequestHandle = null; } /** Loading Loading
core/java/android/net/http/EventHandler.java +4 −1 Original line number Diff line number Diff line Loading @@ -141,7 +141,10 @@ public interface EventHandler { * SSL certificate error callback. Handles SSL error(s) on the way * up to the user. The callback has to make sure that restartConnection() is called, * otherwise the connection will be suspended indefinitely. * @return True if the callback can handle the error, which means it will * call restartConnection() to unblock the thread later, * otherwise return false. */ public void handleSslErrorRequest(SslError error); public boolean handleSslErrorRequest(SslError error); }
core/java/android/net/http/HttpsConnection.java +4 −1 Original line number Diff line number Diff line Loading @@ -323,7 +323,10 @@ public class HttpsConnection extends Connection { mSuspended = true; } // don't hold the lock while calling out to the event handler eventHandler.handleSslErrorRequest(error); boolean canHandle = eventHandler.handleSslErrorRequest(error); if(!canHandle) { throw new IOException("failed to handle "+ error); } synchronized (mSuspendLock) { if (mSuspended) { try { Loading
core/java/android/net/http/LoggingEventHandler.java +3 −1 Original line number Diff line number Diff line Loading @@ -82,9 +82,11 @@ public class LoggingEventHandler implements EventHandler { } } public void handleSslErrorRequest(SslError error) { public boolean handleSslErrorRequest(SslError error) { if (HttpLog.LOGV) { HttpLog.v("LoggingEventHandler: handleSslErrorRequest():" + error); } // return false so that the caller thread won't wait forever return false; } }
core/java/android/webkit/LoadListener.java +14 −1 Original line number Diff line number Diff line Loading @@ -104,6 +104,7 @@ class LoadListener extends Handler implements EventHandler { private String mErrorDescription; private SslError mSslError; private RequestHandle mRequestHandle; private RequestHandle mSslErrorRequestHandle; // Request data. It is only valid when we are doing a load from the // cache. It is needed if the cache returns a redirect Loading Loading @@ -673,7 +674,7 @@ class LoadListener extends Handler implements EventHandler { * IMPORTANT: as this is called from network thread, can't call native * directly */ public void handleSslErrorRequest(SslError error) { public boolean handleSslErrorRequest(SslError error) { if (DebugFlags.LOAD_LISTENER) { Log.v(LOGTAG, "LoadListener.handleSslErrorRequest(): url:" + url() + Loading @@ -681,6 +682,15 @@ class LoadListener extends Handler implements EventHandler { " certificate: " + error.getCertificate()); } sendMessageInternal(obtainMessage(MSG_SSL_ERROR, error)); // if it has been canceled, return false so that the network thread // won't be blocked. If it is not canceled, save the mRequestHandle // so that if it is canceled when MSG_SSL_ERROR is handled, we can // still call handleSslErrorResponse which will call restartConnection // to unblock the network thread. if (!mCancelled) { mSslErrorRequestHandle = mRequestHandle; } return !mCancelled; } // Handle the ssl error on the WebCore thread. Loading @@ -688,7 +698,10 @@ class LoadListener extends Handler implements EventHandler { if (!mCancelled) { mSslError = error; Network.getInstance(mContext).handleSslErrorRequest(this); } else if (mSslErrorRequestHandle != null) { mSslErrorRequestHandle.handleSslErrorResponse(true); } mSslErrorRequestHandle = null; } /** Loading