[Xfce4-commits] <midori:master> Render error message if granting trust fails

Christian Dywan noreply at xfce.org
Thu Jul 19 21:42:01 CEST 2012


Updating branch refs/heads/master
         to 91befb0cccea39a60612a53bdcb5bb9b9eb25e62 (commit)
       from b8b0bc341dc7d5d3af9fd751accf607306382c9b (commit)

commit 91befb0cccea39a60612a53bdcb5bb9b9eb25e62
Author: Christian Dywan <christian at twotoasts.de>
Date:   Thu Jul 19 21:37:13 2012 +0200

    Render error message if granting trust fails

 midori/midori-view.c |   32 ++++++++++++++++++--------------
 1 files changed, 18 insertions(+), 14 deletions(-)

diff --git a/midori/midori-view.c b/midori/midori-view.c
index 3e8eed2..04e7de4 100644
--- a/midori/midori-view.c
+++ b/midori/midori-view.c
@@ -82,6 +82,15 @@ midori_view_speed_dial_get_thumb (MidoriView* view,
                                   gchar*      dial_id,
                                   gchar*      url);
 
+static gboolean
+midori_view_display_error (MidoriView*     view,
+                           const gchar*    uri,
+                           const gchar*    title,
+                           const gchar*    message,
+                           const gchar*    description,
+                           const gchar*    try_again,
+                           WebKitWebFrame* web_frame);
+
 struct _MidoriView
 {
     GtkVBox parent_instance;
@@ -979,13 +988,20 @@ midori_view_web_view_navigation_decision_cb (WebKitWebView*             web_view
                 g_object_get (tls_cert, "certificate", &der_cert, NULL);
                 gcr_cert = gcr_simple_certificate_new (der_cert->data, der_cert->len);
                 g_byte_array_unref (der_cert);
-                if (soup_uri && soup_uri->host && !gcr_trust_is_certificate_pinned (gcr_cert, GCR_PURPOSE_SERVER_AUTH, soup_uri->host, NULL, NULL))
+                if (soup_uri && soup_uri->host && gcr_trust_is_certificate_pinned (gcr_cert, GCR_PURPOSE_SERVER_AUTH, soup_uri->host, NULL, NULL))
                 {
                     GError* error = NULL;
                     gcr_trust_add_pinned_certificate (gcr_cert, GCR_PURPOSE_SERVER_AUTH, soup_uri->host, NULL, &error);
                     if (error != NULL)
                     {
-                        g_warning ("Error granting trust: %s", error->message);
+                        midori_view_stop_loading (view);
+                        gchar* slots = g_strjoinv (" , ", (gchar**)gcr_pkcs11_get_trust_lookup_uris ());
+                        gchar* title = g_strdup_printf ("Error granting trust: %s", error->message);
+                        midori_view_display_error (view, view->uri,
+                            view->title ? view->title : view->uri, title, slots,
+                            _("Trust this website"), NULL);
+                        g_free (title);
+                        g_free (slots);
                         g_error_free (error);
                     }
                 }
@@ -1038,21 +1054,9 @@ webkit_web_view_load_started_cb (WebKitWebView*  web_view,
     g_object_thaw_notify (G_OBJECT (view));
 }
 
-static gboolean
-midori_view_display_error (MidoriView*     view,
-                           const gchar*    uri,
-                           const gchar*    title,
-                           const gchar*    message,
-                           const gchar*    description,
-                           const gchar*    try_again,
-                           WebKitWebFrame* web_frame);
-
 #if HAVE_GCR
 const gchar*
 midori_location_action_tls_flags_to_string (GTlsCertificateFlags flags);
-
-SoupMessage*
-midori_map_get_message (SoupMessage* message);
 #endif
 
 static void


More information about the Xfce4-commits mailing list