tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit c3f7c6c25567350ffc5612d448ef62b734fb01e2
parent 1e66975721ed69400e10318fdd119aac11f4c678
Author: jim <zijin@ualberta.ca>
Date:   Mon, 13 Oct 2025 13:01:01 +0000

Bug 1886894 - Skip originScope check when the site name is empty. r=robwu,dom-storage-reviewers,asuth

Differential Revision: https://phabricator.services.mozilla.com/D259184

Diffstat:
Mdom/storage/StorageObserver.cpp | 8+++++---
Mtoolkit/components/extensions/parent/ext-browsingData.js | 3---
Mtoolkit/components/extensions/test/mochitest/test_ext_browsingData_sessionStorage.html | 4++--
3 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/dom/storage/StorageObserver.cpp b/dom/storage/StorageObserver.cpp @@ -376,9 +376,11 @@ StorageObserver::Observe(nsISupports* aSubject, const char* aTopic, NS_ENSURE_SUCCESS(rv, rv); nsCString originScope; - rv = GetOriginScope(NS_ConvertUTF8toUTF16(schemelessSite).get(), - originScope); - NS_ENSURE_SUCCESS(rv, rv); + if (!schemelessSite.IsEmpty()) { + rv = GetOriginScope(NS_ConvertUTF8toUTF16(schemelessSite).get(), + originScope); + NS_ENSURE_SUCCESS(rv, rv); + } Notify(aTopic, patternJSON, originScope); } else if (aData) { diff --git a/toolkit/components/extensions/parent/ext-browsingData.js b/toolkit/components/extensions/parent/ext-browsingData.js @@ -216,10 +216,7 @@ const clearLocalStorage = async function (options) { Ci.nsIClearBySiteEntry ); - //TODO: currently, passing cookieStoreId with empty hostname is not supported because - // CreateReversedDomain will reject empty string. entry.schemelessSite = hostname || ""; - entry.patternJSON = cookieStoreId ? JSON.stringify( getOriginAttributesPatternForCookieStoreId(cookieStoreId) diff --git a/toolkit/components/extensions/test/mochitest/test_ext_browsingData_sessionStorage.html b/toolkit/components/extensions/test/mochitest/test_ext_browsingData_sessionStorage.html @@ -84,7 +84,7 @@ add_task(async function testLocalStorage() { if (SpecialPowers.Services.domStorageManager.nextGenLocalStorageEnabled) { await sendMessageToTabs(tabs, "resetSessionStorage"); await sendMessageToTabs(tabs, "checkSessionStorageSet"); - // TODO: passing only the cookieStoreId is not supported, it will not delete anything. + // Now passing only the cookieStoreId should clear all sessionStorage for that container await browser.browsingData.removeLocalStorage({ cookieStoreId: "firefox-container-1", }); @@ -93,7 +93,7 @@ add_task(async function testLocalStorage() { // TODO: containers support is lacking on GeckoView (Bug 1643740) if (!navigator.userAgent.includes("Android")) { - await browser.tabs.sendMessage(tabs["https://test1.example.org/"].id, "checkSessionStorageSet"); + await browser.tabs.sendMessage(tabs["https://test1.example.org/"].id, "checkSessionStorageCleared"); } await sendMessageToTabs(tabs, "resetSessionStorage");