From a3715a461576691ae5d47fa5486b03a94b4a02ad Mon Sep 17 00:00:00 2001 From: wanhose Date: Sun, 8 Oct 2023 12:06:10 +0200 Subject: [PATCH 1/6] fix(browser-extension): issue #308 --- packages/browser-extension/src/scripts/content.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/browser-extension/src/scripts/content.js b/packages/browser-extension/src/scripts/content.js index e717af9..20ff299 100644 --- a/packages/browser-extension/src/scripts/content.js +++ b/packages/browser-extension/src/scripts/content.js @@ -144,7 +144,7 @@ function fix() { const backdrop = document.getElementsByClassName('modal-backdrop')[0]; const facebook = document.getElementsByClassName('_31e')[0]; const fixes = data?.fixes ?? []; - const skips = data?.skips ?? []; + const skips = (data?.skips ?? []).map((x) => (x.split('.').length < 3 ? `*${x}` : x)); if (backdrop?.children.length === 0) { backdrop.remove(); @@ -177,7 +177,7 @@ function fix() { } } - if (skips.indexOf(hostname) === -1) { + if (skips.some((x) => hostname.match(x.replace(/\*/g, '[^ ]*')))) { for (const element of [document.body, document.documentElement]) { element?.classList.remove(...(data?.classes ?? [])); element?.style.setProperty('position', 'initial', 'important'); From 9c4fa60f995e7411e8157f29c6499498ba40145c Mon Sep 17 00:00:00 2001 From: wanhose Date: Sun, 8 Oct 2023 12:06:27 +0200 Subject: [PATCH 2/6] chore(browser-extension): upgrade 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 fd8b09d..4a74400 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.4.1", + "version": "6.4.2", "default_locale": "en", "description": "__MSG_appDesc__", "icons": { From 2d3db78d5735a0135d19936b929b7ae2fee75991 Mon Sep 17 00:00:00 2001 From: wanhose Date: Sun, 8 Oct 2023 12:23:30 +0200 Subject: [PATCH 3/6] chore(browser-extension): add codesandbox.io to exclude_matches --- packages/browser-extension/src/manifest.json | 25 ++++++++++---------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/packages/browser-extension/src/manifest.json b/packages/browser-extension/src/manifest.json index 4a74400..3be4839 100644 --- a/packages/browser-extension/src/manifest.json +++ b/packages/browser-extension/src/manifest.json @@ -23,21 +23,22 @@ "all_frames": true, "exclude_matches": [ "*://*.googleapis.com/embed/*", + "*://*.codesandbox.io/*", "*://*.sharepoint.com/*", "*://*.youtube.com/embed/*", "*://*.youtube-nocookie.com/embed/*", - "https://translate.google.ca/*", - "https://translate.google.co.in/*", - "https://translate.google.co.jp/*", - "https://translate.google.co.uk/*", - "https://translate.google.com.au/*", - "https://translate.google.com.br/*", - "https://translate.google.com/*", - "https://translate.google.de/*", - "https://translate.google.es/*", - "https://translate.google.fr/*", - "https://translate.google.it/*", - "https://www.cookie-dialog-monster.com/*" + "*://translate.google.ca/*", + "*://translate.google.co.in/*", + "*://translate.google.co.jp/*", + "*://translate.google.co.uk/*", + "*://translate.google.com.au/*", + "*://translate.google.com.br/*", + "*://translate.google.com/*", + "*://translate.google.de/*", + "*://translate.google.es/*", + "*://translate.google.fr/*", + "*://translate.google.it/*", + "*://www.cookie-dialog-monster.com/*" ], "js": ["scripts/content.js", "scripts/dialog.js"], "matches": ["http://*/*", "https://*/*"], From 25b976d10c94f6c980879bc4ade9ae71c1495891 Mon Sep 17 00:00:00 2001 From: wanhose Date: Sun, 8 Oct 2023 12:24:05 +0200 Subject: [PATCH 4/6] fix(browser-extension): late force clean ends in undefined if no data --- 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 20ff299..cd3ad31 100644 --- a/packages/browser-extension/src/scripts/content.js +++ b/packages/browser-extension/src/scripts/content.js @@ -245,7 +245,7 @@ const observer = new MutationObserver((mutations) => { window.addEventListener('focus', async () => { if (!data) { await runSetup(true); - forceClean(document.body); + clean([...document.body.children]); } }); From baabbd90391e2b0539dcb324d7c7b656c4855120 Mon Sep 17 00:00:00 2001 From: wanhose Date: Wed, 11 Oct 2023 08:50:02 +0200 Subject: [PATCH 5/6] feat(browser-extension): prompt to set name to the exported file --- packages/browser-extension/src/scripts/options.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/browser-extension/src/scripts/options.js b/packages/browser-extension/src/scripts/options.js index 9419877..707cdc6 100644 --- a/packages/browser-extension/src/scripts/options.js +++ b/packages/browser-extension/src/scripts/options.js @@ -119,15 +119,17 @@ async function handleDeleteClick(event) { function handleExportClick() { const anchor = document.createElement('a'); const now = new Date(); - const day = now.getUTCDay().toString().padStart(2, '0'); - const month = now.getUTCMonth().toString().padStart(2, '0'); + const day = now.getDate().toString().padStart(2, '0'); + const month = now.getMonth().toString().padStart(2, '0'); const year = now.getUTCFullYear(); const text = exclusionList.join('\n'); + const defaultTitle = `${year}${month}${day}`; + const customTitle = window.prompt('Enter a file name', defaultTitle); const blob = new Blob([text], { type: 'octet/stream' }); const url = window.URL.createObjectURL(blob); anchor.href = url; - anchor.download = `${year}${month}${day}.cdm`; + anchor.download = `${customTitle || defaultTitle}.cdm`; anchor.click(); window.URL.revokeObjectURL(url); } From 655f5f85e1ae31caff2067da29a06caa2e44f658 Mon Sep 17 00:00:00 2001 From: wanhose Date: Wed, 11 Oct 2023 09:04:40 +0200 Subject: [PATCH 6/6] feat(browser-extension): add open settings option the context menu --- .../src/_locales/de/messages.json | 5 ++- .../src/_locales/en/messages.json | 5 ++- .../src/_locales/es/messages.json | 5 ++- .../src/_locales/fr/messages.json | 5 ++- .../src/_locales/it/messages.json | 5 ++- .../src/_locales/pt_BR/messages.json | 5 ++- .../src/_locales/pt_PT/messages.json | 5 ++- .../src/_locales/ro/messages.json | 5 ++- .../src/_locales/ru/messages.json | 5 ++- .../src/scripts/background.js | 33 ++++++++++++++++++- 10 files changed, 68 insertions(+), 10 deletions(-) diff --git a/packages/browser-extension/src/_locales/de/messages.json b/packages/browser-extension/src/_locales/de/messages.json index 0eb6fa4..dd4b140 100644 --- a/packages/browser-extension/src/_locales/de/messages.json +++ b/packages/browser-extension/src/_locales/de/messages.json @@ -3,7 +3,10 @@ "message": "Hat jemand Dialoge zur Cookie-Zustimmung gesagt? 😋" }, "contextMenu_reportOption": { - "message": "Webseite melden..." + "message": "Diese Website melden" + }, + "contextMenu_settingsOption": { + "message": "Ausnahmeliste verwalten" }, "options_clearButton": { "message": "Liste leeren" diff --git a/packages/browser-extension/src/_locales/en/messages.json b/packages/browser-extension/src/_locales/en/messages.json index b9082e4..e92f463 100644 --- a/packages/browser-extension/src/_locales/en/messages.json +++ b/packages/browser-extension/src/_locales/en/messages.json @@ -3,7 +3,10 @@ "message": "Did someone say cookie consent dialogs? 😋" }, "contextMenu_reportOption": { - "message": "Report site..." + "message": "Report this website" + }, + "contextMenu_settingsOption": { + "message": "Manage exclusion list" }, "options_clearButton": { "message": "Clear list" diff --git a/packages/browser-extension/src/_locales/es/messages.json b/packages/browser-extension/src/_locales/es/messages.json index b06a079..71fcfcd 100644 --- a/packages/browser-extension/src/_locales/es/messages.json +++ b/packages/browser-extension/src/_locales/es/messages.json @@ -3,7 +3,10 @@ "message": "¿Alguien dijo diálogos de consentimiento de cookies? 😋" }, "contextMenu_reportOption": { - "message": "Reportar sitio..." + "message": "Reportar este sitio web" + }, + "contextMenu_settingsOption": { + "message": "Gestionar lista de exclusión" }, "options_clearButton": { "message": "Borrar lista" diff --git a/packages/browser-extension/src/_locales/fr/messages.json b/packages/browser-extension/src/_locales/fr/messages.json index d7fc993..61193e3 100644 --- a/packages/browser-extension/src/_locales/fr/messages.json +++ b/packages/browser-extension/src/_locales/fr/messages.json @@ -3,7 +3,10 @@ "message": "Quelqu'un a-t-il dit boîtes de dialogue de consentement aux cookies? 😋" }, "contextMenu_reportOption": { - "message": "Signaler le site..." + "message": "Signaler ce site web" + }, + "contextMenu_settingsOption": { + "message": "Gérer la liste d'exclusion" }, "options_clearButton": { "message": "Effacer la liste" diff --git a/packages/browser-extension/src/_locales/it/messages.json b/packages/browser-extension/src/_locales/it/messages.json index c1534a1..8ff36e4 100644 --- a/packages/browser-extension/src/_locales/it/messages.json +++ b/packages/browser-extension/src/_locales/it/messages.json @@ -3,7 +3,10 @@ "message": "Qualcuno ha detto finestre di dialogo per il consenso ai cookie? 😋" }, "contextMenu_reportOption": { - "message": "Segnala sito..." + "message": "Segnala questo sito web" + }, + "contextMenu_settingsOption": { + "message": "Gestisci elenco di esclusione" }, "options_clearButton": { "message": "Cancella elenco" diff --git a/packages/browser-extension/src/_locales/pt_BR/messages.json b/packages/browser-extension/src/_locales/pt_BR/messages.json index eb19af5..f84475f 100644 --- a/packages/browser-extension/src/_locales/pt_BR/messages.json +++ b/packages/browser-extension/src/_locales/pt_BR/messages.json @@ -3,7 +3,10 @@ "message": "Alguém disse diálogos de consentimento de cookies? 😋" }, "contextMenu_reportOption": { - "message": "Reportar site..." + "message": "Denunciar este site" + }, + "contextMenu_settingsOption": { + "message": "Gerenciar lista de exclusão" }, "options_clearButton": { "message": "Limpar lista" diff --git a/packages/browser-extension/src/_locales/pt_PT/messages.json b/packages/browser-extension/src/_locales/pt_PT/messages.json index eb19af5..f84475f 100644 --- a/packages/browser-extension/src/_locales/pt_PT/messages.json +++ b/packages/browser-extension/src/_locales/pt_PT/messages.json @@ -3,7 +3,10 @@ "message": "Alguém disse diálogos de consentimento de cookies? 😋" }, "contextMenu_reportOption": { - "message": "Reportar site..." + "message": "Denunciar este site" + }, + "contextMenu_settingsOption": { + "message": "Gerenciar lista de exclusão" }, "options_clearButton": { "message": "Limpar lista" diff --git a/packages/browser-extension/src/_locales/ro/messages.json b/packages/browser-extension/src/_locales/ro/messages.json index deeeafa..2eca065 100644 --- a/packages/browser-extension/src/_locales/ro/messages.json +++ b/packages/browser-extension/src/_locales/ro/messages.json @@ -3,7 +3,10 @@ "message": "A spus cineva dialoguri de consimțământ pentru cookie? 😋" }, "contextMenu_reportOption": { - "message": "Raportați site-ul..." + "message": "Raportați acest site web" + }, + "contextMenu_settingsOption": { + "message": "Gestionați lista de excludere" }, "options_clearButton": { "message": "Ștergeți lista" diff --git a/packages/browser-extension/src/_locales/ru/messages.json b/packages/browser-extension/src/_locales/ru/messages.json index b12a04a..bdb6e1c 100644 --- a/packages/browser-extension/src/_locales/ru/messages.json +++ b/packages/browser-extension/src/_locales/ru/messages.json @@ -3,7 +3,10 @@ "message": "Кто-то сказал диалоги согласия на использование файлов cookie? 😋" }, "contextMenu_reportOption": { - "message": "Сообщить о сайте..." + "message": "Сообщить об этом веб-сайте" + }, + "contextMenu_settingsOption": { + "message": "Управление списком исключений" }, "options_clearButton": { "message": "Очистить список" diff --git a/packages/browser-extension/src/scripts/background.js b/packages/browser-extension/src/scripts/background.js index 54ce3a2..4080097 100644 --- a/packages/browser-extension/src/scripts/background.js +++ b/packages/browser-extension/src/scripts/background.js @@ -10,7 +10,21 @@ const apiUrl = 'https://api.cookie-dialog-monster.com/rest/v2'; * @type {string} */ -const reportMenuItemId = 'REPORT'; +const extensionMenuItemId = 'CDM-MENU'; + +/** + * @description Context menu identifier + * @type {string} + */ + +const reportMenuItemId = 'CDM-REPORT'; + +/** + * @description Context menu identifier + * @type {string} + */ + +const settingsMenuItemId = 'CDM-SETTINGS'; /** * @description A shortcut for chrome.scripting @@ -67,6 +81,9 @@ chrome.contextMenus.onClicked.addListener((info, tab) => { case reportMenuItemId: if (tab) chrome.tabs.sendMessage(tab.id, { type: 'SHOW_REPORT_DIALOG' }); break; + case settingsMenuItemId: + chrome.runtime.openOptionsPage(); + break; default: break; } @@ -153,10 +170,24 @@ chrome.runtime.onMessage.addListener((message, sender, callback) => { */ chrome.runtime.onInstalled.addListener(() => { + chrome.contextMenus.create({ + contexts: ['all'], + documentUrlPatterns: chrome.runtime.getManifest().content_scripts[0].matches, + id: extensionMenuItemId, + title: 'Cookie Dialog Monster', + }); + chrome.contextMenus.create({ + contexts: ['all'], + documentUrlPatterns: chrome.runtime.getManifest().content_scripts[0].matches, + id: settingsMenuItemId, + parentId: extensionMenuItemId, + title: chrome.i18n.getMessage('contextMenu_settingsOption'), + }); chrome.contextMenus.create({ contexts: ['all'], documentUrlPatterns: chrome.runtime.getManifest().content_scripts[0].matches, id: reportMenuItemId, + parentId: extensionMenuItemId, title: chrome.i18n.getMessage('contextMenu_reportOption'), }); });