[Xfce4-commits] <midori:master> Use setting for old and new prefetching option

Christian Dywan noreply at xfce.org
Sun Apr 17 22:34:02 CEST 2011


Updating branch refs/heads/master
         to 10c5ac459712c5491f0cda702e1debf39ecdcfa1 (commit)
       from ea264c31f6d6b1d95814c42e9c48ab4817468bab (commit)

commit 10c5ac459712c5491f0cda702e1debf39ecdcfa1
Author: Christian Dywan <christian at twotoasts.de>
Date:   Sun Apr 17 22:29:51 2011 +0200

    Use setting for old and new prefetching option
    
    So prefetching in private mode is disabled regardless of
    whether prefetching is done in Midori or in new WebKit
    versions.
    Menu items also adhere to that same setting now.
    
    And use the chance to correct version checks.

 midori/main.c               |    9 ++++-----
 midori/midori-browser.c     |    3 ++-
 midori/midori-view.c        |    4 ++--
 midori/midori-websettings.c |   32 ++++++++++++++++++++++++++++++++
 midori/sokoke.c             |   10 ++++++++--
 midori/sokoke.h             |    7 +++----
 6 files changed, 51 insertions(+), 14 deletions(-)

diff --git a/midori/main.c b/midori/main.c
index e9f2734..1d93f05 100644
--- a/midori/main.c
+++ b/midori/main.c
@@ -2213,15 +2213,14 @@ main (int    argc,
 
         if (private)
         {
+            g_object_set (settings,
             #if WEBKIT_CHECK_VERSION (1, 1, 2)
-            g_object_set (settings, "enable-private-browsing", TRUE, NULL);
+                          "enable-private-browsing", TRUE,
             #endif
             /* Arguably DNS prefetching is or isn't a privacy concern. For the
              * lack of more fine-grained control we'll go the safe route. */
-            #if WEBKIT_CHECK_VERSION (1, 3, 13)
-            g_object_set (settings, "enable-dns-prefetching", FALSE, NULL);
-            #endif
-            g_object_set (settings, "strip-referer", TRUE, NULL);
+                          "enable-dns-prefetching", FALSE,
+                          "strip-referer", TRUE, NULL);
             midori_browser_set_action_visible (browser, "Tools", FALSE);
             midori_browser_set_action_visible (browser, "ClearPrivateData", FALSE);
         }
diff --git a/midori/midori-browser.c b/midori/midori-browser.c
index f51b967..4fbb409 100644
--- a/midori/midori-browser.c
+++ b/midori/midori-browser.c
@@ -2697,7 +2697,8 @@ midori_browser_menu_item_select_cb (GtkWidget*     menuitem,
         if (item)
         {
             tooltip = g_strdup (katze_item_get_uri (item));
-            sokoke_prefetch_uri (tooltip, NULL, NULL);
+            sokoke_prefetch_uri (midori_browser_get_settings (browser),
+                                 tooltip, NULL, NULL);
         }
     }
     _midori_browser_set_statusbar_text (browser, tooltip);
diff --git a/midori/midori-view.c b/midori/midori-view.c
index 52508d5..8e6a350 100644
--- a/midori/midori-view.c
+++ b/midori/midori-view.c
@@ -1701,8 +1701,8 @@ webkit_web_view_hovering_over_link_cb (WebKitWebView* web_view,
                                        const gchar*   link_uri,
                                        MidoriView*    view)
 {
-    #if !(WEBKIT_CHECK_VERSION (2, 18, 0) && defined (HAVE_LIBSOUP_2_29_3))
-    sokoke_prefetch_uri (link_uri, NULL, NULL);
+    #if !(WEBKIT_CHECK_VERSION (1, 3, 1) && defined (HAVE_LIBSOUP_2_29_3))
+    sokoke_prefetch_uri (view->settings, link_uri, NULL, NULL);
     #endif
 
     katze_assign (view->link_uri, g_strdup (link_uri));
diff --git a/midori/midori-websettings.c b/midori/midori-websettings.c
index d0983bf..196a9cb 100644
--- a/midori/midori-websettings.c
+++ b/midori/midori-websettings.c
@@ -86,6 +86,9 @@ struct _MidoriWebSettings
 
     gint clear_private_data;
     gchar* clear_data;
+    #if !WEBKIT_CHECK_VERSION (1, 3, 13)
+    gboolean enable_dns_prefetching;
+    #endif
     gboolean strip_referer;
 };
 
@@ -170,6 +173,7 @@ enum
 
     PROP_CLEAR_PRIVATE_DATA,
     PROP_CLEAR_DATA,
+    PROP_ENABLE_DNS_PREFETCHING,
     PROP_STRIP_REFERER
 };
 
@@ -1102,6 +1106,24 @@ midori_web_settings_class_init (MidoriWebSettingsClass* class)
                                      _("The data selected for deletion"),
                                      NULL,
                                      flags));
