Bug 1759881 - Part 7: Add a virtual method to get the module loader to use for the current global r=yulia,smaug

This adds a virtual method to  nsIGlobalObject and implements it for
nsGlobalWindowInner and SandboxPrivate. This means we don't have to put the
logic for dealing with all the different kinds of globals in once place.

Differential Revision: https://phabricator.services.mozilla.com/D141733
This commit is contained in:
Jon Coppeard
2022-03-28 12:38:27 +00:00
parent 62e148a337
commit 293d8c4086
8 changed files with 61 additions and 32 deletions

View File

@@ -353,7 +353,7 @@ nsresult ModuleLoaderBase::HandleResolveFailure(
}
already_AddRefed<nsIURI> ModuleLoaderBase::ResolveModuleSpecifier(
ScriptLoaderInterface* aLoader, LoadedScript* aScript,
ModuleLoaderBase* aLoader, LoadedScript* aScript,
const nsAString& aSpecifier) {
// The following module specifiers are allowed by the spec:
// - a valid absolute URL
@@ -383,7 +383,7 @@ already_AddRefed<nsIURI> ModuleLoaderBase::ResolveModuleSpecifier(
if (aScript) {
baseURL = aScript->BaseURL();
} else {
baseURL = aLoader->GetBaseURI();
baseURL = aLoader->mLoader->GetBaseURI();
}
rv = NS_NewURI(getter_AddRefs(uri), aSpecifier, nullptr, baseURL);
@@ -432,7 +432,7 @@ nsresult ModuleLoaderBase::ResolveRequestedModules(
// and requested.
ModuleLoaderBase* requestModuleLoader = aRequest->mLoader;
nsCOMPtr<nsIURI> uri =
ResolveModuleSpecifier(requestModuleLoader->mLoader, ms, specifier);
ResolveModuleSpecifier(requestModuleLoader, ms, specifier);
if (!uri) {
uint32_t lineNumber = 0;
uint32_t columnNumber = 0;