⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 181531 in webkit


Ignore:
Timestamp:
Mar 16, 2015, 2:38:40 AM (11 years ago)
Author:
Carlos Garcia Campos
Message:

Merge r181399 - [GTK] Add support for handling TLS errors to MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=142576

Reviewed by Sergio Villar Senin.

It's useful for testing TLS errors handling itself, but also to
allow ignoring TLS errors when testing.

  • MiniBrowser/gtk/BrowserWindow.c:

(webViewLoadFailedWithTLSerrors):
(browserWindowConstructed):

Location:
releases/WebKitGTK/webkit-2.8/Tools
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • releases/WebKitGTK/webkit-2.8/Tools/ChangeLog

    r181530 r181531  
     12015-03-11  Carlos Garcia Campos  <cgarcia@igalia.com>
     2
     3        [GTK] Add support for handling TLS errors to MiniBrowser
     4        https://bugs.webkit.org/show_bug.cgi?id=142576
     5
     6        Reviewed by Sergio Villar Senin.
     7
     8        It's useful for testing TLS errors handling itself, but also to
     9        allow ignoring TLS errors when testing.
     10
     11        * MiniBrowser/gtk/BrowserWindow.c:
     12        (webViewLoadFailedWithTLSerrors):
     13        (browserWindowConstructed):
     14
    1152015-03-11  Carlos Garcia Campos  <cgarcia@igalia.com>
    216
  • releases/WebKitGTK/webkit-2.8/Tools/MiniBrowser/gtk/BrowserWindow.c

    r179984 r181531  
    369369}
    370370
     371static gboolean webViewLoadFailedWithTLSerrors(WebKitWebView *webView, const char *failingURI, GTlsCertificate *certificate, GTlsCertificateFlags errors, BrowserWindow *window)
     372{
     373    GtkWidget *dialog = gtk_message_dialog_new(GTK_WINDOW(window), GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
     374        GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO, "%s", "Invalid TLS Certificate");
     375    gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(dialog), "Failed to load %s: Do you want to continue ignoring the TLS errors?", failingURI);
     376    int response = gtk_dialog_run(GTK_DIALOG(dialog));
     377    gtk_widget_destroy(dialog);
     378
     379    if (response == GTK_RESPONSE_YES) {
     380        SoupURI *uri = soup_uri_new(failingURI);
     381        webkit_web_context_allow_tls_certificate_for_host(webkit_web_view_get_context(webView), certificate, uri->host);
     382        soup_uri_free(uri);
     383        webkit_web_view_load_uri(webView, failingURI);
     384    }
     385
     386    return TRUE;
     387}
     388
    371389static gboolean webViewDecidePolicy(WebKitWebView *webView, WebKitPolicyDecision *decision, WebKitPolicyDecisionType decisionType, BrowserWindow *window)
    372390{
     
    875893    g_signal_connect(window->webView, "create", G_CALLBACK(webViewCreate), window);
    876894    g_signal_connect(window->webView, "load-failed", G_CALLBACK(webViewLoadFailed), window);
     895    g_signal_connect(window->webView, "load-failed-with-tls-errors", G_CALLBACK(webViewLoadFailedWithTLSerrors), window);
    877896    g_signal_connect(window->webView, "decide-policy", G_CALLBACK(webViewDecidePolicy), window);
    878897    g_signal_connect(window->webView, "permission-request", G_CALLBACK(webViewDecidePermissionRequest), window);
Note: See TracChangeset for help on using the changeset viewer.