Index: Source/core/html/parser/HTMLDocumentParser.cpp |
diff --git a/Source/core/html/parser/HTMLDocumentParser.cpp b/Source/core/html/parser/HTMLDocumentParser.cpp |
index 9f19c32900f1b285a272b264def2d650190dc312..b77695c3155dc67f6535812b9c3c0b90872b5592 100644 |
--- a/Source/core/html/parser/HTMLDocumentParser.cpp |
+++ b/Source/core/html/parser/HTMLDocumentParser.cpp |
@@ -219,11 +219,10 @@ void HTMLDocumentParser::prepareToStopParsing() |
// but we need to ensure it isn't deleted yet. |
RefPtrWillBeRawPtr<HTMLDocumentParser> protect(this); |
- // NOTE: This pump should only ever emit buffered character tokens, |
- // so ForceSynchronous vs. AllowYield should be meaningless. |
+ // NOTE: This pump should only ever emit buffered character tokens. |
if (m_tokenizer) { |
ASSERT(!m_haveBackgroundParser); |
- pumpTokenizerIfPossible(ForceSynchronous); |
+ pumpTokenizerIfPossible(); |
} |
if (isStopped()) |
@@ -253,10 +252,8 @@ bool HTMLDocumentParser::processingData() const |
return isScheduledForResume() || inPumpSession() || m_haveBackgroundParser; |
} |
-void HTMLDocumentParser::pumpTokenizerIfPossible(SynchronousMode mode) |
+void HTMLDocumentParser::pumpTokenizerIfPossible() |
{ |
- ASSERT(mode == ForceSynchronous); |
- |
if (isStopped()) |
return; |
if (isWaitingForScripts()) |
@@ -267,7 +264,7 @@ void HTMLDocumentParser::pumpTokenizerIfPossible(SynchronousMode mode) |
return; |
} |
- pumpTokenizer(mode); |
+ pumpTokenizer(); |
} |
bool HTMLDocumentParser::isScheduledForResume() const |
@@ -298,17 +295,12 @@ void HTMLDocumentParser::runScriptsForPausedTreeBuilder() |
m_scriptRunner->execute(scriptElement.release(), scriptStartPosition); |
} |
-bool HTMLDocumentParser::canTakeNextToken(SynchronousMode mode, PumpSession& session) |
+bool HTMLDocumentParser::canTakeNextToken(PumpSession& session) |
{ |
if (isStopped()) |
return false; |
- ASSERT(!m_haveBackgroundParser || mode == ForceSynchronous); |
- |
if (isWaitingForScripts()) { |
- if (mode == AllowYield) |
- session.didSeeScript = true; |
- |
// If we don't run the script, we cannot allow the next token to be taken. |
if (session.needsYield) |
return false; |
@@ -331,9 +323,6 @@ bool HTMLDocumentParser::canTakeNextToken(SynchronousMode mode, PumpSession& ses |
&& document()->frame() && document()->frame()->navigationScheduler().locationChangePending()) |
return false; |
- if (mode == AllowYield) |
- m_parserScheduler->checkForYieldBeforeToken(session); |
- |
return true; |
} |
@@ -573,7 +562,7 @@ static PassRefPtr<MediaValues> createMediaValues(Document* document) |
return mediaValues; |
} |
-void HTMLDocumentParser::pumpTokenizer(SynchronousMode mode) |
+void HTMLDocumentParser::pumpTokenizer() |
{ |
ASSERT(!isStopped()); |
ASSERT(!isScheduledForResume()); |
@@ -583,7 +572,6 @@ void HTMLDocumentParser::pumpTokenizer(SynchronousMode mode) |
#endif |
ASSERT(m_tokenizer); |
ASSERT(m_token); |
- ASSERT(mode == ForceSynchronous); |
PumpSession session(m_pumpSessionNestingLevel, contextForParsingSession()); |
@@ -599,7 +587,7 @@ void HTMLDocumentParser::pumpTokenizer(SynchronousMode mode) |
m_xssAuditor.init(document(), &m_xssAuditorDelegate); |
- while (canTakeNextToken(mode, session) && !session.needsYield) { |
+ while (canTakeNextToken(session) && !session.needsYield) { |
if (!isParsingFragment()) |
m_sourceTracker.start(m_input.current(), m_tokenizer.get(), token()); |
@@ -630,8 +618,7 @@ void HTMLDocumentParser::pumpTokenizer(SynchronousMode mode) |
// There should only be PendingText left since the tree-builder always flushes |
// the task queue before returning. In case that ever changes, crash. |
- if (mode == ForceSynchronous) |
- m_treeBuilder->flush(FlushAlways); |
+ m_treeBuilder->flush(FlushAlways); |
RELEASE_ASSERT(!isStopped()); |
if (session.needsYield) |
@@ -713,7 +700,7 @@ void HTMLDocumentParser::insert(const SegmentedString& source) |
SegmentedString excludedLineNumberSource(source); |
excludedLineNumberSource.setExcludeLineNumbers(); |
m_input.insertAtCurrentInsertionPoint(excludedLineNumberSource); |
- pumpTokenizerIfPossible(ForceSynchronous); |
+ pumpTokenizerIfPossible(); |
if (isWaitingForScripts()) { |
// Check the document.write() output with a separate preload scanner as |
@@ -809,7 +796,7 @@ void HTMLDocumentParser::append(PassRefPtr<StringImpl> inputSource) |
// FIXME: This is gross, and we should separate the concept of synchronous parsing |
// from insert() so that only document.write() uses insert. |
ASSERT(m_isPinnedToMainThread); |
- pumpTokenizerIfPossible(ForceSynchronous); |
+ pumpTokenizerIfPossible(); |
endIfDelayed(); |
} |
@@ -963,7 +950,7 @@ void HTMLDocumentParser::resumeParsingAfterScriptExecution() |
} |
m_insertionPreloadScanner.clear(); |
- pumpTokenizerIfPossible(ForceSynchronous); |
+ pumpTokenizerIfPossible(); |
endIfDelayed(); |
} |