Title: [181531] releases/WebKitGTK/webkit-2.8/Tools
Revision
181531
Author
carlo...@webkit.org
Date
2015-03-16 02:38:40 -0700 (Mon, 16 Mar 2015)

Log 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):

Modified Paths

Diff

Modified: releases/WebKitGTK/webkit-2.8/Tools/ChangeLog (181530 => 181531)


--- releases/WebKitGTK/webkit-2.8/Tools/ChangeLog	2015-03-16 09:36:19 UTC (rev 181530)
+++ releases/WebKitGTK/webkit-2.8/Tools/ChangeLog	2015-03-16 09:38:40 UTC (rev 181531)
@@ -1,5 +1,19 @@
 2015-03-11  Carlos Garcia Campos  <cgar...@igalia.com>
 
+        [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):
+
+2015-03-11  Carlos Garcia Campos  <cgar...@igalia.com>
+
         [GTK] Add an option to enable MiniBrowser for non developer builds and always install it
         https://bugs.webkit.org/show_bug.cgi?id=126688
 

Modified: releases/WebKitGTK/webkit-2.8/Tools/MiniBrowser/gtk/BrowserWindow.c (181530 => 181531)


--- releases/WebKitGTK/webkit-2.8/Tools/MiniBrowser/gtk/BrowserWindow.c	2015-03-16 09:36:19 UTC (rev 181530)
+++ releases/WebKitGTK/webkit-2.8/Tools/MiniBrowser/gtk/BrowserWindow.c	2015-03-16 09:38:40 UTC (rev 181531)
@@ -368,6 +368,24 @@
     return FALSE;
 }
 
+static gboolean webViewLoadFailedWithTLSerrors(WebKitWebView *webView, const char *failingURI, GTlsCertificate *certificate, GTlsCertificateFlags errors, BrowserWindow *window)
+{
+    GtkWidget *dialog = gtk_message_dialog_new(GTK_WINDOW(window), GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
+        GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO, "%s", "Invalid TLS Certificate");
+    gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(dialog), "Failed to load %s: Do you want to continue ignoring the TLS errors?", failingURI);
+    int response = gtk_dialog_run(GTK_DIALOG(dialog));
+    gtk_widget_destroy(dialog);
+
+    if (response == GTK_RESPONSE_YES) {
+        SoupURI *uri = soup_uri_new(failingURI);
+        webkit_web_context_allow_tls_certificate_for_host(webkit_web_view_get_context(webView), certificate, uri->host);
+        soup_uri_free(uri);
+        webkit_web_view_load_uri(webView, failingURI);
+    }
+
+    return TRUE;
+}
+
 static gboolean webViewDecidePolicy(WebKitWebView *webView, WebKitPolicyDecision *decision, WebKitPolicyDecisionType decisionType, BrowserWindow *window)
 {
     switch (decisionType) {
@@ -874,6 +892,7 @@
     g_signal_connect(window->webView, "notify::title", G_CALLBACK(webViewTitleChanged), window);
     g_signal_connect(window->webView, "create", G_CALLBACK(webViewCreate), window);
     g_signal_connect(window->webView, "load-failed", G_CALLBACK(webViewLoadFailed), window);
+    g_signal_connect(window->webView, "load-failed-with-tls-errors", G_CALLBACK(webViewLoadFailedWithTLSerrors), window);
     g_signal_connect(window->webView, "decide-policy", G_CALLBACK(webViewDecidePolicy), window);
     g_signal_connect(window->webView, "permission-request", G_CALLBACK(webViewDecidePermissionRequest), window);
     g_signal_connect(window->webView, "mouse-target-changed", G_CALLBACK(webViewMouseTargetChanged), window);
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to