[evolution/wip-webkit2] Move EMailDisplay to use decide-policy signal



commit 238e2cb9744e0e1efbfc448bf125ee4f6f2ebbd9
Author: Tomas Popela <tpopela redhat com>
Date:   Tue Oct 29 14:46:38 2013 +0100

    Move EMailDisplay to use decide-policy signal

 mail/e-mail-display.c |   36 ++++++++++++++++++++++--------------
 1 files changed, 22 insertions(+), 14 deletions(-)
---
diff --git a/mail/e-mail-display.c b/mail/e-mail-display.c
index 252290b..202b9b7 100644
--- a/mail/e-mail-display.c
+++ b/mail/e-mail-display.c
@@ -239,14 +239,21 @@ mail_display_process_mailto (EWebView *web_view,
 }
 
 static gboolean
-mail_display_link_clicked (WebKitWebView *web_view,
-                           WebKitWebFrame *frame,
-                           WebKitNetworkRequest *request,
-                           WebKitWebNavigationAction *navigation_action,
-                           WebKitWebPolicyDecision *policy_decision,
-                           gpointer user_data)
+decide_policy_cb (WebKitWebView *web_view,
+                  WebKitPolicyDecision *decision,
+                  WebKitPolicyDecisionType type)
 {
-       const gchar *uri = webkit_network_request_get_uri (request);
+       WebKitNavigationPolicyDecision *navigation_decision;
+       WebKitURIRequest *request;
+       const gchar *uri;
+
+       if (type != WEBKIT_POLICY_DECISION_TYPE_NAVIGATION_ACTION)
+               return FALSE;
+
+       navigation_decision = WEBKIT_NAVIGATION_POLICY_DECISION (decision);
+
+       request = webkit_navigation_policy_decision_get_request (navigation_decision);
+       uri = webkit_uri_request_get_uri (request);
 
        if (g_str_has_prefix (uri, "file://")) {
                gchar *filename;
@@ -254,8 +261,9 @@ mail_display_link_clicked (WebKitWebView *web_view,
                filename = g_filename_from_uri (uri, NULL, NULL);
 
                if (g_file_test (filename, G_FILE_TEST_IS_DIR)) {
-                       webkit_web_policy_decision_ignore (policy_decision);
-                       webkit_network_request_set_uri (request, "about:blank");
+                       webkit_policy_decision_ignore (decision);
+                       /* FIXME XXX Not sure if the request will be changed there */
+                       webkit_uri_request_set_uri (request, "about:blank");
                        g_free (filename);
                        return TRUE;
                }
@@ -265,17 +273,17 @@ mail_display_link_clicked (WebKitWebView *web_view,
 
        if (mail_display_process_mailto (E_WEB_VIEW (web_view), uri, NULL)) {
                /* do nothing, function handled the "mailto:"; uri already */
-               webkit_web_policy_decision_ignore (policy_decision);
+               webkit_policy_decision_ignore (decision);
                return TRUE;
 
        } else if (g_ascii_strncasecmp (uri, "thismessage:", 12) == 0) {
                /* ignore */
-               webkit_web_policy_decision_ignore (policy_decision);
+               webkit_policy_decision_ignore (decision);
                return TRUE;
 
        } else if (g_ascii_strncasecmp (uri, "cid:", 4) == 0) {
                /* ignore */
-               webkit_web_policy_decision_ignore (policy_decision);
+               webkit_policy_decision_ignore (decision);
                return TRUE;
 
        }
@@ -1500,8 +1508,8 @@ e_mail_display_init (EMailDisplay *display)
        g_object_set (settings, "enable-frame-flattening", TRUE, NULL);
 
        g_signal_connect (
-               display, "navigation-policy-decision-requested",
-               G_CALLBACK (mail_display_link_clicked), NULL);
+               display, "decide-policy",
+               G_CALLBACK (decide_policy_cb), NULL);
        g_signal_connect (
                display, "resource-request-starting",
                G_CALLBACK (mail_display_resource_requested), NULL);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]