| Index: third_party/WebKit/Source/core/html/parser/HTMLDocumentParser.h
|
| diff --git a/third_party/WebKit/Source/core/html/parser/HTMLDocumentParser.h b/third_party/WebKit/Source/core/html/parser/HTMLDocumentParser.h
|
| index d7c213e5d2994eefd064c025241f82dd245e87fb..24da4ff05919237d6ec07770f8491df6494b864d 100644
|
| --- a/third_party/WebKit/Source/core/html/parser/HTMLDocumentParser.h
|
| +++ b/third_party/WebKit/Source/core/html/parser/HTMLDocumentParser.h
|
| @@ -169,9 +169,15 @@ class CORE_EXPORT HTMLDocumentParser : public ScriptableDocumentParser,
|
| bool hasInsertionPoint() final;
|
| void prepareToStopParsing() final;
|
| void stopParsing() final;
|
| + bool isPaused() const {
|
| + return isWaitingForScripts() || m_isWaitingForStylesheets;
|
| + }
|
| bool isWaitingForScripts() const final;
|
| bool isExecutingScript() const final;
|
| void executeScriptsWaitingForResources() final;
|
| + void didAddPendingStylesheetInBody() final;
|
| + void didLoadAllBodyStylesheets() final;
|
| + void checkIfBodyStlyesheetAdded();
|
| void documentElementAvailable() override;
|
|
|
| // HTMLParserScriptRunnerHost
|
| @@ -200,7 +206,7 @@ class CORE_EXPORT HTMLDocumentParser : public ScriptableDocumentParser,
|
| void constructTreeFromCompactHTMLToken(const CompactHTMLToken&);
|
|
|
| void runScriptsForPausedTreeBuilder();
|
| - void resumeParsingAfterScriptExecution();
|
| + void resumeParsingAfterPause();
|
|
|
| void attemptToEnd();
|
| void endIfDelayed();
|
| @@ -213,7 +219,7 @@ class CORE_EXPORT HTMLDocumentParser : public ScriptableDocumentParser,
|
| bool isScheduledForResume() const;
|
| bool inPumpSession() const { return m_pumpSessionNestingLevel > 0; }
|
| bool shouldDelayEnd() const {
|
| - return inPumpSession() || isWaitingForScripts() || isScheduledForResume() ||
|
| + return inPumpSession() || isPaused() || isScheduledForResume() ||
|
| isExecutingScript();
|
| }
|
|
|
| @@ -265,10 +271,10 @@ class CORE_EXPORT HTMLDocumentParser : public ScriptableDocumentParser,
|
| XSSAuditor m_xssAuditor;
|
| XSSAuditorDelegate m_xssAuditorDelegate;
|
|
|
| - // FIXME: m_lastChunkBeforeScript, m_tokenizer, m_token, and m_input should be
|
| + // FIXME: m_lastChunkBeforePause, m_tokenizer, m_token, and m_input should be
|
| // combined into a single state object so they can be set and cleared together
|
| // and passed between threads together.
|
| - std::unique_ptr<TokenizedChunk> m_lastChunkBeforeScript;
|
| + std::unique_ptr<TokenizedChunk> m_lastChunkBeforePause;
|
| Deque<std::unique_ptr<TokenizedChunk>> m_speculations;
|
| WeakPtrFactory<HTMLDocumentParser> m_weakFactory;
|
| WeakPtr<BackgroundHTMLParser> m_backgroundParser;
|
| @@ -286,6 +292,8 @@ class CORE_EXPORT HTMLDocumentParser : public ScriptableDocumentParser,
|
| // would require keeping track of token positions of preload requests.
|
| CompactHTMLToken* m_pendingCSPMetaToken;
|
|
|
| + TaskHandle m_resumeParsingTaskHandle;
|
| +
|
| bool m_shouldUseThreading;
|
| bool m_endWasDelayed;
|
| bool m_haveBackgroundParser;
|
| @@ -294,6 +302,8 @@ class CORE_EXPORT HTMLDocumentParser : public ScriptableDocumentParser,
|
| unsigned m_pumpSpeculationsSessionNestingLevel;
|
| bool m_isParsingAtLineNumber;
|
| bool m_triedLoadingLinkHeaders;
|
| + bool m_addedPendingStylesheetInBody;
|
| + bool m_isWaitingForStylesheets;
|
| };
|
|
|
| } // namespace blink
|
|
|