Index: third_party/WebKit/Source/core/html/parser/HTMLScriptRunner.h |
diff --git a/third_party/WebKit/Source/core/html/parser/HTMLScriptRunner.h b/third_party/WebKit/Source/core/html/parser/HTMLScriptRunner.h |
index eeb29590f4124c43680a03e611c84c83002258a6..c69e4e06b1457308d5c24e53353f78bd1ab2883e 100644 |
--- a/third_party/WebKit/Source/core/html/parser/HTMLScriptRunner.h |
+++ b/third_party/WebKit/Source/core/html/parser/HTMLScriptRunner.h |
@@ -29,9 +29,10 @@ |
#include "bindings/core/v8/ScriptStreamer.h" |
#include "core/dom/PendingScript.h" |
#include "core/fetch/ResourceClient.h" |
+#include "core/html/parser/HTMLParserReentryPermit.h" |
#include "platform/heap/Handle.h" |
#include "wtf/Deque.h" |
-#include "wtf/PassRefPtr.h" |
+#include "wtf/RefPtr.h" |
#include "wtf/text/TextPosition.h" |
namespace blink { |
@@ -46,9 +47,9 @@ class HTMLScriptRunner final : public GarbageCollectedFinalized<HTMLScriptRunner |
USING_GARBAGE_COLLECTED_MIXIN(HTMLScriptRunner); |
USING_PRE_FINALIZER(HTMLScriptRunner, detach); |
public: |
- static HTMLScriptRunner* create(Document* document, HTMLScriptRunnerHost* host) |
+ static HTMLScriptRunner* create(HTMLParserReentryPermit* reentryPermit, Document* document, HTMLScriptRunnerHost* host) |
{ |
- return new HTMLScriptRunner(document, host); |
+ return new HTMLScriptRunner(reentryPermit, document, host); |
} |
~HTMLScriptRunner(); |
@@ -63,7 +64,7 @@ public: |
bool executeScriptsWaitingForParsing(); |
bool hasParserBlockingScript() const; |
- bool isExecutingScript() const { return !!m_scriptNestingLevel; } |
+ bool isExecutingScript() const { return !!m_reentryPermit->scriptNestingLevel(); } |
// ResourceClient |
void notifyFinished(Resource*) override; |
@@ -72,7 +73,7 @@ public: |
DECLARE_TRACE(); |
private: |
- HTMLScriptRunner(Document*, HTMLScriptRunnerHost*); |
+ HTMLScriptRunner(HTMLParserReentryPermit*, Document*, HTMLScriptRunnerHost*); |
void executeParsingBlockingScript(); |
void executePendingScriptAndDispatchEvent(PendingScript*, ScriptStreamer::Type); |
@@ -88,12 +89,12 @@ private: |
void stopWatchingResourceForLoad(Resource*); |
+ RefPtr<HTMLParserReentryPermit> m_reentryPermit; |
Member<Document> m_document; |
Member<HTMLScriptRunnerHost> m_host; |
Member<PendingScript> m_parserBlockingScript; |
// http://www.whatwg.org/specs/web-apps/current-work/#list-of-scripts-that-will-execute-when-the-document-has-finished-parsing |
HeapDeque<Member<PendingScript>> m_scriptsToExecuteAfterParsing; |
- unsigned m_scriptNestingLevel; |
// We only want stylesheet loads to trigger script execution if script |
// execution is currently stopped due to stylesheet loads, otherwise we'd |