Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f6d1a552 authored by Grace Kloba's avatar Grace Kloba
Browse files

resolved conflicts for merge of b8802b21 to master

parents 80502203 b8802b21
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -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);

}
+4 −1
Original line number Diff line number Diff line
@@ -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 {
+3 −1
Original line number Diff line number Diff line
@@ -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;
    }
}
+14 −1
Original line number Diff line number Diff line
@@ -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
@@ -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() +
@@ -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.
@@ -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;
    }

    /**