Backed out 20 changesets (bug 1877792) for causing wpt failures at importscripts_mime_local.any.sharedworker.html CLOSED TREE

Backed out changeset 19d78d0b6ee4 (bug 1877792)
Backed out changeset 14f104e5ce51 (bug 1877792)
Backed out changeset 662eb52b2a6f (bug 1877792)
Backed out changeset 48dc4035a14f (bug 1877792)
Backed out changeset d98ecddf2f59 (bug 1877792)
Backed out changeset 1234a31ff88f (bug 1877792)
Backed out changeset a3b5b0cde6ce (bug 1877792)
Backed out changeset a1f494b9592a (bug 1877792)
Backed out changeset a4d7565218f3 (bug 1877792)
Backed out changeset fe179004423b (bug 1877792)
Backed out changeset 39a20aee3942 (bug 1877792)
Backed out changeset 95b20763e650 (bug 1877792)
Backed out changeset d763241fccaf (bug 1877792)
Backed out changeset 0674cf646120 (bug 1877792)
Backed out changeset bd23c96418b6 (bug 1877792)
Backed out changeset 5b1e29e4c597 (bug 1877792)
Backed out changeset 3cead4149e6b (bug 1877792)
Backed out changeset d73a9f57f03c (bug 1877792)
Backed out changeset 82a58a80f58a (bug 1877792)
Backed out changeset 4c7182604e4f (bug 1877792)
This commit is contained in:
Cristina Horotan
2024-08-22 19:23:15 +03:00
parent 33d03b48ec
commit a842adb0d9
47 changed files with 331 additions and 771 deletions

View File

