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

Commit fa487ca8 authored by Huahui Wu's avatar Huahui Wu Committed by Android (Google) Code Review
Browse files

Merge "Gets the URL that has a cert error and carrys it in SslError."

parents 5ba369f4 3015516a
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -11445,11 +11445,14 @@ package android.net.http {
  }
  public class SslError {
    ctor public SslError(int, android.net.http.SslCertificate);
    ctor public SslError(int, java.security.cert.X509Certificate);
    ctor public deprecated SslError(int, android.net.http.SslCertificate);
    ctor public deprecated SslError(int, java.security.cert.X509Certificate);
    ctor public SslError(int, android.net.http.SslCertificate, java.lang.String);
    ctor public SslError(int, java.security.cert.X509Certificate, java.lang.String);
    method public boolean addError(int);
    method public android.net.http.SslCertificate getCertificate();
    method public int getPrimaryError();
    method public java.lang.String getUrl();
    method public boolean hasError(int);
    field public static final int SSL_EXPIRED = 1; // 0x1
    field public static final int SSL_IDMISMATCH = 2; // 0x2
+65 −3
Original line number Diff line number Diff line
@@ -59,35 +59,96 @@ public class SslError {
    /**
     * The SSL certificate associated with the error set
     */
    SslCertificate mCertificate;
    final SslCertificate mCertificate;

    /**
     * The URL associated with the error set.
     */
    final String mUrl;

    /**
     * Creates a new SSL error set object
     * @param error The SSL error
     * @param certificate The associated SSL certificate
     * @deprecated Use {@link #SslError(int, SslCertificate, String)}
     */
    @Deprecated
    public SslError(int error, SslCertificate certificate) {
        addError(error);
        if (certificate == null) {
            throw new NullPointerException("certificate is null.");
        }
        mCertificate = certificate;
        mUrl = "";
    }

    /**
     * Creates a new SSL error set object
     * @param error The SSL error
     * @param certificate The associated SSL certificate
     * @deprecated Use {@link #SslError(int, X509Certificate, String)}
     */
    @Deprecated
    public SslError(int error, X509Certificate certificate) {
        addError(error);
        if (certificate == null) {
            throw new NullPointerException("certificate is null.");
        }
        mCertificate = new SslCertificate(certificate);
        mUrl = "";
    }

    /**
     * @return The SSL certificate associated with the error set
     * Creates a new SSL error set object
     * @param error The SSL error
     * @param certificate The associated SSL certificate
     * @param url The associated URL.
     */
    public SslError(int error, SslCertificate certificate, String url) {
        addError(error);
        if (certificate == null) {
            throw new NullPointerException("certificate is null.");
        }
        mCertificate = certificate;
        if (url == null) {
            throw new NullPointerException("url is null.");
        }
        mUrl = url;
    }

    /**
     * Creates a new SSL error set object
     * @param error The SSL error
     * @param certificate The associated SSL certificate
     * @param url The associated URL.
     */
    public SslError(int error, X509Certificate certificate, String url) {
        addError(error);
        if (certificate == null) {
            throw new NullPointerException("certificate is null.");
        }
        mCertificate = new SslCertificate(certificate);
        if (url == null) {
            throw new NullPointerException("url is null.");
        }
        mUrl = url;
    }

    /**
     * @return The SSL certificate associated with the error set, non-null.
     */
    public SslCertificate getCertificate() {
        return mCertificate;
    }

    /**
     * @return The URL associated with the error set, non-null.
     * "" if one of the deprecated constructors is used.
     */
    public String getUrl() {
        return mUrl;
    }

    /**
     * Adds the SSL error to the error set
     * @param error The SSL error to add
@@ -137,6 +198,7 @@ public class SslError {
     */
    public String toString() {
        return "primary error: " + getPrimaryError() +
            " certificate: " + getCertificate();
            " certificate: " + getCertificate() +
            "  on URL: " + getUrl();
    }
}
+3 −2
Original line number Diff line number Diff line
@@ -1150,11 +1150,12 @@ class BrowserFrame extends Handler {
     * {@link #nativeSslCertErrorProceed(int)} or
     * {@link #nativeSslCertErrorCancel(int, int)}.
     */
    private void reportSslCertError(final int handle, final int cert_error, byte cert_der[]) {
    private void reportSslCertError(
            final int handle, final int cert_error, byte cert_der[], String url) {
        final SslError ssl_error;
        try {
            X509Certificate cert = new X509CertImpl(cert_der);
            ssl_error = new SslError(cert_error, cert);
            ssl_error = new SslError(cert_error, cert, url);
        } catch (IOException e) {
            // Can't get the certificate, not much to do.
            Log.e(LOGTAG, "Can't get the certificate from WebKit, canceling");