From 2717be8574713c2ed8a540ac4313340d7a8f79cf Mon Sep 17 00:00:00 2001 From: loviuz Date: Sun, 18 Jun 2023 17:40:43 +0200 Subject: [PATCH] Aggiunto rilevamento sicuro --- no-cookiewall-italia.js | 57 ++++++++++++++++++++++++++--------------- 1 file changed, 36 insertions(+), 21 deletions(-) diff --git a/no-cookiewall-italia.js b/no-cookiewall-italia.js index 6c55523..b3c90f6 100644 --- a/no-cookiewall-italia.js +++ b/no-cookiewall-italia.js @@ -2,8 +2,7 @@ // @author loviuz // @name No Cookiewall Italia // @namespace https://este.linux.it -// @version 1.5.1 -// @include *://* +// @version 1.6.0 // @license AGPL v3 // @description Permette di navigare siti web italiani di notizie evitando il cookiewall, il quale permette di accedere ai contenuti, già arrivati al browser, previa accettazione cookie o il pagamento di un abbonamento. Alcuni stabiliscono che questo comportamento dei siti non è lecito secondo il GDPR: in attesa di una pronuncia del garante della privacy propongo questo metodo per saltare questo blocco. // @lang it @@ -14,64 +13,65 @@ var cookiewall_found = false; var ci = setInterval( function(){ // Identifica il tipo di cookiewall - var is_iubenda = document.querySelector('#iubenda-cs-banner') || document.querySelector('#iubenda-cs-banner'); - var is_privacycpwall = document.querySelector('.wall-modal') || document.querySelector('.privacy-cp-wall'); - var is_onetrust_banner_sdk = document.querySelector('#onetrust-banner-sdk'); + var is_iubenda = secureQuerySelector('#iubenda-cs-banner') || secureQuerySelector('#iubenda-cs-banner'); + var is_privacycpwall = secureQuerySelector('.wall-modal') || secureQuerySelector('.privacy-cp-wall'); + var is_onetrust_banner_sdk = secureQuerySelector('#onetrust-banner-sdk'); if (is_iubenda) { - var cookiewall_desktop = document.querySelector('.prompt-to-accept'); - var cookiewall_mobile = document.querySelector('#iubenda-cs-banner'); + var cookiewall_desktop = secureQuerySelector('.prompt-to-accept'); + var cookiewall_mobile = secureQuerySelector('#iubenda-cs-banner'); // Cookiewall desktop if (cookiewall_desktop) { cookiewall_desktop.style.display = 'none'; - document.querySelector('html').classList.remove('show-prompt-to-accept'); - document.querySelector('html').style.overflow = 'auto'; + secureQuerySelector('html').classList.remove('show-prompt-to-accept'); + secureQuerySelector('.o-wrapper.iub--active').style.filter = 'none'; cookiewall_found = true; } // Cookiewall mobile if (cookiewall_mobile) { - document.querySelector('#iubenda-cs-banner.iubenda-cs-visible').classList.remove('iubenda-cs-visible'); + secureQuerySelector('#iubenda-cs-banner.iubenda-cs-visible').classList.remove('iubenda-cs-visible'); cookiewall_mobile.setAttribute('style', 'display:none !important'); - document.querySelector('html').setAttribute('style', ''); - document.querySelector('.adv-slot').style.display = 'none'; + secureQuerySelector('html').setAttribute('style', ''); + secureQuerySelector('.o-wrapper.iub--active').style.blur = 'none'; + secureQuerySelector('.adv-slot').style.display = 'none'; cookiewall_found = true; } } else if(is_privacycpwall){ - var cookiewall_desktop = document.querySelector('.wall-modal'); - var cookiewall_mobile = document.querySelector('.privacy-cp-wall'); + var cookiewall_desktop = secureQuerySelector('.wall-modal'); + var cookiewall_mobile = secureQuerySelector('.privacy-cp-wall'); // Cookiewall desktop if (cookiewall_desktop) { cookiewall_desktop.style.display = 'none'; - document.querySelector('.tp-backdrop').style.display = 'none'; - document.querySelector('body').classList.remove('tp-modal-open'); + secureQuerySelector('.tp-backdrop').style.display = 'none'; + secureQuerySelector('body').classList.remove('tp-modal-open'); cookiewall_found = true; } // Cookiewall mobile if (cookiewall_mobile) { cookiewall_mobile.style.display = 'none'; - document.querySelector('body').classList.remove('noScroll'); + secureQuerySelector('body').classList.remove('noScroll'); cookiewall_found = true; } } else if(is_onetrust_banner_sdk){ - var cookiewall = document.querySelector('#onetrust-banner-sdk'); + var cookiewall = secureQuerySelector('#onetrust-banner-sdk'); // Cookiewall if (cookiewall) { cookiewall.style.position = 'absolute'; cookiewall.style.left = '-10000px'; - document.querySelector('.onetrust-pc-dark-filter').style.position = 'absolute'; - document.querySelector('.onetrust-pc-dark-filter').style.left = '-10000px'; + secureQuerySelector('.onetrust-pc-dark-filter').style.position = 'absolute'; + secureQuerySelector('.onetrust-pc-dark-filter').style.left = '-10000px'; - document.querySelector('body').setAttribute('style', ''); + secureQuerySelector('body').setAttribute('style', ''); cookiewall_found = true; } } @@ -80,3 +80,18 @@ var ci = setInterval( function(){ clearInterval(ci); } }, 1000 ); + + +function secureQuerySelector(element){ + if (document.querySelector(element)) { + return document.querySelector(element); + }else{ + return generateElements('
'); + } +} + +function generateElements(html) { + const template = document.createElement('template'); + template.innerHTML = html.trim(); + return template.content.children[0]; +}