diff --git a/README.md b/README.md index 641c93f..a593e1e 100644 --- a/README.md +++ b/README.md @@ -120,6 +120,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 */ }); diff --git a/tarteaucitron.js b/tarteaucitron.js index 0013720..4e296c1 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'; @@ -408,6 +410,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; @@ -465,6 +468,13 @@ var tarteaucitron = { } tarteaucitron.state[service.key] = false; tarteaucitron.userInterface.color(service.key, false); + } else if (!isResponded && isDNTRequested && tarteaucitron.handleBrowserDNTRequest) { + 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') {