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

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

Issue 18467003: Refactoring: Introduce HTMLImport interface to form import tree. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Added missing checks and a clearance. Created 7 years, 5 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
« no previous file with comments | « Source/core/html/HTMLImport.cpp ('k') | Source/core/html/HTMLImportsController.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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.
« no previous file with comments | « Source/core/html/HTMLImport.cpp ('k') | Source/core/html/HTMLImportsController.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698