From 87d590e4762fe0f39f02acc11b5757ccf916d3b9 Mon Sep 17 00:00:00 2001 From: eldk Date: Tue, 12 Jun 2018 01:52:31 +0200 Subject: [PATCH] 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') {