summaryrefslogtreecommitdiffstats
path: root/src/web-settings.c
diff options
context:
space:
mode:
authorPatrick McDermott <pj@pehjota.net>2017-10-06 17:06:42 (EDT)
committer Patrick McDermott <pj@pehjota.net>2017-10-06 17:11:16 (EDT)
commit6997a22481f5ec89a04d47c53f0cb36a241a3e32 (patch)
tree40dde1eebd3cd237de48dff991934cfc6abc3cf0 /src/web-settings.c
parenta0ab7463b8c1e866dc85baa1e33453942864fbc6 (diff)
downloadmarquee-6997a22481f5ec89a04d47c53f0cb36a241a3e32.zip
marquee-6997a22481f5ec89a04d47c53f0cb36a241a3e32.tar.gz
marquee-6997a22481f5ec89a04d47c53f0cb36a241a3e32.tar.bz2
src/web-settings.c: Set cookie acceptance setting
Diffstat (limited to 'src/web-settings.c')
-rw-r--r--src/web-settings.c36
1 files changed, 35 insertions, 1 deletions
diff --git a/src/web-settings.c b/src/web-settings.c
index 0820f8d..7e3c713 100644
--- a/src/web-settings.c
+++ b/src/web-settings.c
@@ -229,6 +229,28 @@ wkwc_preferred_languages_cb(MqConfig *config, const gchar *name,
}
static void
+wkcm_accept_policy_cb(MqConfig __attribute__((unused)) *config,
+ const gchar __attribute__((unused)) *name, const gchar *value,
+ WebKitCookieManager *wk_cookie_manager)
+{
+ if (g_strcmp0(value, "always") == 0) {
+ webkit_cookie_manager_set_accept_policy(wk_cookie_manager,
+ WEBKIT_COOKIE_POLICY_ACCEPT_ALWAYS);
+ } else if (g_strcmp0(value, "never") == 0) {
+ webkit_cookie_manager_set_accept_policy(wk_cookie_manager,
+ WEBKIT_COOKIE_POLICY_ACCEPT_NEVER);
+ } else if (g_strcmp0(value, "never") == 0) {
+ webkit_cookie_manager_set_accept_policy(wk_cookie_manager,
+ WEBKIT_COOKIE_POLICY_ACCEPT_NEVER);
+ } else if (g_strcmp0(value, "no-third-party") == 0) {
+ webkit_cookie_manager_set_accept_policy(wk_cookie_manager,
+ WEBKIT_COOKIE_POLICY_ACCEPT_NO_THIRD_PARTY);
+ } else {
+ g_assert_not_reached();
+ }
+}
+
+static void
init_mappings_table(void)
{
gsize i;
@@ -250,7 +272,11 @@ void
mq_web_settings_connect(MqConfig *config, WebKitSettings *wk_settings,
WebKitWebContext *wk_web_context)
{
- gsize i;
+ gsize i;
+ WebKitCookieManager *wk_cookie_manager;
+
+ wk_cookie_manager = webkit_web_context_get_cookie_manager(
+ wk_web_context);
init_mappings_table();
@@ -317,4 +343,12 @@ mq_web_settings_connect(MqConfig *config, WebKitSettings *wk_settings,
wk_web_context);
wkwc_preferred_languages_cb(config, "intl.accept-languages", NULL,
wk_web_context);
+
+ /* Security and Privacy -> Cookies */
+ mq_config_notify_string(config, "cookies.accept",
+ (MqConfigStringCallback) wkcm_accept_policy_cb,
+ wk_cookie_manager);
+ wkcm_accept_policy_cb(config, "cookies.accept",
+ mq_config_get_string(config, "cookies.accept"),
+ wk_cookie_manager);
}