diff --git a/src/js/background/assignManager.js b/src/js/background/assignManager.js index 1226cba4..7dbee723 100644 --- a/src/js/background/assignManager.js +++ b/src/js/background/assignManager.js @@ -165,11 +165,17 @@ 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) => { 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 bb153a31..453e68f5 100644 --- a/src/js/confirm-page.js +++ b/src/js/confirm-page.js @@ -7,14 +7,16 @@ 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); + denySubmit(redirectUrl, currentCookieStoreId); }); + // Option for going to the default container (no container) document.getElementById("deny-no-container").addEventListener("click", (e) => { e.preventDefault(); - denySubmit(redirectUrl); + denySubmit(redirectUrl, currentCookieStoreId); }); const container = await browser.contextualIdentities.get(cookieStoreId); @@ -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 }); } @@ -72,8 +76,21 @@ 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) { + await browser.runtime.sendMessage({ + method: "neverAsk", + neverAsk: true, + cookieStoreId: currentCookieStoreId, + pageUrl: redirectUrl, + defaultContainer: !currentContainer + }); + } + await browser.runtime.sendMessage({ method: "exemptContainerAssignment", tabId: tab[0].id,