Summary Files Commits Branches @commit @diff @stats
diff options
context:
space:
mode:
1 files changed, 26 insertions, 0 deletions
-rw-r--r--badwolf.c26
diff --git a/badwolf.c b/badwolf.c
index b4dd580..fe40193 100644
--- a/badwolf.c
+++ b/badwolf.c
@@ -354,6 +354,28 @@ WebViewCb_decide_policy(WebKitWebView *web_view,
return TRUE;
}
+static gboolean
+WebViewCb_load_failed_with_tls_errors(WebKitWebView *web_view,
+ gchar *failing_uri,
+ GTlsCertificate *certificate,
+ GTlsCertificateFlags errors,
+ gpointer user_data)
+{
+ (void)web_view;
+ (void)certificate;
+ (void)errors;
+ struct Client *browser = (struct Client *)user_data;
+
+ GtkWidget *dialog = gtk_message_dialog_new(GTK_WINDOW(browser->window->main_window),
+ GTK_DIALOG_DESTROY_WITH_PARENT,
+ GTK_MESSAGE_ERROR,
+ GTK_BUTTONS_CLOSE,
+ "TLS Error for: %s",
+ failing_uri);
+
+ return FALSE; /* propagate the event further */
+}
+
static void
web_contextCb_download_started(WebKitWebContext *web_context,
WebKitDownload *download,
@@ -606,6 +628,10 @@ new_browser(struct Window *window, gchar *target_url, WebKitWebView *related_web
g_signal_connect(
browser->webView, "permission-request", G_CALLBACK(WebViewCb_permission_request), NULL);
g_signal_connect(browser->webView, "decide-policy", G_CALLBACK(WebViewCb_decide_policy), NULL);
+ g_signal_connect(browser->webView,
+ "load-failed-with-tls-errors",
+ G_CALLBACK(WebViewCb_load_failed_with_tls_errors),
+ browser);
/* signals for WebView's WebContext */
g_signal_connect(G_OBJECT(web_context),