diff options
Add GtkMessageDialog on load-failed-with-tls-errors
1 files changed, 26 insertions, 0 deletions
| -rw-r--r-- | badwolf.c | 26 |
@@ -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), |