+    #if !WEBKIT_CHECK_VERSION (1, 3, 13)
+    /**
+     * MidoriWebSettings:enable-dns-prefetching:
+     *
+     * Whether to resolve host names in advance.
+     *
+     * Since: 0.3.4
+     */
+    g_object_class_install_property (gobject_class,
+                                     PROP_ENABLE_DNS_PREFETCHING,
+                                     g_param_spec_boolean (
+                                     "enable-dns-prefetching",
+        "Whether to resolve host names in advance",
+        "Whether host names on a website or in bookmarks should be prefetched",
+                                     TRUE,
+                                     flags));
+    #endif
+
     /**
      * MidoriWebSettings:strip-referer:
      *
@@ -1537,6 +1559,11 @@ midori_web_settings_set_property (GObject*      object,
     case PROP_CLEAR_DATA:
         katze_assign (web_settings->clear_data, g_value_dup_string (value));
         break;
+    #if !WEBKIT_CHECK_VERSION (1, 3, 13)
+    case PROP_ENABLE_DNS_PREFETCHING:
+        web_settings->enable_dns_prefetching = g_value_get_boolean (value);
+        break;
+    #endif
     case PROP_STRIP_REFERER:
         web_settings->strip_referer = g_value_get_boolean (value);
         break;
@@ -1771,6 +1798,11 @@ midori_web_settings_get_property (GObject*    object,
     case PROP_CLEAR_DATA:
         g_value_set_string (value, web_settings->clear_data);
         break;
+    #if !WEBKIT_CHECK_VERSION (1, 3, 13)
+    case PROP_ENABLE_DNS_PREFETCHING:
+        g_value_set_boolean (value, web_settings->enable_dns_prefetching);
+        break;
+    #endif
     case PROP_STRIP_REFERER:
         g_value_set_boolean (value, web_settings->strip_referer);
         break;
diff --git a/midori/sokoke.c b/midori/sokoke.c
index 0c04259..ac617f6 100644
--- a/midori/sokoke.c
+++ b/midori/sokoke.c
@@ -793,7 +793,7 @@ sokoke_resolve_hostname (const gchar* hostname)
     gint host_resolved = 0;
 
     uri = g_strconcat ("http://", hostname, NULL);
-    if (sokoke_prefetch_uri (uri, sokoke_resolve_hostname_cb,
+    if (sokoke_prefetch_uri (NULL, uri, sokoke_resolve_hostname_cb,
                              &host_resolved))
     {
         GTimer* timer = g_timer_new ();
@@ -1957,6 +1957,7 @@ sokoke_file_chooser_dialog_new (const gchar*         title,
 
 /**
  * sokoke_prefetch_uri:
+ * @settings: a #MidoriWebSettings instance, or %NULL
  * @uri: an URI string
  *
  * Attempts to prefetch the specified URI, that is
@@ -1965,7 +1966,8 @@ sokoke_file_chooser_dialog_new (const gchar*         title,
  * Return value: %TRUE on success
  **/
 gboolean
-sokoke_prefetch_uri (const char*         uri,
+sokoke_prefetch_uri (MidoriWebSettings*  settings,
+                     const char*         uri,
                      SoupAddressCallback callback,
                      gpointer            user_data)
 {
@@ -1977,6 +1979,10 @@ sokoke_prefetch_uri (const char*         uri,
 
     if (!uri)
         return FALSE;
+
+    if (settings && !katze_object_get_boolean (settings, "enable-dns-prefetching"))
+        return FALSE;
+
     s_uri = soup_uri_new (uri);
     if (!s_uri || !s_uri->host)
         return FALSE;
diff --git a/midori/sokoke.h b/midori/sokoke.h
index e76a914..976fe91 100644
--- a/midori/sokoke.h
+++ b/midori/sokoke.h
@@ -19,10 +19,8 @@
 #define MIDORI_MOD_BACKGROUND(state) (state & GDK_SHIFT_MASK)
 #define MIDORI_MOD_SCROLL(state) (state & GDK_CONTROL_MASK)
 
-#include <katze/katze.h>
-
-#include <webkit/webkit.h>
 #include <JavaScriptCore/JavaScript.h>
+#include <midori/midori-websettings.h>
 
 #if !GLIB_CHECK_VERSION (2, 14, 0)
     #define G_PARAM_STATIC_STRINGS \
@@ -254,7 +252,8 @@ sokoke_file_chooser_dialog_new          (const gchar*         title,
                                          GtkFileChooserAction action);
 
 gboolean
-sokoke_prefetch_uri                     (const char*         uri,
+sokoke_prefetch_uri                     (MidoriWebSettings*  settings,
+                                         const char*         uri,
                                          SoupAddressCallback callback,
                                          gpointer            user_data);
 



More information about the Xfce4-commits mailing list