]> spindle.queued.net Git - midori/commitdiff
Use setting for old and new prefetching option
authorChristian Dywan <christian@twotoasts.de>
Sun, 17 Apr 2011 20:29:51 +0000 (22:29 +0200)
committerChristian Dywan <christian@twotoasts.de>
Sun, 17 Apr 2011 20:29:51 +0000 (22:29 +0200)
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
midori/midori-browser.c
midori/midori-view.c
midori/midori-websettings.c
midori/sokoke.c
midori/sokoke.h

index e9f27345c9741cbf56137b7fcc93963d01df2347..1d93f057ad0b28c2f80f64a8db57093928fd459c 100644 (file)
@@ -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);
         }
index f51b96789fd15ce911d108a881ac8f43ceef7f27..4fbb409ce5ff845d9274c5d6f02067c837ff9983 100644 (file)
@@ -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);
index 52508d5c9a59116c38454af752e3662de074505b..8e6a350c5f27a14ab20e96b8c5f1db51bf3990d1 100644 (file)
@@ -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));
index d0983bfffc682fc66f6e54abf06a1923a8cf8be8..196a9cb439075939ce0dbe9279509455af6bb1cb 100644 (file)
@@ -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;
index 0c04259b55f6fba2574ff8b57d9942a0083575e4..ac617f681365e00ac110256762ba3ab4692ac7cb 100644 (file)
@@ -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;
index e76a914fc9b2251ca745ce498c8c8c192adb7740..976fe91fa8c5c6430a416dc04bdfa2ef1b64dc7f 100644 (file)
 #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);