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:
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)) {