From aee5fdfba4bc2ea4b769d21d7a0e2c60973d1787 Mon Sep 17 00:00:00 2001 From: wanhose Date: Sun, 4 Aug 2024 09:22:28 +0200 Subject: [PATCH 01/14] fix(browser-extension): issue #703 --- .../browser-extension/src/scripts/content.js | 31 +++++++------------ 1 file changed, 12 insertions(+), 19 deletions(-) diff --git a/packages/browser-extension/src/scripts/content.js b/packages/browser-extension/src/scripts/content.js index bff4e0e..40063b9 100644 --- a/packages/browser-extension/src/scripts/content.js +++ b/packages/browser-extension/src/scripts/content.js @@ -320,19 +320,6 @@ function fix() { } } -/** - * @description Calculate reading time for the current page to avoid lags in large pages - * @returns {number} - */ -function readingTime() { - const text = document.body.innerText; - const wpm = 225; - const words = text.trim().split(/\s+/).length; - const time = Math.ceil(words / wpm); - - return time; -} - /** * @description Restore DOM to its previous state * @returns {void} @@ -468,12 +455,18 @@ window.addEventListener(triggerEventName, (event) => { if (event.detail?.elements) { clean(event.detail.elements, event.detail.skipMatch); } else { - if (readingTime() < 4) { - forceClean(document.body); - } else { - // 2023-06-13: look into the first level of the document body, there are dialogs there very often - clean([...document.body.children]); - } + // 2024-08-03: look into the first level of important nodes, there are dialogs there very often + clean([ + ...document.body.children, + ...Array.from(document.getElementsByClassName('container')[0]?.children ?? []), + ...Array.from(document.getElementsByClassName('layout')[0]?.children ?? []), + ...Array.from(document.getElementsByClassName('page')[0]?.children ?? []), + ...Array.from(document.getElementsByClassName('wrapper')[0]?.children ?? []), + ...Array.from(document.getElementById('__next')?.children ?? []), + ...Array.from(document.getElementById('app')?.children ?? []), + ...Array.from(document.getElementById('main')?.children ?? []), + ...Array.from(document.getElementById('root')?.children ?? []), + ]); } } }); From 57aed8a6c42a2f37825f113ecb934d77cc16c793 Mon Sep 17 00:00:00 2001 From: wanhose Date: Sun, 4 Aug 2024 09:22:42 +0200 Subject: [PATCH 02/14] chore(browser-extension): upgrade manifest version --- packages/browser-extension/src/manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/browser-extension/src/manifest.json b/packages/browser-extension/src/manifest.json index 2ec4b56..d059c8c 100644 --- a/packages/browser-extension/src/manifest.json +++ b/packages/browser-extension/src/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 3, "name": "Cookie Dialog Monster", - "version": "7.1.0", + "version": "7.1.1", "default_locale": "en", "description": "__MSG_appDesc__", "icons": { From 75af9b6a02677536c3f5012f6cb95e8d2cb8b5cd Mon Sep 17 00:00:00 2001 From: wanhose Date: Sun, 4 Aug 2024 09:31:23 +0200 Subject: [PATCH 03/14] fix(browser-extension): issue #714 --- packages/browser-extension/src/scripts/content.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/browser-extension/src/scripts/content.js b/packages/browser-extension/src/scripts/content.js index 40063b9..ae763be 100644 --- a/packages/browser-extension/src/scripts/content.js +++ b/packages/browser-extension/src/scripts/content.js @@ -235,7 +235,9 @@ function match(element, skipMatch) { return false; } - if (element.hasAttributes()) { + const hasAttributes = !!element.getAttributeNames().filter((x) => x !== 'data-nosnippet').length; + + if (hasAttributes) { // 2023-06-10: fix #113 temporarily if (element.classList.contains('chat-line__message')) { return false; From 53ea633f86b2cfff18552811b320dd84f8e3f9c8 Mon Sep 17 00:00:00 2001 From: wanhose Date: Sun, 4 Aug 2024 11:54:26 +0200 Subject: [PATCH 04/14] refactor(browser-extension): drop unnecessary call to dispatchEvent --- packages/browser-extension/src/scripts/content.js | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/browser-extension/src/scripts/content.js b/packages/browser-extension/src/scripts/content.js index ae763be..ad88674 100644 --- a/packages/browser-extension/src/scripts/content.js +++ b/packages/browser-extension/src/scripts/content.js @@ -483,6 +483,5 @@ window.addEventListener('visibilitychange', async () => { if (document.visibilityState === 'visible' && !initiallyVisible) { initiallyVisible = true; await run(); - window.dispatchEvent(new CustomEvent(triggerEventName)); } }); From 631120ca69ef752eafbf886c51da2c49223d0c21 Mon Sep 17 00:00:00 2001 From: wanhose Date: Sun, 4 Aug 2024 12:25:51 +0200 Subject: [PATCH 05/14] feat(browser-extension): add cdn.cookielaw.org to rules --- packages/browser-extension/src/rules.json | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/packages/browser-extension/src/rules.json b/packages/browser-extension/src/rules.json index 023fa92..55fca39 100644 --- a/packages/browser-extension/src/rules.json +++ b/packages/browser-extension/src/rules.json @@ -5,6 +5,17 @@ "action": { "type": "block" }, + "condition": { + "urlFilter": "||cdn.cookielaw.org^", + "resourceTypes": ["script"] + } + }, + { + "id": 2, + "priority": 1, + "action": { + "type": "block" + }, "condition": { "urlFilter": "||cmp.inmobi.com^", "resourceTypes": ["script"] From 3baae5385a29d5e64258fd67ec60ac6d44375c4d Mon Sep 17 00:00:00 2001 From: wanhose Date: Sun, 4 Aug 2024 12:29:16 +0200 Subject: [PATCH 06/14] fix(rules): issue #672 --- .commitlintrc | 1 + packages/browser-extension/src/rules.json | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/.commitlintrc b/.commitlintrc index 0102cde..754236d 100644 --- a/.commitlintrc +++ b/.commitlintrc @@ -20,6 +20,7 @@ "database", "docs", "packages", + "rules", "web" ] ] diff --git a/packages/browser-extension/src/rules.json b/packages/browser-extension/src/rules.json index 55fca39..c6db9d9 100644 --- a/packages/browser-extension/src/rules.json +++ b/packages/browser-extension/src/rules.json @@ -20,5 +20,16 @@ "urlFilter": "||cmp.inmobi.com^", "resourceTypes": ["script"] } + }, + { + "id": 3, + "priority": 1, + "action": { + "type": "block" + }, + "condition": { + "urlFilter": "||consent.trustarc.com^", + "resourceTypes": ["script"] + } } ] From 094a7a7181b9f3e511d15d1bdb1222347138e43e Mon Sep 17 00:00:00 2001 From: wanhose Date: Sun, 4 Aug 2024 12:33:29 +0200 Subject: [PATCH 07/14] fix(rules): issue #669 --- packages/browser-extension/src/rules.json | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/packages/browser-extension/src/rules.json b/packages/browser-extension/src/rules.json index c6db9d9..4b83145 100644 --- a/packages/browser-extension/src/rules.json +++ b/packages/browser-extension/src/rules.json @@ -31,5 +31,16 @@ "urlFilter": "||consent.trustarc.com^", "resourceTypes": ["script"] } + }, + { + "id": 4, + "priority": 1, + "action": { + "type": "block" + }, + "condition": { + "urlFilter": "||wcpstatic.microsoft.com^", + "resourceTypes": ["script"] + } } ] From 6421b0b70a9864eb8d2955f5bbf56557d2612792 Mon Sep 17 00:00:00 2001 From: wanhose Date: Sun, 4 Aug 2024 13:11:35 +0200 Subject: [PATCH 08/14] fix(browser-extension): part of the issue #664 --- packages/browser-extension/src/rules.json | 27 ++++++++++++++++------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/packages/browser-extension/src/rules.json b/packages/browser-extension/src/rules.json index 4b83145..11d4426 100644 --- a/packages/browser-extension/src/rules.json +++ b/packages/browser-extension/src/rules.json @@ -6,8 +6,8 @@ "type": "block" }, "condition": { - "urlFilter": "||cdn.cookielaw.org^", - "resourceTypes": ["script"] + "resourceTypes": ["script"], + "urlFilter": "||app.usercentrics.eu^" } }, { @@ -17,8 +17,8 @@ "type": "block" }, "condition": { - "urlFilter": "||cmp.inmobi.com^", - "resourceTypes": ["script"] + "resourceTypes": ["script"], + "urlFilter": "||cdn.cookielaw.org^" } }, { @@ -28,8 +28,8 @@ "type": "block" }, "condition": { - "urlFilter": "||consent.trustarc.com^", - "resourceTypes": ["script"] + "resourceTypes": ["script"], + "urlFilter": "||cmp.inmobi.com^" } }, { @@ -39,8 +39,19 @@ "type": "block" }, "condition": { - "urlFilter": "||wcpstatic.microsoft.com^", - "resourceTypes": ["script"] + "resourceTypes": ["script"], + "urlFilter": "||consent.trustarc.com^" + } + }, + { + "id": 5, + "priority": 1, + "action": { + "type": "block" + }, + "condition": { + "resourceTypes": ["script"], + "urlFilter": "||wcpstatic.microsoft.com^" } } ] From 0cb642417c18570e2704c0bfe9c80207c8b0905e Mon Sep 17 00:00:00 2001 From: wanhose Date: Sun, 4 Aug 2024 13:17:54 +0200 Subject: [PATCH 09/14] fix(browser-extension): issue #663 --- packages/browser-extension/src/scripts/content.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/browser-extension/src/scripts/content.js b/packages/browser-extension/src/scripts/content.js index ad88674..c7399af 100644 --- a/packages/browser-extension/src/scripts/content.js +++ b/packages/browser-extension/src/scripts/content.js @@ -270,7 +270,7 @@ function match(element, skipMatch) { * @returns {void} */ function fix() { - const backdrops = document.getElementsByClassName('modal-backdrop'); + const backdrops = document.querySelectorAll('.modal-backdrop, .overlay'); const domains = (skips?.domains ?? []).map((x) => (x.split('.').length < 3 ? `*${x}` : x)); for (const backdrop of backdrops) { From e3e9cbf5c58b79b4410621263eea8588a4348dfd Mon Sep 17 00:00:00 2001 From: wanhose Date: Sun, 4 Aug 2024 13:19:49 +0200 Subject: [PATCH 10/14] fix(rules): issue #662 --- packages/browser-extension/src/rules.json | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/packages/browser-extension/src/rules.json b/packages/browser-extension/src/rules.json index 11d4426..4493426 100644 --- a/packages/browser-extension/src/rules.json +++ b/packages/browser-extension/src/rules.json @@ -18,7 +18,7 @@ }, "condition": { "resourceTypes": ["script"], - "urlFilter": "||cdn.cookielaw.org^" + "urlFilter": "||c.evidon.com^" } }, { @@ -29,7 +29,7 @@ }, "condition": { "resourceTypes": ["script"], - "urlFilter": "||cmp.inmobi.com^" + "urlFilter": "||cdn.cookielaw.org^" } }, { @@ -40,7 +40,7 @@ }, "condition": { "resourceTypes": ["script"], - "urlFilter": "||consent.trustarc.com^" + "urlFilter": "||cmp.inmobi.com^" } }, { @@ -49,6 +49,17 @@ "action": { "type": "block" }, + "condition": { + "resourceTypes": ["script"], + "urlFilter": "||consent.trustarc.com^" + } + }, + { + "id": 6, + "priority": 1, + "action": { + "type": "block" + }, "condition": { "resourceTypes": ["script"], "urlFilter": "||wcpstatic.microsoft.com^" From 293c25578ebadb0102bd3bfe9686d22e3887a21e Mon Sep 17 00:00:00 2001 From: wanhose Date: Sun, 4 Aug 2024 13:51:39 +0200 Subject: [PATCH 11/14] fix(browser-extension): issue #630 --- packages/browser-extension/src/scripts/content.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/browser-extension/src/scripts/content.js b/packages/browser-extension/src/scripts/content.js index c7399af..b058c36 100644 --- a/packages/browser-extension/src/scripts/content.js +++ b/packages/browser-extension/src/scripts/content.js @@ -191,13 +191,16 @@ function getHostname() { * @returns {boolean} */ function isInViewport(element) { + const styles = window.getComputedStyle(element); const height = window.innerHeight || document.documentElement.clientHeight; const position = element.getBoundingClientRect(); const scroll = window.scrollY; + const transitioning = styles.transitionDuration !== '0s'; return ( position.bottom === position.top || - (scroll + position.top <= scroll + height && scroll + position.bottom >= scroll) + (scroll + position.top <= scroll + height && scroll + position.bottom >= scroll) || + transitioning ); } From 41a64e6fcfb65f3a78530c0a683d825855974d2e Mon Sep 17 00:00:00 2001 From: wanhose Date: Sun, 4 Aug 2024 13:57:28 +0200 Subject: [PATCH 12/14] fix(browser-extension): issue #658 --- packages/browser-extension/src/scripts/content.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/browser-extension/src/scripts/content.js b/packages/browser-extension/src/scripts/content.js index b058c36..f78516d 100644 --- a/packages/browser-extension/src/scripts/content.js +++ b/packages/browser-extension/src/scripts/content.js @@ -273,7 +273,11 @@ function match(element, skipMatch) { * @returns {void} */ function fix() { - const backdrops = document.querySelectorAll('.modal-backdrop, .overlay'); + const backdrops = document.querySelectorAll([ + '.modal-backdrop', + '.offcanvas-backdrop', + '.overlay', + ]); const domains = (skips?.domains ?? []).map((x) => (x.split('.').length < 3 ? `*${x}` : x)); for (const backdrop of backdrops) { From ddf3ca4a4e6297cca973e9bdb8ca1a8bcea6cd86 Mon Sep 17 00:00:00 2001 From: wanhose Date: Sun, 4 Aug 2024 14:10:37 +0200 Subject: [PATCH 13/14] fix(browser-extension): issue #643 #686 --- packages/browser-extension/src/scripts/content.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/browser-extension/src/scripts/content.js b/packages/browser-extension/src/scripts/content.js index f78516d..6f39938 100644 --- a/packages/browser-extension/src/scripts/content.js +++ b/packages/browser-extension/src/scripts/content.js @@ -66,7 +66,10 @@ const options = { childList: true, subtree: true }; /** * @description Is consent preview page? */ -const preview = hostname.startsWith('consent.') || hostname.startsWith('myprivacy.'); +const preview = + (hostname.startsWith('consent.') && + !(hostname.startsWith('consent.google') || hostname.startsWith('consent.youtube'))) || + hostname.startsWith('myprivacy.'); /** * @description Elements that were already matched and are removable From 6678a4f22f803a609c244ad1b0ee371ea758bca7 Mon Sep 17 00:00:00 2001 From: wanhose Date: Sun, 4 Aug 2024 14:17:58 +0200 Subject: [PATCH 14/14] fix(rules): issue #656 --- packages/browser-extension/src/rules.json | 79 +++++++++++++++++++++-- 1 file changed, 73 insertions(+), 6 deletions(-) diff --git a/packages/browser-extension/src/rules.json b/packages/browser-extension/src/rules.json index 4493426..008c8eb 100644 --- a/packages/browser-extension/src/rules.json +++ b/packages/browser-extension/src/rules.json @@ -6,7 +6,15 @@ "type": "block" }, "condition": { - "resourceTypes": ["script"], + "resourceTypes": [ + "font", + "image", + "media", + "object", + "script", + "stylesheet", + "xmlhttprequest" + ], "urlFilter": "||app.usercentrics.eu^" } }, @@ -17,7 +25,15 @@ "type": "block" }, "condition": { - "resourceTypes": ["script"], + "resourceTypes": [ + "font", + "image", + "media", + "object", + "script", + "stylesheet", + "xmlhttprequest" + ], "urlFilter": "||c.evidon.com^" } }, @@ -28,7 +44,15 @@ "type": "block" }, "condition": { - "resourceTypes": ["script"], + "resourceTypes": [ + "font", + "image", + "media", + "object", + "script", + "stylesheet", + "xmlhttprequest" + ], "urlFilter": "||cdn.cookielaw.org^" } }, @@ -39,7 +63,15 @@ "type": "block" }, "condition": { - "resourceTypes": ["script"], + "resourceTypes": [ + "font", + "image", + "media", + "object", + "script", + "stylesheet", + "xmlhttprequest" + ], "urlFilter": "||cmp.inmobi.com^" } }, @@ -50,7 +82,15 @@ "type": "block" }, "condition": { - "resourceTypes": ["script"], + "resourceTypes": [ + "font", + "image", + "media", + "object", + "script", + "stylesheet", + "xmlhttprequest" + ], "urlFilter": "||consent.trustarc.com^" } }, @@ -61,7 +101,34 @@ "type": "block" }, "condition": { - "resourceTypes": ["script"], + "resourceTypes": [ + "font", + "image", + "media", + "object", + "script", + "stylesheet", + "xmlhttprequest" + ], + "urlFilter": "||optanon.blob.core.windows.net^" + } + }, + { + "id": 7, + "priority": 1, + "action": { + "type": "block" + }, + "condition": { + "resourceTypes": [ + "font", + "image", + "media", + "object", + "script", + "stylesheet", + "xmlhttprequest" + ], "urlFilter": "||wcpstatic.microsoft.com^" } }