From af6b67fc1dac7784409c3b21c1343bd1bda54cdd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Luba=C5=84ski?= Date: Fri, 23 Feb 2024 12:35:12 +0100 Subject: [PATCH] Simplify Never-Consent UI/UX --- .../app/content-scripts/autoconsent.js | 2 +- extension-manifest-v2/src/background.js | 4 - extension-manifest-v2/src/classes/ConfData.js | 1 - .../src/classes/PanelData.js | 4 - .../src/modules/autoconsent.js | 3 +- .../src/background/autoconsent.js | 4 +- .../src/pages/autoconsent/index.js | 10 +- extension-manifest-v3/src/store/options.js | 2 - .../src/modules/autoconsent/views/confirm.js | 40 +++--- .../ui/src/modules/autoconsent/views/home.js | 125 +++++++++--------- .../ui/src/modules/autoconsent/views/main.js | 5 +- 11 files changed, 90 insertions(+), 110 deletions(-) diff --git a/extension-manifest-v2/app/content-scripts/autoconsent.js b/extension-manifest-v2/app/content-scripts/autoconsent.js index 1a5a40aca..830c91b7d 100644 --- a/extension-manifest-v2/app/content-scripts/autoconsent.js +++ b/extension-manifest-v2/app/content-scripts/autoconsent.js @@ -24,7 +24,7 @@ if (document.contentType === 'text/html') { if (shownIframe) return false; showIframe(chrome.runtime.getURL( - `app/templates/autoconsent.html?host=${encodeURIComponent(msg.domain)}&default=${msg.defaultForAll ? 'all' : ''}` + `app/templates/autoconsent.html?host=${encodeURIComponent(msg.domain)}` )); shownIframe = true; diff --git a/extension-manifest-v2/src/background.js b/extension-manifest-v2/src/background.js index 5e348503f..3cd7aa0d7 100644 --- a/extension-manifest-v2/src/background.js +++ b/extension-manifest-v2/src/background.js @@ -573,11 +573,9 @@ function onMessageHandler(request, sender, callback) { if (message.url) { conf.autoconsent_whitelist = (conf.autoconsent_whitelist || []).concat(message.url); conf.autoconsent_blacklist = conf.autoconsent_blacklist || []; - conf.autoconsent_interactions += 1; } else { conf.autoconsent_whitelist = false; conf.autoconsent_blacklist = false; - conf.autoconsent_interactions = 0; } account.saveUserSettings().catch(err => log('Background autoconsent', err)); @@ -588,12 +586,10 @@ function onMessageHandler(request, sender, callback) { if (message.url) { conf.autoconsent_whitelist = conf.autoconsent_whitelist || []; conf.autoconsent_blacklist = (conf.autoconsent_blacklist || []).concat(message.url); - conf.autoconsent_interactions += 1; } else { conf.enable_autoconsent = false; conf.autoconsent_whitelist = []; conf.autoconsent_blacklist = []; - conf.autoconsent_interactions = 0; } account.saveUserSettings().catch(err => log('Background autoconsent', err)); diff --git a/extension-manifest-v2/src/classes/ConfData.js b/extension-manifest-v2/src/classes/ConfData.js index 1b7c504aa..6a7a8029d 100644 --- a/extension-manifest-v2/src/classes/ConfData.js +++ b/extension-manifest-v2/src/classes/ConfData.js @@ -136,7 +136,6 @@ class ConfData { _initProperty('account', null); _initProperty('autoconsent_whitelist', []); _initProperty('autoconsent_blacklist', []); - _initProperty('autoconsent_interactions', 0); _initProperty('bugs', {}); _initProperty('click2play', {}); _initProperty('cmp_data', []); diff --git a/extension-manifest-v2/src/classes/PanelData.js b/extension-manifest-v2/src/classes/PanelData.js index 72d265aee..dadf6d5fe 100644 --- a/extension-manifest-v2/src/classes/PanelData.js +++ b/extension-manifest-v2/src/classes/PanelData.js @@ -604,10 +604,6 @@ class PanelData { syncSetDataChanged = true; } - if (data.hasOwnProperty('enable_autoconsent')) { - conf.autoconsent_interactions = 0; - } - if (syncSetDataChanged) { // TODO: skip it if the user is not logged in (to avoid errors in the debug logs) account.saveUserSettings().catch((err) => { diff --git a/extension-manifest-v2/src/modules/autoconsent.js b/extension-manifest-v2/src/modules/autoconsent.js index db694d70c..861d31546 100644 --- a/extension-manifest-v2/src/modules/autoconsent.js +++ b/extension-manifest-v2/src/modules/autoconsent.js @@ -89,7 +89,7 @@ async function evalCode(code, id, tabId, frameId) { } async function openIframe(msg, tabId) { - const { autoconsent_whitelist, autoconsent_interactions } = conf; + const { autoconsent_whitelist } = conf; if (!autoconsent_whitelist) return; const domain = await getTabDomain(tabId); @@ -104,7 +104,6 @@ async function openIframe(msg, tabId) { action: 'autoconsent', type: 'openIframe', domain, - defaultForAll: autoconsent_interactions >= 2, }, { frameId: 0 }, ); diff --git a/extension-manifest-v3/src/background/autoconsent.js b/extension-manifest-v3/src/background/autoconsent.js index ed77c9598..8440cce43 100644 --- a/extension-manifest-v3/src/background/autoconsent.js +++ b/extension-manifest-v3/src/background/autoconsent.js @@ -99,9 +99,7 @@ async function openIframe(msg, tabId) { sendShowIframeMessage( tabId, - `pages/autoconsent/index.html?host=${encodeURIComponent( - domain, - )}&default=${autoconsent.interactions >= 2 ? 'all' : ''}`, + `pages/autoconsent/index.html?host=${encodeURIComponent(domain)}`, ); } } diff --git a/extension-manifest-v3/src/pages/autoconsent/index.js b/extension-manifest-v3/src/pages/autoconsent/index.js index f368790c1..2b0f6c233 100644 --- a/extension-manifest-v3/src/pages/autoconsent/index.js +++ b/extension-manifest-v3/src/pages/autoconsent/index.js @@ -24,13 +24,12 @@ async function enable(_, event) { const options = await store.resolve(Options); const { all } = event.detail; - let { allowed, disallowed, interactions } = options.autoconsent; + let { allowed, disallowed } = options.autoconsent; if (all) { allowed = []; disallowed = []; } else { - interactions += 1; allowed = allowed.includes(hostname) ? allowed : allowed.concat(hostname); disallowed = disallowed.filter((h) => h !== hostname); } @@ -41,7 +40,6 @@ async function enable(_, event) { all, allowed, disallowed, - interactions, }, }); } @@ -54,14 +52,12 @@ async function disable(_, event) { const options = await store.resolve(Options); const { all } = event.detail; - let { disallowed, allowed, interactions } = options.autoconsent; + let { disallowed, allowed } = options.autoconsent; if (all) { disallowed = []; allowed = []; - interactions = 0; } else { - interactions += 1; disallowed = disallowed.includes(hostname) ? disallowed : disallowed.concat(hostname); @@ -69,7 +65,7 @@ async function disable(_, event) { store.set(Options, { blockAnnoyances: !all, - autoconsent: { allowed, disallowed, interactions }, + autoconsent: { allowed, disallowed }, }); } diff --git a/extension-manifest-v3/src/store/options.js b/extension-manifest-v3/src/store/options.js index 0fcb22694..8d387798e 100644 --- a/extension-manifest-v3/src/store/options.js +++ b/extension-manifest-v3/src/store/options.js @@ -48,7 +48,6 @@ const Options = { all: false, allowed: [String], disallowed: [String], - interactions: 0, }, // Browser icon @@ -247,7 +246,6 @@ async function migrateFromMV2() { all: !storage.autoconsent_whitelist, allowed: storage.autoconsent_whitelist || [], disallowed: storage.autoconsent_blacklist || [], - interactions: storage.autoconsent_interactions || 0, }; options.paused = storage.site_whitelist.map((domain) => ({ diff --git a/packages/ui/src/modules/autoconsent/views/confirm.js b/packages/ui/src/modules/autoconsent/views/confirm.js index a488b16dc..1c9bf85e3 100644 --- a/packages/ui/src/modules/autoconsent/views/confirm.js +++ b/packages/ui/src/modules/autoconsent/views/confirm.js @@ -9,7 +9,7 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0 */ -import { html, msg, router, dispatch } from 'hybrids'; +import { html, msg, dispatch } from 'hybrids'; function closeIframe(host) { dispatch(host, 'closeiframe', { @@ -21,25 +21,25 @@ function closeIframe(host) { export default { enabled: false, content: ({ enabled }) => html` -