| Index: sky/engine/core/app/AbstractModule.h
|
| diff --git a/sky/engine/core/app/AbstractModule.h b/sky/engine/core/app/AbstractModule.h
|
| index fc65261df2f8ae01a9f7faf56b481aeb4c6d5057..d9ece5a8cb93fff60328619650bc9729cf0e1e1b 100644
|
| --- a/sky/engine/core/app/AbstractModule.h
|
| +++ b/sky/engine/core/app/AbstractModule.h
|
| @@ -5,16 +5,20 @@
|
| #ifndef SKY_ENGINE_CORE_APP_ABSTRACT_MODULE_H_
|
| #define SKY_ENGINE_CORE_APP_ABSTRACT_MODULE_H_
|
|
|
| +#include "bindings/core/v8/ScriptPromiseResolver.h"
|
| +#include "core/app/ModuleLoader.h"
|
| #include "core/dom/ContextLifecycleObserver.h"
|
| #include "core/dom/Document.h"
|
| #include "core/events/EventTarget.h"
|
| #include "wtf/RefCounted.h"
|
|
|
| namespace blink {
|
| +class Application;
|
|
|
| class AbstractModule : public RefCounted<AbstractModule>,
|
| public EventTargetWithInlineData,
|
| - public ContextLifecycleObserver {
|
| + public ContextLifecycleObserver,
|
| + public ModuleLoader::Client {
|
| DEFINE_WRAPPERTYPEINFO();
|
| REFCOUNTED_EVENT_TARGET(AbstractModule);
|
| public:
|
| @@ -23,14 +27,22 @@ class AbstractModule : public RefCounted<AbstractModule>,
|
| Document* document() const { return document_.get(); }
|
| const String& url() const { return url_; }
|
|
|
| + ScriptPromise import(ScriptState*, const String& url);
|
| +
|
| protected:
|
| AbstractModule(ExecutionContext*, PassRefPtr<Document>, const String& url);
|
|
|
| + virtual Application* GetApplication() = 0;
|
| +
|
| private:
|
| ExecutionContext* executionContext() const override;
|
|
|
| + void OnModuleLoadComplete(ModuleLoader*, Module*) override;
|
| +
|
| RefPtr<Document> document_;
|
| String url_;
|
| +
|
| + HashMap<OwnPtr<ModuleLoader>, RefPtr<ScriptPromiseResolver>> loaders_;
|
| };
|
|
|
| } // namespace blink
|
|
|