Bug 1436400 - Part 9: Support restarting module load request. r=jonco

After enabling bytecode cache for module script, we need to handle
the SRI mismatch on bytecode cache, that requires reloading the script source
again.

Differential Revision: https://phabricator.services.mozilla.com/D140551
This commit is contained in:
Tooru Fujisawa
2022-03-15 04:24:52 +00:00
parent 19684deae9
commit f7cf7c27a9
5 changed files with 43 additions and 3 deletions

View File

@@ -111,6 +111,7 @@ class ModuleLoaderBase : public nsISupports {
MOZ_ASSERT(false, "You must override EnsureModuleHooksInitialized");
}
virtual nsresult StartModuleLoad(ScriptLoadRequest* aRequest) = 0;
virtual nsresult RestartModuleLoad(ScriptLoadRequest* aRequest) = 0;
virtual void ProcessLoadedModuleTree(ModuleLoadRequest* aRequest) = 0;
virtual nsresult CompileOrFinishModuleScript(
JSContext* aCx, JS::Handle<JSObject*> aGlobal,
@@ -133,6 +134,7 @@ class ModuleLoaderBase : public nsISupports {
ModuleLoadRequest* aRequest, nsresult aResult);
bool ModuleMapContainsURL(nsIURI* aURL, nsIGlobalObject* aGlobal) const;
bool IsModuleFetching(nsIURI* aURL, nsIGlobalObject* aGlobal) const;
RefPtr<GenericNonExclusivePromise> WaitForModuleFetch(
nsIURI* aURL, nsIGlobalObject* aGlobal);
ModuleScript* GetFetchedModule(nsIURI* aURL, nsIGlobalObject* aGlobal) const;