From 87d590e4762fe0f39f02acc11b5757ccf916d3b9 Mon Sep 17 00:00:00 2001 From: eldk Date: Tue, 12 Jun 2018 01:52:31 +0200 Subject: [PATCH 1/3] add DNT DoNotTrack Support : When browser make request with DNT header set to yes or 1, set all services to false and service.fallback if needed. tarteaucitronAlertBig is not displayed/needed but tarteaucitronAlertSmall is. --- tarteaucitron.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tarteaucitron.js b/tarteaucitron.js index 0cada71..81b806c 100644 --- a/tarteaucitron.js +++ b/tarteaucitron.js @@ -405,6 +405,7 @@ var tarteaucitron = { isDenied = (cookie.indexOf(service.key + '=false') >= 0) ? true : false, isAllowed = (cookie.indexOf(service.key + '=true') >= 0) ? true : false, isResponded = (cookie.indexOf(service.key + '=false') >= 0 || cookie.indexOf(service.key + '=true') >= 0) ? true : false; + isDNTRequested = (navigator.doNotTrack === "1" || navigator.doNotTrack === "yes" || navigator.msDoNotTrack === "1" || window.doNotTrack === "1") ? true : false; if (tarteaucitron.added[service.key] !== true) { tarteaucitron.added[service.key] = true; @@ -462,6 +463,13 @@ var tarteaucitron = { } tarteaucitron.state[service.key] = false; tarteaucitron.userInterface.color(service.key, false); + } else if (!isResponded && isDNTRequested) { + tarteaucitron.cookie.create(service.key, 'false'); + if (typeof service.fallback === 'function') { + service.fallback(); + } + tarteaucitron.state[service.key] = false; + tarteaucitron.userInterface.color(service.key, false); } else if (!isResponded) { tarteaucitron.cookie.create(service.key, 'wait'); if (typeof service.fallback === 'function') { From d20fe6798a9d405c295d46d6f7f03bb4e96dd92a Mon Sep 17 00:00:00 2001 From: eldk Date: Tue, 12 Jun 2018 16:09:35 +0200 Subject: [PATCH 2/3] =?UTF-8?q?add=20option=20to=20enable=20DoNotTrackSupp?= =?UTF-8?q?ort=20support=20:=20default=20:=20false=20to=20enable=20add=20:?= =?UTF-8?q?=20"handleBrowserDNTRequest":=20true=20/*=20R=C3=A9pondre=20au?= =?UTF-8?q?=20DoNotTrack=20du=20navigateur*/=20to=20on=20page=20tarteaucit?= =?UTF-8?q?ron.init=20script.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tarteaucitron.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tarteaucitron.js b/tarteaucitron.js index 81b806c..1fa353b 100644 --- a/tarteaucitron.js +++ b/tarteaucitron.js @@ -183,7 +183,8 @@ var tarteaucitron = { "orientation": "top", "removeCredit": false, "showAlertSmall": true, - "cookieslist": true + "cookieslist": true, + "handleBrowserDNTRequest": false }, params = tarteaucitron.parameters; @@ -196,6 +197,7 @@ var tarteaucitron = { tarteaucitron.orientation = defaults.orientation; tarteaucitron.hashtag = defaults.hashtag; tarteaucitron.highPrivacy = defaults.highPrivacy; + tarteaucitron.handleBrowserDNTRequest = defaults.handleBrowserDNTRequest; // Step 1: load css linkElement.rel = 'stylesheet'; @@ -463,7 +465,7 @@ var tarteaucitron = { } tarteaucitron.state[service.key] = false; tarteaucitron.userInterface.color(service.key, false); - } else if (!isResponded && isDNTRequested) { + } else if (!isResponded && isDNTRequested && tarteaucitron.handleBrowserDNTRequest) { tarteaucitron.cookie.create(service.key, 'false'); if (typeof service.fallback === 'function') { service.fallback(); From 9be7b802167c1fb35b8bc1c7e8f7a027faee37d1 Mon Sep 17 00:00:00 2001 From: eldk Date: Tue, 12 Jun 2018 16:35:02 +0200 Subject: [PATCH 3/3] add DoNotTrack (handleBrowserDNTRequest) option to doc --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index be5c5c2..bc0dbd1 100644 --- a/README.md +++ b/README.md @@ -119,6 +119,7 @@ tarteaucitron.init({ "showAlertSmall": true, /* afficher le petit bandeau en bas à droite ? */ "cookieslist": true, /* Afficher la liste des cookies installés ? */ "removeCredit": false, /* supprimer le lien vers la source ? */ + "handleBrowserDNTRequest": false, /* Répondre au DoNotTrack du navigateur ?*/ "cookieDomain": ".my-multisite-domaine.fr" /* Nom de domaine sur lequel sera posé le cookie - pour les multisites / sous-domaines - Facultatif */ });