[Xfce4-commits] <midori:master> No third-party cookies with soup 2.29.91/ WebKit 1.1.21
Christian Dywan
noreply at xfce.org
Mon Oct 24 00:24:02 CEST 2011
Updating branch refs/heads/master
to 1ed184ba1cf9fe3c1467b4dbdd9dc902a8696a9b (commit)
from 1d4f129d6c5b7962575927e26356d1dccdde5467 (commit)
commit 1ed184ba1cf9fe3c1467b4dbdd9dc902a8696a9b
Author: Christian Dywan <christian at twotoasts.de>
Date: Mon Oct 24 00:18:32 2011 +0200
No third-party cookies with soup 2.29.91/ WebKit 1.1.21
midori/main.c | 27 +++++++++++++++++++++++++++
midori/midori-websettings.c | 31 ++++++++++++++++++++++++++++++-
2 files changed, 57 insertions(+), 1 deletions(-)
diff --git a/midori/main.c b/midori/main.c
index 9373ded..b46ba2d 100644
--- a/midori/main.c
+++ b/midori/main.c
@@ -755,6 +755,10 @@ midori_browser_privacy_preferences_cb (MidoriBrowser* browser,
katze_preferences_add_widget (preferences, button, "indented");
button = katze_property_proxy (settings, "maximum-cookie-age", "days");
katze_preferences_add_widget (preferences, button, "spanned");
+ #ifdef HAVE_LIBSOUP_2_29_91
+ button = katze_property_proxy (settings, "first-party-cookies-only", NULL);
+ katze_preferences_add_widget (preferences, button, "filled");
+ #endif
markup = g_strdup_printf ("<span size=\"smaller\">%s</span>",
_("Cookies store login data, saved games, "
@@ -922,6 +926,20 @@ soup_session_settings_notify_http_proxy_cb (MidoriWebSettings* settings,
midori_soup_session_set_proxy_uri (session, NULL);
}
+#ifdef HAVE_LIBSOUP_2_29_91
+static void
+soup_session_settings_notify_first_party_cb (MidoriWebSettings* settings,
+ GParamSpec* pspec,
+ SoupSession* session)
+{
+ void* jar = soup_session_get_feature (session, SOUP_TYPE_COOKIE_JAR);
+ gboolean yes = katze_object_get_boolean (settings, "first-party-cookies-only");
+ g_object_set (jar, "accept-policy",
+ yes ? SOUP_COOKIE_JAR_ACCEPT_NO_THIRD_PARTY
+ : SOUP_COOKIE_JAR_ACCEPT_ALWAYS, NULL);
+}
+#endif
+
static void
midori_soup_session_settings_accept_language_cb (SoupSession* session,
SoupMessage* msg,
@@ -1028,6 +1046,12 @@ midori_load_soup_session (gpointer settings)
G_CALLBACK (soup_session_settings_notify_http_proxy_cb), session);
g_signal_connect (settings, "notify::proxy-type",
G_CALLBACK (soup_session_settings_notify_http_proxy_cb), session);
+ #ifdef HAVE_LIBSOUP_2_29_91
+ if (g_object_class_find_property (G_OBJECT_GET_CLASS (settings),
+ "enable-file-access-from-file-uris")) /* WebKitGTK+ >= 1.1.21 */
+ g_signal_connect (settings, "notify::first-party-cookies-only",
+ G_CALLBACK (soup_session_settings_notify_first_party_cb), session);
+ #endif
g_signal_connect (session, "request-queued",
G_CALLBACK (midori_soup_session_settings_accept_language_cb), settings);
@@ -2186,6 +2210,9 @@ main (int argc,
g_object_set (settings,
"preferred-languages", "en",
"enable-private-browsing", TRUE,
+ #ifdef HAVE_LIBSOUP_2_29_91
+ "first-party-cookies-only", TRUE,
+ #endif
"enable-html5-database", FALSE,
"enable-html5-local-storage", FALSE,
"enable-offline-web-application-cache", FALSE,
diff --git a/midori/midori-websettings.c b/midori/midori-websettings.c
index 3dbb903..e34b546 100644
--- a/midori/midori-websettings.c
+++ b/midori/midori-websettings.c
@@ -58,7 +58,7 @@ struct _MidoriWebSettings
gboolean zoom_text_and_images : 1;
gboolean find_while_typing : 1;
gboolean kinetic_scrolling : 1;
- gboolean original_cookies_only : 1;
+ gboolean first_party_cookies_only : 1;
gboolean remember_last_visited_pages : 1;
MidoriProxy proxy_type : 2;
MidoriIdentity identify_as : 3;
@@ -156,6 +156,7 @@ enum
PROP_FIND_WHILE_TYPING,
PROP_KINETIC_SCROLLING,
PROP_MAXIMUM_COOKIE_AGE,
+ PROP_FIRST_PARTY_COOKIES_ONLY,
PROP_MAXIMUM_HISTORY_AGE,
@@ -837,6 +838,28 @@ midori_web_settings_class_init (MidoriWebSettingsClass* class)
0, G_MAXINT, 30,
flags));
+ /**
+ * MidoriWebSettings:first-party-cookies-only:
+ *
+ * Whether only first party cookies should be accepted.
+ * WebKitGTK+ 1.1.21 is required for this to work.
+ *
+ * Since: 0.4.2
+ */
+ g_object_class_install_property (gobject_class,
+ PROP_FIRST_PARTY_COOKIES_ONLY,
+ g_param_spec_boolean (
+ "first-party-cookies-only",
+ _("Only accept Cookies from sites you visit"),
+ _("Block cookies sent by third-party websites"),
+ #ifdef HAVE_LIBSOUP_2_29_91
+ TRUE,
+ g_object_class_find_property (gobject_class, /* WebKitGTK+ >= 1.1.21 */
+ "enable-file-access-from-file-uris") ? flags : G_PARAM_READABLE));
+ #else
+ FALSE,
+ G_PARAM_READABLE));
+ #endif
g_object_class_install_property (gobject_class,
PROP_MAXIMUM_HISTORY_AGE,
@@ -1350,6 +1373,9 @@ midori_web_settings_set_property (GObject* object,
case PROP_MAXIMUM_COOKIE_AGE:
web_settings->maximum_cookie_age = g_value_get_int (value);
break;
+ case PROP_FIRST_PARTY_COOKIES_ONLY:
+ web_settings->first_party_cookies_only = g_value_get_boolean (value);
+ break;
case PROP_MAXIMUM_HISTORY_AGE:
web_settings->maximum_history_age = g_value_get_int (value);
@@ -1608,6 +1634,9 @@ midori_web_settings_get_property (GObject* object,
case PROP_MAXIMUM_COOKIE_AGE:
g_value_set_int (value, web_settings->maximum_cookie_age);
break;
+ case PROP_FIRST_PARTY_COOKIES_ONLY:
+ g_value_set_boolean (value, web_settings->first_party_cookies_only);
+ break;
case PROP_MAXIMUM_HISTORY_AGE:
g_value_set_int (value, web_settings->maximum_history_age);
More information about the Xfce4-commits
mailing list