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

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: For landing 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
Index: Source/core/html/HTMLImportsController.h
diff --git a/Source/core/html/HTMLImportsController.h b/Source/core/html/HTMLImportsController.h
index d90b10d003368db17689c0e022ead6952836bff1..ffc2dbd756f956f350f9d7e4eebcdadf4834bb5f 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*, const KURL&, const CachedResourceHandle<CachedScript>&);
dominicc (has gone to gerrit) 2013/07/11 03:26:48 I think this parameter needs a name. It is a bit m
virtual ~HTMLImportLoader();
Document* importedDocument() const;
@@ -86,8 +88,13 @@ 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;
+
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 +106,7 @@ private:
void setState(State);
void dispose();
- HTMLImportsController* m_controller;
+ HTMLImport* m_parent;
State m_state;
KURL m_url;
CachedResourceHandle<CachedRawResource> m_resource;
@@ -107,22 +114,26 @@ 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;
+
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:
Document* m_master;

Powered by Google App Engine
This is Rietveld 408576698