Merge pull request #144 from eldk/isDNTRequested

add DNT DoNotTrack Support
This commit is contained in:
Amauri CHAMPEAUX 2018-06-15 16:00:28 +02:00 committed by GitHub
commit 77c5274032
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 1 deletions

View File

@ -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 */
});
</script>

View File

@ -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') {