tor-browser

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

commit fe52c48fe7dde48f53f9bf999f8f2171f6d2aa14
parent 9cd82d3aa1c438b4dd19e21b901275580119a5b9
Author: Tooru Fujisawa <arai_a@mac.com>
Date:   Wed, 22 Oct 2025 11:17:17 +0000

Bug 1991607 - Part 9: Pass URI to LoadedScript ctor from ScriptLoadRequest ctor callsites. r=bthrall,dom-worker-reviewers,edenchuang

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

Diffstat:
Mdom/script/ModuleLoader.cpp | 4++--
Mdom/script/ScriptLoader.cpp | 12++++++------
Mdom/script/ScriptLoader.h | 4++--
Mdom/workers/ScriptLoader.cpp | 2+-
Mdom/workers/loader/WorkerModuleLoader.cpp | 2+-
Mdom/worklet/WorkletFetchHandler.cpp | 2+-
Mdom/worklet/loader/WorkletModuleLoader.cpp | 2+-
Mjs/loader/ScriptLoadRequest.cpp | 2+-
Mjs/loader/ScriptLoadRequest.h | 2+-
Mjs/xpconnect/loader/SyncModuleLoader.cpp | 2+-
Mjs/xpconnect/loader/mozJSModuleLoader.cpp | 2+-
11 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/dom/script/ModuleLoader.cpp b/dom/script/ModuleLoader.cpp @@ -454,7 +454,7 @@ already_AddRefed<ModuleLoadRequest> ModuleLoader::CreateTopLevel( aURI, JS::ModuleType::JavaScript, aIntegrity, aReferrer, aContext, ModuleLoadRequest::Kind::TopLevel, this, nullptr); - GetScriptLoader()->TryUseCache(aReferrerPolicy, aFetchOptions, request, + GetScriptLoader()->TryUseCache(aReferrerPolicy, aFetchOptions, aURI, request, aElement, aFetchOptions->mNonce, aRequestType); return request.forget(); @@ -486,7 +486,7 @@ already_AddRefed<ModuleLoadRequest> ModuleLoader::CreateRequest( RefPtr<ModuleLoadRequest> request = new ModuleLoadRequest( aURI, moduleType, aSriMetadata, aBaseURL, context, kind, this, root); - GetScriptLoader()->TryUseCache(aReferrerPolicy, aOptions, request); + GetScriptLoader()->TryUseCache(aReferrerPolicy, aOptions, aURI, request); return request.forget(); } diff --git a/dom/script/ScriptLoader.cpp b/dom/script/ScriptLoader.cpp @@ -1144,20 +1144,20 @@ already_AddRefed<ScriptLoadRequest> ScriptLoader::CreateLoadRequest( RefPtr<ScriptLoadRequest> request = new ScriptLoadRequest(aKind, aURI, aIntegrity, referrer, context); - TryUseCache(aReferrerPolicy, fetchOptions, request, aElement, aNonce, + TryUseCache(aReferrerPolicy, fetchOptions, aURI, request, aElement, aNonce, aRequestType); return request.forget(); } void ScriptLoader::TryUseCache(ReferrerPolicy aReferrerPolicy, - ScriptFetchOptions* aFetchOptions, + ScriptFetchOptions* aFetchOptions, nsIURI* aURI, ScriptLoadRequest* aRequest, nsIScriptElement* aElement, const nsAString& aNonce, ScriptLoadRequestType aRequestType) { if (aRequestType == ScriptLoadRequestType::Inline) { - aRequest->NoCacheEntryFound(aReferrerPolicy, aFetchOptions); + aRequest->NoCacheEntryFound(aReferrerPolicy, aFetchOptions, aURI); LOG( ("ScriptLoader (%p): Created LoadedScript (%p) for " "ScriptLoadRequest(%p) %s.", @@ -1167,7 +1167,7 @@ void ScriptLoader::TryUseCache(ReferrerPolicy aReferrerPolicy, } if (!mCache) { - aRequest->NoCacheEntryFound(aReferrerPolicy, aFetchOptions); + aRequest->NoCacheEntryFound(aReferrerPolicy, aFetchOptions, aURI); LOG( ("ScriptLoader (%p): Created LoadedScript (%p) for " "ScriptLoadRequest(%p) %s.", @@ -1184,7 +1184,7 @@ void ScriptLoader::TryUseCache(ReferrerPolicy aReferrerPolicy, ScriptHashKey key(this, aRequest, aFetchOptions, aRequest->mURI); auto cacheResult = mCache->Lookup(*this, key, /* aSyncLoad = */ true); if (cacheResult.mState != CachedSubResourceState::Complete) { - aRequest->NoCacheEntryFound(aReferrerPolicy, aFetchOptions); + aRequest->NoCacheEntryFound(aReferrerPolicy, aFetchOptions, aURI); LOG( ("ScriptLoader (%p): Created LoadedScript (%p) for " "ScriptLoadRequest(%p) %s.", @@ -1198,7 +1198,7 @@ void ScriptLoader::TryUseCache(ReferrerPolicy aReferrerPolicy, // LookupPreloadRequest call. if (NS_FAILED(CheckContentPolicy(aElement, aNonce, aRequest, aFetchOptions, aRequest->mURI))) { - aRequest->NoCacheEntryFound(aReferrerPolicy, aFetchOptions); + aRequest->NoCacheEntryFound(aReferrerPolicy, aFetchOptions, aURI); LOG( ("ScriptLoader (%p): Created LoadedScript (%p) for " "ScriptLoadRequest(%p) %s.", diff --git a/dom/script/ScriptLoader.h b/dom/script/ScriptLoader.h @@ -488,8 +488,8 @@ class ScriptLoader final : public JS::loader::ScriptLoaderInterface { */ void TryUseCache( ReferrerPolicy aReferrerPolicy, ScriptFetchOptions* aFetchOptions, - ScriptLoadRequest* aRequest, nsIScriptElement* aElement = nullptr, - const nsAString& aNonce = u""_ns, + nsIURI* aURI, ScriptLoadRequest* aRequest, + nsIScriptElement* aElement = nullptr, const nsAString& aNonce = u""_ns, ScriptLoadRequestType aRequestType = ScriptLoadRequestType::External); /** diff --git a/dom/workers/ScriptLoader.cpp b/dom/workers/ScriptLoader.cpp @@ -735,7 +735,7 @@ already_AddRefed<ScriptLoadRequest> WorkerScriptLoader::CreateScriptLoadRequest( // Set the mURL, it will be used for error handling and debugging. request->mURL = NS_ConvertUTF16toUTF8(aScriptURL); - request->NoCacheEntryFound(referrerPolicy, fetchOptions); + request->NoCacheEntryFound(referrerPolicy, fetchOptions, uri); return request.forget(); } diff --git a/dom/workers/loader/WorkerModuleLoader.cpp b/dom/workers/loader/WorkerModuleLoader.cpp @@ -100,7 +100,7 @@ already_AddRefed<ModuleLoadRequest> WorkerModuleLoader::CreateRequest( aURI, moduleType, SRIMetadata(), aBaseURL, loadContext, kind, this, root); request->mURL = request->mURI->GetSpecOrDefault(); - request->NoCacheEntryFound(aReferrerPolicy, aOptions); + request->NoCacheEntryFound(aReferrerPolicy, aOptions, aURI); return request.forget(); } diff --git a/dom/worklet/WorkletFetchHandler.cpp b/dom/worklet/WorkletFetchHandler.cpp @@ -118,7 +118,7 @@ NS_IMETHODIMP StartModuleLoadRunnable::RunOnWorkletThread() { ModuleLoadRequest::Kind::TopLevel, moduleLoader, nullptr); request->mURL = request->mURI->GetSpecOrDefault(); - request->NoCacheEntryFound(ReferrerPolicy::_empty, fetchOptions); + request->NoCacheEntryFound(ReferrerPolicy::_empty, fetchOptions, mURI); return request->StartModuleLoad(); } diff --git a/dom/worklet/loader/WorkletModuleLoader.cpp b/dom/worklet/loader/WorkletModuleLoader.cpp @@ -83,7 +83,7 @@ already_AddRefed<ModuleLoadRequest> WorkletModuleLoader::CreateRequest( ModuleLoadRequest::Kind::StaticImport, this, root); request->mURL = request->mURI->GetSpecOrDefault(); - request->NoCacheEntryFound(aReferrerPolicy, aOptions); + request->NoCacheEntryFound(aReferrerPolicy, aOptions, aURI); return request.forget(); } diff --git a/js/loader/ScriptLoadRequest.cpp b/js/loader/ScriptLoadRequest.cpp @@ -218,7 +218,7 @@ void ScriptLoadRequest::CacheEntryFound(LoadedScript* aLoadedScript) { void ScriptLoadRequest::NoCacheEntryFound( mozilla::dom::ReferrerPolicy aReferrerPolicy, - ScriptFetchOptions* aFetchOptions) { + ScriptFetchOptions* aFetchOptions, nsIURI* aURI) { MOZ_ASSERT(IsCheckingCache()); MOZ_ASSERT(mURI); // At the time where we check in the cache, the mBaseURL is not set, as this diff --git a/js/loader/ScriptLoadRequest.h b/js/loader/ScriptLoadRequest.h @@ -172,7 +172,7 @@ class ScriptLoadRequest : public nsISupports, // a new LoadedScript which is matching the ScriptKind provided when // constructing this ScriptLoadRequest. void NoCacheEntryFound(mozilla::dom::ReferrerPolicy aReferrerPolicy, - ScriptFetchOptions* aFetchOptions); + ScriptFetchOptions* aFetchOptions, nsIURI* aURI); bool PassedConditionForDiskCache() const { return mDiskCachingPlan == CachingPlan::PassedCondition; diff --git a/js/xpconnect/loader/SyncModuleLoader.cpp b/js/xpconnect/loader/SyncModuleLoader.cpp @@ -83,7 +83,7 @@ already_AddRefed<ModuleLoadRequest> SyncModuleLoader::CreateRequest( RefPtr<ModuleLoadRequest> request = new ModuleLoadRequest(aURI, moduleType, dom::SRIMetadata(), aBaseURL, context, kind, this, root); - request->NoCacheEntryFound(aReferrerPolicy, aOptions); + request->NoCacheEntryFound(aReferrerPolicy, aOptions, aURI); return request.forget(); } diff --git a/js/xpconnect/loader/mozJSModuleLoader.cpp b/js/xpconnect/loader/mozJSModuleLoader.cpp @@ -1089,7 +1089,7 @@ nsresult mozJSModuleLoader::ImportESModule( /* aReferrer = */ nullptr, context, ModuleLoadRequest::Kind::TopLevel, mModuleLoader, nullptr); - request->NoCacheEntryFound(dom::ReferrerPolicy::No_referrer, options); + request->NoCacheEntryFound(dom::ReferrerPolicy::No_referrer, options, uri); rv = request->StartModuleLoad(); if (NS_FAILED(rv)) {