Index: third_party/WebKit/Source/core/loader/modulescript/ModuleTreeLinkerRegistry.h |
diff --git a/third_party/WebKit/Source/core/loader/modulescript/ModuleTreeLinkerRegistry.h b/third_party/WebKit/Source/core/loader/modulescript/ModuleTreeLinkerRegistry.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..509b7e6d4742d4b47ad6054a4fe66cce61a9136e |
--- /dev/null |
+++ b/third_party/WebKit/Source/core/loader/modulescript/ModuleTreeLinkerRegistry.h |
@@ -0,0 +1,45 @@ |
+// Copyright 2017 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef ModuleTreeLinkerRegistry_h |
+#define ModuleTreeLinkerRegistry_h |
+ |
+#include "core/dom/AncestorList.h" |
+#include "platform/heap/Handle.h" |
+ |
+namespace blink { |
+ |
+class Modulator; |
+class ModuleScriptFetchRequest; |
+class ModuleTreeClient; |
+class ModuleTreeLinker; |
+enum class ModuleGraphLevel; |
+ |
+// ModuleTreeLinkerRegistry keeps active ModuleTreeLinkers alive. |
+class ModuleTreeLinkerRegistry |
+ : public GarbageCollected<ModuleTreeLinkerRegistry> { |
+ public: |
+ static ModuleTreeLinkerRegistry* create() { |
+ return new ModuleTreeLinkerRegistry; |
+ } |
+ DECLARE_TRACE(); |
+ |
+ ModuleTreeLinker* fetch(const ModuleScriptFetchRequest&, |
+ const AncestorList&, |
+ ModuleGraphLevel, |
+ Modulator*, |
+ ModuleTreeClient*); |
+ |
+ private: |
+ ModuleTreeLinkerRegistry() = default; |
+ |
+ friend class ModuleTreeLinker; |
+ void releaseFinishedFetcher(ModuleTreeLinker*); |
+ |
+ HeapHashSet<Member<ModuleTreeLinker>> m_activeTreeLinkers; |
+}; |
+ |
+} // namespace blink |
+ |
+#endif |