| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 68 Document* importedDocument() const; | 68 Document* importedDocument() const; |
| 69 | 69 |
| 70 private: | 70 private: |
| 71 RefPtr<HTMLImportLoader> m_loader; | 71 RefPtr<HTMLImportLoader> m_loader; |
| 72 }; | 72 }; |
| 73 | 73 |
| 74 class HTMLImportLoader : public RefCounted<HTMLImportLoader>, public HTMLImport,
public CachedRawResourceClient { | 74 class HTMLImportLoader : public RefCounted<HTMLImportLoader>, public HTMLImport,
public CachedRawResourceClient { |
| 75 public: | 75 public: |
| 76 enum State { | 76 enum State { |
| 77 StateLoading, | 77 StateLoading, |
| 78 StateWritten, |
| 78 StateError, | 79 StateError, |
| 79 StateReady | 80 StateReady |
| 80 }; | 81 }; |
| 81 | 82 |
| 82 static PassRefPtr<HTMLImportLoader> create(HTMLImport* parent, const KURL&,
const CachedResourceHandle<CachedScript>&); | 83 static PassRefPtr<HTMLImportLoader> create(HTMLImport* parent, const KURL&,
const CachedResourceHandle<CachedScript>&); |
| 83 virtual ~HTMLImportLoader(); | 84 virtual ~HTMLImportLoader(); |
| 84 | 85 |
| 85 Document* importedDocument() const; | 86 Document* importedDocument() const; |
| 86 const KURL& url() const { return m_url; } | 87 const KURL& url() const { return m_url; } |
| 87 | 88 |
| 88 void importDestroyed(); | 89 void importDestroyed(); |
| 89 bool isDone() const { return m_state == StateReady || m_state == StateError;
} | 90 bool isDone() const { return m_state == StateReady || m_state == StateError;
} |
| 90 | 91 |
| 91 // HTMLImport | 92 // HTMLImport |
| 92 virtual HTMLImportsController* controller() OVERRIDE; | 93 virtual HTMLImportsController* controller() OVERRIDE; |
| 93 virtual HTMLImport* parent() OVERRIDE; | 94 virtual HTMLImport* parent() OVERRIDE; |
| 94 virtual Document* document() OVERRIDE; | 95 virtual Document* document() OVERRIDE; |
| 95 virtual void wasDetachedFromDocument() OVERRIDE; | 96 virtual void wasDetachedFromDocument() OVERRIDE; |
| 97 virtual void didFinishParsing() OVERRIDE; |
| 96 | 98 |
| 97 private: | 99 private: |
| 98 HTMLImportLoader(HTMLImport*, const KURL&, const CachedResourceHandle<Cached
Script>&); | 100 HTMLImportLoader(HTMLImport*, const KURL&, const CachedResourceHandle<Cached
Script>&); |
| 99 | 101 |
| 100 // CachedRawResourceClient | 102 // CachedRawResourceClient |
| 101 virtual void responseReceived(CachedResource*, const ResourceResponse&) OVER
RIDE; | 103 virtual void responseReceived(CachedResource*, const ResourceResponse&) OVER
RIDE; |
| 102 virtual void dataReceived(CachedResource*, const char* data, int length) OVE
RRIDE; | 104 virtual void dataReceived(CachedResource*, const char* data, int length) OVE
RRIDE; |
| 103 virtual void notifyFinished(CachedResource*) OVERRIDE; | 105 virtual void notifyFinished(CachedResource*) OVERRIDE; |
| 104 | 106 |
| 105 State startParsing(const ResourceResponse&); | 107 State startWritingAndParsing(const ResourceResponse&); |
| 106 State finish(); | 108 State finishWriting(); |
| 109 State finishParsing(); |
| 110 |
| 107 void setState(State); | 111 void setState(State); |
| 108 void dispose(); | 112 void dispose(); |
| 109 | 113 |
| 110 HTMLImport* m_parent; | 114 HTMLImport* m_parent; |
| 111 State m_state; | 115 State m_state; |
| 112 KURL m_url; | 116 KURL m_url; |
| 113 CachedResourceHandle<CachedRawResource> m_resource; | 117 CachedResourceHandle<CachedRawResource> m_resource; |
| 114 RefPtr<Document> m_importedDocument; | 118 RefPtr<Document> m_importedDocument; |
| 115 RefPtr<DocumentWriter> m_writer; | 119 RefPtr<DocumentWriter> m_writer; |
| 116 }; | 120 }; |
| 117 | 121 |
| 118 class HTMLImportsController : public HTMLImport, public Supplement<ScriptExecuti
onContext> { | 122 class HTMLImportsController : public HTMLImport, public Supplement<ScriptExecuti
onContext> { |
| 119 WTF_MAKE_FAST_ALLOCATED; | 123 WTF_MAKE_FAST_ALLOCATED; |
| 120 public: | 124 public: |
| 121 static void provideTo(Document*); | 125 static void provideTo(Document*); |
| 122 | 126 |
| 123 explicit HTMLImportsController(Document*); | 127 explicit HTMLImportsController(Document*); |
| 124 virtual ~HTMLImportsController(); | 128 virtual ~HTMLImportsController(); |
| 125 | 129 |
| 126 // HTMLImport | 130 // HTMLImport |
| 127 virtual HTMLImportsController* controller() OVERRIDE; | 131 virtual HTMLImportsController* controller() OVERRIDE; |
| 128 virtual HTMLImport* parent() OVERRIDE; | 132 virtual HTMLImport* parent() OVERRIDE; |
| 129 virtual Document* document() OVERRIDE; | 133 virtual Document* document() OVERRIDE; |
| 130 virtual void wasDetachedFromDocument() OVERRIDE; | 134 virtual void wasDetachedFromDocument() OVERRIDE; |
| 135 virtual void didFinishParsing() OVERRIDE; |
| 131 | 136 |
| 132 void addImport(PassRefPtr<HTMLImportLoader>); | 137 void addImport(PassRefPtr<HTMLImportLoader>); |
| 133 void showSecurityErrorMessage(const String&); | 138 void showSecurityErrorMessage(const String&); |
| 134 PassRefPtr<HTMLImportLoader> findLinkFor(const KURL&) const; | 139 PassRefPtr<HTMLImportLoader> findLinkFor(const KURL&) const; |
| 135 SecurityOrigin* securityOrigin() const; | 140 SecurityOrigin* securityOrigin() const; |
| 136 ResourceFetcher* fetcher() const; | 141 ResourceFetcher* fetcher() const; |
| 137 bool haveChildrenLoaded(HTMLImport* parent) const; | 142 bool haveChildrenLoaded(HTMLImport* parent) const; |
| 138 void didLoad(HTMLImportLoader*); | 143 void didLoad(HTMLImportLoader*); |
| 139 | 144 |
| 140 private: | 145 private: |
| 141 void clear(); | 146 void clear(); |
| 142 | 147 |
| 143 Document* m_master; | 148 Document* m_master; |
| 144 | 149 |
| 145 // List of import which has been loaded or being loaded. | 150 // List of import which has been loaded or being loaded. |
| 146 typedef Vector<RefPtr<HTMLImportLoader> > ImportList; | 151 typedef Vector<RefPtr<HTMLImportLoader> > ImportList; |
| 147 ImportList m_imports; | 152 ImportList m_imports; |
| 148 }; | 153 }; |
| 149 | 154 |
| 150 } // namespace WebCore | 155 } // namespace WebCore |
| 151 | 156 |
| 152 #endif // HTMLImportsController_h | 157 #endif // HTMLImportsController_h |
| OLD | NEW |