Chromium Code Reviews| Index: Source/core/html/HTMLImportsController.h |
| diff --git a/Source/core/html/HTMLImportsController.h b/Source/core/html/HTMLImportsController.h |
| index 5bf13bec247fb4d807210204ce766db589f4e431..aba0aa0cf3c176c1bc4634f19c6f867a10b34814 100644 |
| --- a/Source/core/html/HTMLImportsController.h |
| +++ b/Source/core/html/HTMLImportsController.h |
| @@ -40,7 +40,7 @@ |
| namespace WebCore { |
| -class DocumentFragment; |
| +class HTMLImportLoader; |
| class HTMLImportsController; |
| // |
| @@ -49,12 +49,6 @@ class HTMLImportsController; |
| class LinkImport : public LinkResource, CachedResourceClient { |
|
dglazkov
2013/06/19 02:53:52
Does this still need to be a CachedResourceClient?
|
| WTF_MAKE_FAST_ALLOCATED; |
| public: |
| - enum State { |
| - StatePreparing, |
| - StateStarted, |
| - StateError, |
| - StateReady |
| - }; |
| static PassRefPtr<LinkImport> create(HTMLLinkElement* owner); |
| @@ -67,22 +61,41 @@ public: |
| virtual void ownerRemoved() OVERRIDE; |
| Document* importedDocument() const; |
| + |
| +private: |
| + RefPtr<HTMLImportLoader> m_loader; |
| +}; |
| + |
| + |
| +class HTMLImportLoader : public RefCounted<HTMLImportLoader>, public CachedResourceClient { |
| +public: |
| + enum State { |
| + StateLoading, |
| + StateError, |
| + StateReady |
| + }; |
| + |
| + static PassRefPtr<HTMLImportLoader> create(HTMLImportsController*, const KURL&, const CachedResourceHandle<CachedScript>&); |
| + virtual ~HTMLImportLoader(); |
| + |
| + Document* importedDocument() const; |
| const KURL& url() const { return m_url; } |
| + |
| void importDestroyed(); |
| bool isDone() const { return m_state == StateReady || m_state == StateError; } |
| private: |
| - State startRequest(); |
| - State finish(); |
| - void setState(State); |
| + HTMLImportLoader(HTMLImportsController*, const KURL&, const CachedResourceHandle<CachedScript>&); |
| // CachedResourceClient |
| virtual void notifyFinished(CachedResource*) OVERRIDE; |
| + State finish(); |
| + void setState(State); |
| + |
| HTMLImportsController* m_controller; |
| - LinkImport* m_ofSameLocation; |
| - KURL m_url; |
| State m_state; |
| + KURL m_url; |
| CachedResourceHandle<CachedScript> m_resource; |
| RefPtr<Document> m_importedDocument; |
| }; |
| @@ -96,19 +109,18 @@ public: |
| explicit HTMLImportsController(Document*); |
| virtual ~HTMLImportsController(); |
| - void addImport(PassRefPtr<LinkImport>); |
| + void addImport(PassRefPtr<HTMLImportLoader>); |
| void showSecurityErrorMessage(const String&); |
| - PassRefPtr<LinkImport> findLinkFor(const KURL&) const; |
| + PassRefPtr<HTMLImportLoader> findLinkFor(const KURL&) const; |
| SecurityOrigin* securityOrigin() const; |
| bool haveLoaded() const; |
| void didLoad(); |
| private: |
| - |
| Document* m_master; |
| // List of import which has been loaded or being loaded. |
| - typedef Vector<RefPtr<LinkImport> > ImportList; |
| + typedef Vector<RefPtr<HTMLImportLoader> > ImportList; |
| ImportList m_imports; |
| }; |