Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1073)

Unified Diff: Source/core/html/HTMLImportsController.h

Issue 17137008: Extract HTMLImportLoader from LinkImport (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: For landing. Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/core/html/HTMLImportsController.h
diff --git a/Source/core/html/HTMLImportsController.h b/Source/core/html/HTMLImportsController.h
index 5bf13bec247fb4d807210204ce766db589f4e431..a23f6ebe913c780b067600455f4fcc32abc1dc7c 100644
--- a/Source/core/html/HTMLImportsController.h
+++ b/Source/core/html/HTMLImportsController.h
@@ -40,21 +40,15 @@
namespace WebCore {
-class DocumentFragment;
+class HTMLImportLoader;
class HTMLImportsController;
//
// A LinkResource subclasss used for @rel=import.
//
-class LinkImport : public LinkResource, CachedResourceClient {
+class LinkImport : public LinkResource {
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;
};
« no previous file with comments | « LayoutTests/fast/html/imports/import-shared-remove-expected.txt ('k') | Source/core/html/HTMLImportsController.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698