[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