| Index: Source/core/html/HTMLImportsController.h
|
| diff --git a/Source/core/html/HTMLImportsController.h b/Source/core/html/HTMLImportsController.h
|
| index d90b10d003368db17689c0e022ead6952836bff1..28765f10d26ac4f3800d0663eb74de74355207be 100644
|
| --- a/Source/core/html/HTMLImportsController.h
|
| +++ b/Source/core/html/HTMLImportsController.h
|
| @@ -31,15 +31,18 @@
|
| #ifndef HTMLImportsController_h
|
| #define HTMLImportsController_h
|
|
|
| +#include "core/html/HTMLImport.h"
|
| #include "core/html/LinkResource.h"
|
| #include "core/loader/cache/CachedRawResource.h"
|
| #include "core/loader/cache/CachedResourceHandle.h"
|
| +#include "core/platform/Supplementable.h"
|
| #include "wtf/FastAllocBase.h"
|
| #include "wtf/PassOwnPtr.h"
|
| #include "wtf/Vector.h"
|
|
|
| namespace WebCore {
|
|
|
| +class ScriptExecutionContext;
|
| class CachedResourceLoader;
|
| class HTMLImportLoader;
|
| class HTMLImportsController;
|
| @@ -68,8 +71,7 @@ private:
|
| RefPtr<HTMLImportLoader> m_loader;
|
| };
|
|
|
| -
|
| -class HTMLImportLoader : public RefCounted<HTMLImportLoader>, public CachedRawResourceClient {
|
| +class HTMLImportLoader : public RefCounted<HTMLImportLoader>, public HTMLImport, public CachedRawResourceClient {
|
| public:
|
| enum State {
|
| StateLoading,
|
| @@ -77,7 +79,7 @@ public:
|
| StateReady
|
| };
|
|
|
| - static PassRefPtr<HTMLImportLoader> create(HTMLImportsController*, const KURL&, const CachedResourceHandle<CachedScript>&);
|
| + static PassRefPtr<HTMLImportLoader> create(HTMLImport* parent, const KURL&, const CachedResourceHandle<CachedScript>&);
|
| virtual ~HTMLImportLoader();
|
|
|
| Document* importedDocument() const;
|
| @@ -86,8 +88,14 @@ public:
|
| void importDestroyed();
|
| bool isDone() const { return m_state == StateReady || m_state == StateError; }
|
|
|
| + // HTMLImport
|
| + virtual HTMLImportsController* controller() OVERRIDE;
|
| + virtual HTMLImport* parent() OVERRIDE;
|
| + virtual Document* document() OVERRIDE;
|
| + virtual void wasDetachedFromDocument() OVERRIDE;
|
| +
|
| private:
|
| - HTMLImportLoader(HTMLImportsController*, const KURL&, const CachedResourceHandle<CachedScript>&);
|
| + HTMLImportLoader(HTMLImport*, const KURL&, const CachedResourceHandle<CachedScript>&);
|
|
|
| // CachedRawResourceClient
|
| virtual void responseReceived(CachedResource*, const ResourceResponse&) OVERRIDE;
|
| @@ -99,7 +107,7 @@ private:
|
| void setState(State);
|
| void dispose();
|
|
|
| - HTMLImportsController* m_controller;
|
| + HTMLImport* m_parent;
|
| State m_state;
|
| KURL m_url;
|
| CachedResourceHandle<CachedRawResource> m_resource;
|
| @@ -107,24 +115,31 @@ private:
|
| RefPtr<DocumentWriter> m_writer;
|
| };
|
|
|
| -
|
| -class HTMLImportsController : public RefCounted<HTMLImportsController> {
|
| +class HTMLImportsController : public HTMLImport, public Supplement<ScriptExecutionContext> {
|
| WTF_MAKE_FAST_ALLOCATED;
|
| public:
|
| - static PassRefPtr<HTMLImportsController> create(Document*);
|
| + static void provideTo(Document*);
|
|
|
| explicit HTMLImportsController(Document*);
|
| virtual ~HTMLImportsController();
|
|
|
| + // HTMLImport
|
| + virtual HTMLImportsController* controller() OVERRIDE;
|
| + virtual HTMLImport* parent() OVERRIDE;
|
| + virtual Document* document() OVERRIDE;
|
| + virtual void wasDetachedFromDocument() OVERRIDE;
|
| +
|
| void addImport(PassRefPtr<HTMLImportLoader>);
|
| void showSecurityErrorMessage(const String&);
|
| PassRefPtr<HTMLImportLoader> findLinkFor(const KURL&) const;
|
| SecurityOrigin* securityOrigin() const;
|
| CachedResourceLoader* cachedResourceLoader() const;
|
| - bool haveLoaded() const;
|
| - void didLoad();
|
| + bool haveChildrenLoaded(HTMLImport* parent) const;
|
| + void didLoad(HTMLImportLoader*);
|
|
|
| private:
|
| + void clear();
|
| +
|
| Document* m_master;
|
|
|
| // List of import which has been loaded or being loaded.
|
|
|