class HTMLScriptRunnerHost;
class ScriptSourceCode;
-class HTMLScriptRunner FINAL : public NoBaseWillBeGarbageCollectedFinalized<HTMLScriptRunner>, private ResourceClient {
+class HTMLScriptRunner FINAL : public NoBaseWillBeGarbageCollectedFinalized<HTMLScriptRunner>, private ScriptResourceClient {
WTF_MAKE_NONCOPYABLE(HTMLScriptRunner); WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED;
public:
static PassOwnPtrWillBeRawPtr<HTMLScriptRunner> create(Document* document, HTMLScriptRunnerHost* host)
private:
HTMLScriptRunner(Document*, HTMLScriptRunnerHost*);
- enum PendingScriptType {
- PendingScriptBlockingParser,
- PendingScriptDeferred
- };
-
void executeParsingBlockingScript();
- void executePendingScriptAndDispatchEvent(PendingScript&, PendingScriptType);
+ void executePendingScriptAndDispatchEvent(PendingScript&, PendingScript::Type);
void executeParsingBlockingScripts();
void requestParsingBlockingScript(Element*);
void runScript(Element*, const TextPosition& scriptStartPosition);
- // Helpers for dealing with HTMLScriptRunnerHost
- void watchForLoad(PendingScript&);
- void stopWatchingForLoad(PendingScript&);
bool isPendingScriptReady(const PendingScript&);
- ScriptSourceCode sourceFromPendingScript(const PendingScript&, bool& errorOccurred) const;
RawPtrWillBeMember<Document> m_document;
RawPtrWillBeMember<HTMLScriptRunnerHost> m_host;
// cause nested script execution when parsing <style> tags since </style>
// tags can cause Document to call executeScriptsWaitingForResources.
bool m_hasScriptsWaitingForResources;
+
+ // For tracking the times between script load and compilation, we need to
+ // know whether a parser blocking script was loaded previously, or whether
+ // it's really loaded when requested.
+ bool m_parserBlockingScriptAlreadyLoaded;
};
}