@@ -109,58 +109,6 @@ class ScriptLoaderInterface : public nsISupports {
virtual void MaybeTriggerBytecodeEncoding() {}
};
class ModuleMapKey : public PLDHashEntryHdr {
public:
using KeyType = const ModuleMapKey&;
using KeyTypePointer = const ModuleMapKey*;
ModuleMapKey(const nsIURI* aUri, const ModuleType aModuleType)
: mUri(const_cast<nsIURI*>(aUri)), mModuleType(aModuleType) {
MOZ_COUNT_CTOR(ModuleMapKey);
MOZ_ASSERT(aUri);
}
explicit ModuleMapKey(KeyTypePointer aOther)
: mUri(std::move(aOther->mUri)), mModuleType(aOther->mModuleType) {
MOZ_COUNT_CTOR(ModuleMapKey);
MOZ_ASSERT(mUri);
}
ModuleMapKey(ModuleMapKey&& aOther)
: mUri(std::move(aOther.mUri)), mModuleType(aOther.mModuleType) {
MOZ_COUNT_CTOR(ModuleMapKey);
MOZ_ASSERT(mUri);
}
MOZ_COUNTED_DTOR(ModuleMapKey)
bool KeyEquals(KeyTypePointer aKey) const {
if (mModuleType != aKey->mModuleType) {
return false;
}
bool eq;
if (NS_SUCCEEDED(mUri->Equals(aKey->mUri, &eq))) {
return eq;
}
return false;
}
static KeyTypePointer KeyToPointer(KeyType key) { return &key; }
static PLDHashNumber HashKey(KeyTypePointer aKey) {
MOZ_ASSERT(aKey->mUri);
nsAutoCString spec;
// This is based on `nsURIHashKey`, and it ignores GetSpec() failures, so
// do the same here.
(void)aKey->mUri->GetSpec(spec);
return mozilla::HashGeneric(mozilla::HashString(spec), aKey->mModuleType);
}
enum { ALLOW_MEMMOVE = true };
const nsCOMPtr<nsIURI> mUri;
const ModuleType mModuleType;
};
/*
* [DOMDOC] Module Loading
*
@@ -240,8 +188,8 @@ class ModuleLoaderBase : public nsISupports {
};
// Module map
nsRefPtrHashtable<ModuleMapKey, LoadingRequest> mFetchingModules;
nsRefPtrHashtable<ModuleMapKey, ModuleScript> mFetchedModules;
nsRefPtrHashtable<nsURIHashKey, LoadingRequest> mFetchingModules;
nsRefPtrHashtable<nsURIHashKey, ModuleScript> mFetchedModules;
// List of dynamic imports that are currently being loaded.
ScriptLoadRequestList mDynamicImportRequests;
@@ -296,13 +244,12 @@ class ModuleLoaderBase : public nsISupports {
private:
// Create a module load request for a static module import.
virtual already_AddRefed<ModuleLoadRequest> CreateStaticImport(
nsIURI* aURI, JS::ModuleType aModuleType, ModuleLoadRequest* aParent) = 0;
nsIURI* aURI, ModuleLoadRequest* aParent) = 0;
// Called by HostImportModuleDynamically hook.
virtual already_AddRefed<ModuleLoadRequest> CreateDynamicImport(
JSContext* aCx, nsIURI* aURI, JS::ModuleType aModuleType,
LoadedScript* aMaybeActiveScript, JS::Handle<JSString*> aSpecifier,
JS::Handle<JSObject*> aPromise) = 0;
JSContext* aCx, nsIURI* aURI, LoadedScript* aMaybeActiveScript,
JS::Handle<JSString*> aSpecifier, JS::Handle<JSObject*> aPromise) = 0;
virtual bool IsDynamicImportSupported() { return true; }
@@ -393,8 +340,8 @@ class ModuleLoaderBase : public nsISupports {
// https://html.spec.whatwg.org/multipage/webappapis.html#disallow-further-import-maps
void DisallowImportMaps() { mImportMapsAllowed = false; }
// Returns true if the module for given module key is already fetched.
bool IsModuleFetched(const ModuleMapKey& key) const;
// Returns true if the module for given URL is already fetched.
bool IsModuleFetched(nsIURI* aURL) const;
nsresult GetFetchedModuleURLs(nsTArray<nsCString>& aURLs);
@@ -467,19 +414,18 @@ class ModuleLoaderBase : public nsISupports {
nsresult StartOrRestartModuleLoad(ModuleLoadRequest* aRequest,
RestartRequest aRestart);
bool ModuleMapContainsURL(const ModuleMapKey& key) const;
bool IsModuleFetching(const ModuleMapKey& key) const;
bool ModuleMapContainsURL(nsIURI* aURL) const;
bool IsModuleFetching(nsIURI* aURL) const;
void WaitForModuleFetch(ModuleLoadRequest* aRequest);
void SetModuleFetchStarted(ModuleLoadRequest* aRequest);
ModuleScript* GetFetchedModule(const ModuleMapKey& moduleMapKey) const;
ModuleScript* GetFetchedModule(nsIURI* aURL) const;
JS::Value FindFirstParseError(ModuleLoadRequest* aRequest);
static nsresult InitDebuggerDataForModuleGraph(JSContext* aCx,
ModuleLoadRequest* aRequest);
nsresult ResolveRequestedModules(
ModuleLoadRequest* aRequest,
nsTArray<ModuleMapKey>* aRequestedModulesOut);
nsresult ResolveRequestedModules(ModuleLoadRequest* aRequest,
nsCOMArray<nsIURI>* aUrlsOut);
void SetModuleFetchFinishedAndResumeWaitingRequests(
ModuleLoadRequest* aRequest, nsresult aResult);
@@ -489,7 +435,7 @@ class ModuleLoaderBase : public nsISupports {
void StartFetchingModuleDependencies(ModuleLoadRequest* aRequest);
void StartFetchingModuleAndDependencies(ModuleLoadRequest* aParent,
const ModuleMapKey& aRequestedModule);
nsIURI* aURI);
void InstantiateAndEvaluateDynamicImport(ModuleLoadRequest* aRequest);