aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCarlos Garcia Campos <cgarcia@igalia.com>2013-03-14 00:29:35 +0800
committerCarlos Garcia Campos <carlosgc@gnome.org>2013-03-15 03:48:43 +0800
commit06e40d778446420f776f3f2d404198e0f24b2bf7 (patch)
tree9e2ceb89d85ba1c28c3602ac313b97eba0395cb5
parent3b5a81725a5fea3f90c028e6d1f831584baaa586 (diff)
downloadgsoc2013-epiphany-06e40d778446420f776f3f2d404198e0f24b2bf7.tar
gsoc2013-epiphany-06e40d778446420f776f3f2d404198e0f24b2bf7.tar.gz
gsoc2013-epiphany-06e40d778446420f776f3f2d404198e0f24b2bf7.tar.bz2
gsoc2013-epiphany-06e40d778446420f776f3f2d404198e0f24b2bf7.tar.lz
gsoc2013-epiphany-06e40d778446420f776f3f2d404198e0f24b2bf7.tar.xz
gsoc2013-epiphany-06e40d778446420f776f3f2d404198e0f24b2bf7.tar.zst
gsoc2013-epiphany-06e40d778446420f776f3f2d404198e0f24b2bf7.zip
web-extension: Implement Do Not Track in WebKit2
https://bugzilla.gnome.org/show_bug.cgi?id=695343
-rw-r--r--embed/ephy-web-view.c8
-rw-r--r--embed/web-extension/ephy-web-extension.c14
2 files changed, 13 insertions, 9 deletions
diff --git a/embed/ephy-web-view.c b/embed/ephy-web-view.c
index 7bbd67439..98b29d27c 100644
--- a/embed/ephy-web-view.c
+++ b/embed/ephy-web-view.c
@@ -2648,9 +2648,7 @@ form_auth_data_save_requested (EphyEmbedShell *shell,
}
#endif
-#ifdef HAVE_WEBKIT2
-/* TODO: WebKitWebResource::send-request */
-#else
+#ifndef HAVE_WEBKIT2
static void
add_do_not_track_header_cb (WebKitWebView *view, WebKitWebFrame *frame,
WebKitWebResource *resource, WebKitNetworkRequest *request,
@@ -2815,9 +2813,7 @@ ephy_web_view_init (EphyWebView *web_view)
web_view);
#endif
-#ifdef HAVE_WEBKIT2
- /* TODO: WebKitWebResource::send-request */
-#else
+#ifndef HAVE_WEBKIT2
if (g_settings_get_boolean (EPHY_SETTINGS_WEB, EPHY_PREFS_WEB_DO_NOT_TRACK))
priv->do_not_track_handler = g_signal_connect (web_view, "resource-request-starting",
G_CALLBACK (add_do_not_track_header_cb), NULL);
diff --git a/embed/web-extension/ephy-web-extension.c b/embed/web-extension/ephy-web-extension.c
index d47c7f860..47feedad1 100644
--- a/embed/web-extension/ephy-web-extension.c
+++ b/embed/web-extension/ephy-web-extension.c
@@ -80,9 +80,17 @@ web_page_send_request (WebKitWebPage *web_page,
const char *request_uri;
const char *page_uri;
- /* FIXME: Instead of checking the setting here, connect to the signal
- * or not depending on the setting.
- */
+ if (g_settings_get_boolean (EPHY_SETTINGS_WEB, EPHY_PREFS_WEB_DO_NOT_TRACK)) {
+ SoupMessageHeaders *headers;
+
+ headers = webkit_uri_request_get_http_headers (request);
+ if (headers) {
+ /* Do Not Track header. '1' means 'opt-out'. See:
+ * http://tools.ietf.org/id/draft-mayer-do-not-track-00.txt */
+ soup_message_headers_append (headers, "DNT", "1");
+ }
+ }
+
if (!g_settings_get_boolean (EPHY_SETTINGS_WEB, EPHY_PREFS_WEB_ENABLE_ADBLOCK))
return FALSE;