OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2008 Nikolas Zimmermann <zimmermann@kde.org> | 2 * Copyright (C) 2008 Nikolas Zimmermann <zimmermann@kde.org> |
3 * | 3 * |
4 * This library is free software; you can redistribute it and/or | 4 * This library is free software; you can redistribute it and/or |
5 * modify it under the terms of the GNU Library General Public | 5 * modify it under the terms of the GNU Library General Public |
6 * License as published by the Free Software Foundation; either | 6 * License as published by the Free Software Foundation; either |
7 * version 2 of the License, or (at your option) any later version. | 7 * version 2 of the License, or (at your option) any later version. |
8 * | 8 * |
9 * This library is distributed in the hope that it will be useful, | 9 * This library is distributed in the hope that it will be useful, |
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
100 void handleSourceAttribute(const String& sourceUrl); | 100 void handleSourceAttribute(const String& sourceUrl); |
101 void handleAsyncAttribute(); | 101 void handleAsyncAttribute(); |
102 | 102 |
103 virtual bool isReady() const { | 103 virtual bool isReady() const { |
104 return m_pendingScript && m_pendingScript->isReady(); | 104 return m_pendingScript && m_pendingScript->isReady(); |
105 } | 105 } |
106 bool errorOccurred() const { | 106 bool errorOccurred() const { |
107 return m_pendingScript && m_pendingScript->errorOccurred(); | 107 return m_pendingScript && m_pendingScript->errorOccurred(); |
108 } | 108 } |
109 | 109 |
110 // Clears the connection to the PendingScript (and Element and Resource). | |
111 void detach(); | |
112 | |
113 bool wasCreatedDuringDocumentWrite() { return m_createdDuringDocumentWrite; } | 110 bool wasCreatedDuringDocumentWrite() { return m_createdDuringDocumentWrite; } |
114 | 111 |
115 bool disallowedFetchForDocWrittenScript() { | 112 bool disallowedFetchForDocWrittenScript() { |
116 return m_documentWriteIntervention == | 113 return m_documentWriteIntervention == |
117 DocumentWriteIntervention::DoNotFetchDocWrittenScript; | 114 DocumentWriteIntervention::DoNotFetchDocWrittenScript; |
118 } | 115 } |
119 void setFetchDocWrittenScriptDeferIdle(); | 116 void setFetchDocWrittenScriptDeferIdle(); |
120 | 117 |
121 protected: | 118 protected: |
122 ScriptLoader(Element*, | 119 ScriptLoader(Element*, |
123 bool createdByParser, | 120 bool createdByParser, |
124 bool isEvaluated, | 121 bool isEvaluated, |
125 bool createdDuringDocumentWrite); | 122 bool createdDuringDocumentWrite); |
126 | 123 |
127 private: | 124 private: |
128 bool ignoresLoadRequest() const; | 125 bool ignoresLoadRequest() const; |
129 bool isScriptForEventSupported() const; | 126 bool isScriptForEventSupported() const; |
130 void logScriptMIMEType(LocalFrame*, ScriptResource*, const String&); | 127 void logScriptMIMEType(LocalFrame*, ScriptResource*, const String&); |
131 | 128 |
132 bool fetchScript(const String& sourceUrl, | 129 bool fetchScript(const String& sourceUrl, |
133 const String& encoding, | 130 const String& encoding, |
134 FetchRequest::DeferOption); | 131 FetchRequest::DeferOption); |
135 bool doExecuteScript(const ScriptSourceCode&); | 132 bool doExecuteScript(const ScriptSourceCode&); |
136 | 133 |
137 ScriptLoaderClient* client() const; | 134 ScriptLoaderClient* client() const; |
138 | 135 |
| 136 // Clears the connection to the PendingScript. |
| 137 void detachPendingScript(); |
| 138 |
139 // PendingScriptClient | 139 // PendingScriptClient |
140 void pendingScriptFinished(PendingScript*) override; | 140 void pendingScriptFinished(PendingScript*) override; |
141 | 141 |
142 Member<Element> m_element; | 142 Member<Element> m_element; |
143 Member<ScriptResource> m_resource; | 143 Member<ScriptResource> m_resource; |
144 WTF::OrdinalNumber m_startLineNumber; | 144 WTF::OrdinalNumber m_startLineNumber; |
145 | 145 |
146 // https://html.spec.whatwg.org/#script-processing-model | 146 // https://html.spec.whatwg.org/#script-processing-model |
147 // "A script element has several associated pieces of state.": | 147 // "A script element has several associated pieces of state.": |
148 | 148 |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
195 DocumentWriteIntervention m_documentWriteIntervention; | 195 DocumentWriteIntervention m_documentWriteIntervention; |
196 | 196 |
197 Member<PendingScript> m_pendingScript; | 197 Member<PendingScript> m_pendingScript; |
198 }; | 198 }; |
199 | 199 |
200 ScriptLoader* toScriptLoaderIfPossible(Element*); | 200 ScriptLoader* toScriptLoaderIfPossible(Element*); |
201 | 201 |
202 } // namespace blink | 202 } // namespace blink |
203 | 203 |
204 #endif // ScriptLoader_h | 204 #endif // ScriptLoader_h |
OLD | NEW |