From 00f789ef6f86287bfb80df05315e1bea5fa84248 Mon Sep 17 00:00:00 2001 From: wanhose Date: Mon, 17 Apr 2023 19:21:31 +0200 Subject: [PATCH 1/2] refactor(browser-extension): restore animations --- .../src/scripts/background.js | 3 --- .../browser-extension/src/scripts/content.js | 26 +++++++++++++------ .../browser-extension/src/styles/content.css | 7 ----- 3 files changed, 18 insertions(+), 18 deletions(-) delete mode 100644 packages/browser-extension/src/styles/content.css diff --git a/packages/browser-extension/src/scripts/background.js b/packages/browser-extension/src/scripts/background.js index 9632219..595d54c 100644 --- a/packages/browser-extension/src/scripts/background.js +++ b/packages/browser-extension/src/scripts/background.js @@ -107,9 +107,6 @@ chrome.runtime.onMessage.addListener((message, sender, callback) => { case 'GET_TAB': chrome.tabs.query({ active: true, currentWindow: true }, (tabs) => callback(tabs[0])); return true; - case 'INSERT_CONTENT_CSS': - if (isPage && tabId) script.insertCSS({ files: ['styles/content.css'], target: { tabId } }); - break; case 'INSERT_DIALOG_CSS': if (isPage && tabId) script.insertCSS({ files: ['styles/dialog.css'], target: { tabId } }); break; diff --git a/packages/browser-extension/src/scripts/content.js b/packages/browser-extension/src/scripts/content.js index 4906e6c..de7601d 100644 --- a/packages/browser-extension/src/scripts/content.js +++ b/packages/browser-extension/src/scripts/content.js @@ -53,12 +53,22 @@ let state = { enabled: true }; */ const clean = (nodes, skipMatch) => { - const targets = nodes.filter((node) => match(node, skipMatch)); + for (let i = 0; i < nodes.length; i++) { + const node = nodes[i]; - targets.forEach((node) => { - node.remove(); - elementCount += 1; - }); + if (match(node, skipMatch)) { + const observer = new MutationObserver(() => { + node.style.setProperty('display', 'none', 'important'); + }); + + if (!node.hasAttribute('data-cookie-dialog-monster')) { + elementCount += 1; + node.setAttribute('data-cookie-dialog-monster', 'true'); + node.style.setProperty('display', 'none', 'important'); + observer.observe(node, { attributes: true, attributeFilter: ['style'] }); + } + } + } }; /** @@ -108,9 +118,11 @@ const match = (node, skipMatch) => { if (node instanceof HTMLElement) { const style = window.getComputedStyle(node); const skipIsInViewport = + (style.animationName !== 'none' && style.animationPlayState === 'running') || style.display === 'none' || style.height === '0px' || style.opacity === '0' || + style.transitionProperty !== 'none' || style.visibility === 'hidden'; return ( @@ -172,9 +184,7 @@ const fix = () => { } } - if (!skips.includes(hostname)) { - dispatch({ type: 'INSERT_CONTENT_CSS' }); - + if (!skips.some((skip) => skip.includes(hostname))) { for (const item of [document.body, document.documentElement]) { item?.classList.remove(...(data?.classes ?? [])); item?.style.setProperty('position', 'initial', 'important'); diff --git a/packages/browser-extension/src/styles/content.css b/packages/browser-extension/src/styles/content.css deleted file mode 100644 index c6820f6..0000000 --- a/packages/browser-extension/src/styles/content.css +++ /dev/null @@ -1,7 +0,0 @@ -*, -*:before, -*:after { - animation: none !important; - /* transform: none !important; */ - transition-property: none !important; -} From 2564ce84b9f30b498b36ef151d9937bf18bdcb44 Mon Sep 17 00:00:00 2001 From: wanhose Date: Mon, 17 Apr 2023 19:22:15 +0200 Subject: [PATCH 2/2] chore(browser-extension): update exclude_matches and upgrade version --- packages/browser-extension/src/manifest.json | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/packages/browser-extension/src/manifest.json b/packages/browser-extension/src/manifest.json index 98d67ba..c64794f 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": "6.2.3", + "version": "6.3.0", "default_locale": "en", "description": "__MSG_appDesc__", "icons": { @@ -21,11 +21,9 @@ { "all_frames": true, "exclude_matches": [ - "*://*.gfycat.com/*", - "*://*.mediathekviewweb.de/*", - "*://*.rundschau-online.de/*", - "*://*.youtube.com/embed/*", - "*://drive.google.com/*" + "*://*.googleapis.com/embed/*", + "*://*.sharepoint.com/*", + "*://*.youtube.com/embed/*" ], "js": ["scripts/content.js", "scripts/dialog.js"], "matches": ["http://*/*", "https://*/*"],