summaryrefslogtreecommitdiffstats
path: root/dom/script/ModuleLoadRequest.cpp
diff options
context:
space:
mode:
authorMoonchild <moonchild@palemoon.org>2020-08-06 13:49:06 +0200
committerGitHub <noreply@github.com>2020-08-06 13:49:06 +0200
commit1c342a57ee39df04da71d62b80e245810c32fb42 (patch)
treeb707f289d60e74b398c362e671708e5248667d2b /dom/script/ModuleLoadRequest.cpp
parent501b29a5df925f2de3c0a1343290982e5ff6f829 (diff)
parent15a7be79bd1396df9d19e15fd072bb825b0d9313 (diff)
downloadUXP-1c342a57ee39df04da71d62b80e245810c32fb42.tar
UXP-1c342a57ee39df04da71d62b80e245810c32fb42.tar.gz
UXP-1c342a57ee39df04da71d62b80e245810c32fb42.tar.lz
UXP-1c342a57ee39df04da71d62b80e245810c32fb42.tar.xz
UXP-1c342a57ee39df04da71d62b80e245810c32fb42.zip
Merge pull request #1627 from g4jc/618
Keep track of which modules in a graph have been fetched
Diffstat (limited to 'dom/script/ModuleLoadRequest.cpp')
-rw-r--r--dom/script/ModuleLoadRequest.cpp33
1 files changed, 27 insertions, 6 deletions
diff --git a/dom/script/ModuleLoadRequest.cpp b/dom/script/ModuleLoadRequest.cpp
index a12fcb162..a75a922e2 100644
--- a/dom/script/ModuleLoadRequest.cpp
+++ b/dom/script/ModuleLoadRequest.cpp
@@ -17,26 +17,48 @@ NS_INTERFACE_MAP_END_INHERITING(ScriptLoadRequest)
NS_IMPL_CYCLE_COLLECTION_INHERITED(ModuleLoadRequest, ScriptLoadRequest,
mBaseURL,
mLoader,
- mParent,
mModuleScript,
mImports)
NS_IMPL_ADDREF_INHERITED(ModuleLoadRequest, ScriptLoadRequest)
NS_IMPL_RELEASE_INHERITED(ModuleLoadRequest, ScriptLoadRequest)
-ModuleLoadRequest::ModuleLoadRequest(nsIScriptElement* aElement,
+ModuleLoadRequest::ModuleLoadRequest(nsIURI* aURI,
+ nsIScriptElement* aElement,
uint32_t aVersion,
CORSMode aCORSMode,
const SRIMetadata &aIntegrity,
ScriptLoader* aLoader)
: ScriptLoadRequest(ScriptKind::Module,
+ aURI,
aElement,
aVersion,
aCORSMode,
aIntegrity),
mIsTopLevel(true),
- mLoader(aLoader)
-{}
+ mLoader(aLoader),
+ mVisitedSet(new VisitedURLSet())
+{
+ mVisitedSet->PutEntry(aURI);
+}
+
+ModuleLoadRequest::ModuleLoadRequest(nsIURI* aURI,
+ ModuleLoadRequest* aParent)
+ : ScriptLoadRequest(ScriptKind::Module,
+ aURI,
+ aParent->mElement,
+ aParent->mJSVersion,
+ aParent->mCORSMode,
+ aParent->mIntegrity),
+ mIsTopLevel(false),
+ mLoader(aParent->mLoader),
+ mVisitedSet(aParent->mVisitedSet)
+{
+ MOZ_ASSERT(mVisitedSet->Contains(aURI));
+
+ mIsInline = false;
+ mReferrerPolicy = aParent->mReferrerPolicy;
+}
void ModuleLoadRequest::Cancel()
{
@@ -132,8 +154,7 @@ ModuleLoadRequest::LoadFinished()
{
mLoader->ProcessLoadedModuleTree(this);
mLoader = nullptr;
- mParent = nullptr;
}
} // dom namespace
-} // mozilla namespace \ No newline at end of file
+} // mozilla namespace