From cd343ab8c3c86a7997e354f9b0da5dea41e29b45 Mon Sep 17 00:00:00 2001 From: Rafee Date: Tue, 23 Jul 2024 11:39:26 -0400 Subject: [PATCH 1/2] fix #2603: remember choice to always open in default containers --- src/js/background/assignManager.js | 5 +++++ src/js/confirm-page.js | 18 +++++++++++++++--- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/src/js/background/assignManager.js b/src/js/background/assignManager.js index 1226cba..c989046 100644 --- a/src/js/background/assignManager.js +++ b/src/js/background/assignManager.js @@ -165,6 +165,11 @@ window.assignManager = { _neverAsk(m) { const pageUrl = m.pageUrl; if (m.neverAsk === true) { + if (m.defaultContainer === true) { + this.storageArea.remove(pageUrl); + return; + } + // If we have existing data and for some reason it hasn't been // deleted etc lets update it this.storageArea.get(pageUrl).then((siteSettings) => { diff --git a/src/js/confirm-page.js b/src/js/confirm-page.js index bb153a3..1f2a4c4 100644 --- a/src/js/confirm-page.js +++ b/src/js/confirm-page.js @@ -9,12 +9,12 @@ async function load() { document.getElementById("deny").addEventListener("click", (e) => { e.preventDefault(); - denySubmit(redirectUrl); + denySubmit(redirectUrl, currentCookieStoreId); }); document.getElementById("deny-no-container").addEventListener("click", (e) => { e.preventDefault(); - denySubmit(redirectUrl); + denySubmit(redirectUrl, currentCookieStoreId); }); const container = await browser.contextualIdentities.get(cookieStoreId); @@ -72,8 +72,20 @@ function getCurrentTab() { }); } -async function denySubmit(redirectUrl) { +async function denySubmit(redirectUrl, currentCookieStoreId) { const tab = await getCurrentTab(); + const currentContainer = currentCookieStoreId ? await browser.contextualIdentities.get(currentCookieStoreId) : null; + const neverAsk = document.getElementById("never-ask").checked; + + if (neverAsk && !currentContainer) { + await browser.runtime.sendMessage({ + method: "neverAsk", + neverAsk: true, + defaultContainer: true, + pageUrl: redirectUrl + }); + } + await browser.runtime.sendMessage({ method: "exemptContainerAssignment", tabId: tab[0].id, From 6bde0a78d70355c85e5e0c9cf8c816f87744e5f1 Mon Sep 17 00:00:00 2001 From: Rafee Date: Fri, 23 Aug 2024 12:12:46 -0400 Subject: [PATCH 2/2] fix #2603: remember choice when choosing 'previous' (deny) container option --- src/js/background/assignManager.js | 1 + src/js/confirm-page.js | 11 ++++++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/js/background/assignManager.js b/src/js/background/assignManager.js index c989046..7dbee72 100644 --- a/src/js/background/assignManager.js +++ b/src/js/background/assignManager.js @@ -175,6 +175,7 @@ window.assignManager = { this.storageArea.get(pageUrl).then((siteSettings) => { if (siteSettings) { siteSettings.neverAsk = true; + siteSettings.userContextId = backgroundLogic.getUserContextIdFromCookieStoreId(m.cookieStoreId); this.storageArea.set(pageUrl, siteSettings); } }).catch((e) => { diff --git a/src/js/confirm-page.js b/src/js/confirm-page.js index 1f2a4c4..453e68f 100644 --- a/src/js/confirm-page.js +++ b/src/js/confirm-page.js @@ -7,11 +7,13 @@ async function load() { redirectUrlElement.textContent = redirectUrl; appendFavicon(redirectUrl, redirectUrlElement); + // Option for staying on the previous container document.getElementById("deny").addEventListener("click", (e) => { e.preventDefault(); denySubmit(redirectUrl, currentCookieStoreId); }); + // Option for going to the default container (no container) document.getElementById("deny-no-container").addEventListener("click", (e) => { e.preventDefault(); denySubmit(redirectUrl, currentCookieStoreId); @@ -27,6 +29,7 @@ async function load() { el.textContent = browser.i18n.getMessage(elementData.messageId, containerName); }); + // Option for going to newly selected container document.getElementById("confirm").addEventListener("click", (e) => { e.preventDefault(); confirmSubmit(redirectUrl, cookieStoreId); @@ -59,6 +62,7 @@ function confirmSubmit(redirectUrl, cookieStoreId) { browser.runtime.sendMessage({ method: "neverAsk", neverAsk: true, + cookieStoreId: cookieStoreId, pageUrl: redirectUrl }); } @@ -77,12 +81,13 @@ async function denySubmit(redirectUrl, currentCookieStoreId) { const currentContainer = currentCookieStoreId ? await browser.contextualIdentities.get(currentCookieStoreId) : null; const neverAsk = document.getElementById("never-ask").checked; - if (neverAsk && !currentContainer) { + if (neverAsk) { await browser.runtime.sendMessage({ method: "neverAsk", neverAsk: true, - defaultContainer: true, - pageUrl: redirectUrl + cookieStoreId: currentCookieStoreId, + pageUrl: redirectUrl, + defaultContainer: !currentContainer }); }