Index: third_party/WebKit/Source/core/html/parser/HTMLDocumentParser.cpp |
diff --git a/third_party/WebKit/Source/core/html/parser/HTMLDocumentParser.cpp b/third_party/WebKit/Source/core/html/parser/HTMLDocumentParser.cpp |
index 0ed9b645e97913e65ae42861cfb2848a1a67024c..3f1e1957a1c25b4a8622ea67936ddaa850505066 100644 |
--- a/third_party/WebKit/Source/core/html/parser/HTMLDocumentParser.cpp |
+++ b/third_party/WebKit/Source/core/html/parser/HTMLDocumentParser.cpp |
@@ -259,11 +259,6 @@ bool HTMLDocumentParser::isParsingFragment() const |
return m_treeBuilder->isParsingFragment(); |
} |
-bool HTMLDocumentParser::processingData() const |
-{ |
- return isScheduledForResume() || inPumpSession() || m_haveBackgroundParser; |
-} |
- |
void HTMLDocumentParser::pumpTokenizerIfPossible() |
{ |
if (isStopped() || isWaitingForScripts()) |
@@ -434,7 +429,8 @@ size_t HTMLDocumentParser::processParsedChunkFromBackgroundParser(PassOwnPtr<Par |
TRACE_EVENT0("blink", "HTMLDocumentParser::processParsedChunkFromBackgroundParser"); |
TemporaryChange<bool> hasLineNumber(m_isParsingAtLineNumber, true); |
- ASSERT_WITH_SECURITY_IMPLICATION(document()->activeParserCount() == 1); |
+ ASSERT_WITH_SECURITY_IMPLICATION(m_pumpSpeculationsSessionNestingLevel == 1); |
+ ASSERT_WITH_SECURITY_IMPLICATION(!inPumpSession()); |
ASSERT(!isParsingFragment()); |
ASSERT(!isWaitingForScripts()); |
ASSERT(!isStopped()); |
@@ -550,7 +546,7 @@ void HTMLDocumentParser::pumpPendingSpeculations() |
// FIXME: Pass in current input length. |
TRACE_EVENT_BEGIN1("devtools.timeline", "ParseHTML", "beginData", InspectorParseHtmlEvent::beginData(document(), lineNumber().zeroBasedInt())); |
- SpeculationsPumpSession session(m_pumpSpeculationsSessionNestingLevel, contextForParsingSession()); |
+ SpeculationsPumpSession session(m_pumpSpeculationsSessionNestingLevel); |
while (!m_speculations.isEmpty()) { |
ASSERT(!isScheduledForResume()); |
size_t elementTokenCount = processParsedChunkFromBackgroundParser(m_speculations.takeFirst().release()); |
@@ -584,15 +580,6 @@ void HTMLDocumentParser::forcePlaintextForTextDocument() |
m_tokenizer->setState(HTMLTokenizer::PLAINTEXTState); |
} |
-Document* HTMLDocumentParser::contextForParsingSession() |
-{ |
- // The parsing session should interact with the document only when parsing |
- // non-fragments. Otherwise, we might delay the load event mistakenly. |
- if (isParsingFragment()) |
- return nullptr; |
- return document(); |
-} |
- |
void HTMLDocumentParser::pumpTokenizer() |
{ |
ASSERT(!isStopped()); |
@@ -603,7 +590,7 @@ void HTMLDocumentParser::pumpTokenizer() |
ASSERT(m_tokenizer); |
ASSERT(m_token); |
- PumpSession session(m_pumpSessionNestingLevel, contextForParsingSession()); |
+ PumpSession session(m_pumpSessionNestingLevel); |
// We tell the InspectorInstrumentation about every pump, even if we |
// end up pumping nothing. It can filter out empty pumps itself. |
@@ -1061,7 +1048,6 @@ void HTMLDocumentParser::parseDocumentFragment(const String& source, DocumentFra |
RefPtrWillBeRawPtr<HTMLDocumentParser> parser = HTMLDocumentParser::create(fragment, contextElement, parserContentPolicy); |
parser->append(source); |
parser->finish(); |
- ASSERT(!parser->processingData()); // Make sure we're done. <rdar://problem/3963151> |
parser->detach(); // Allows ~DocumentParser to assert it was detached before destruction. |
} |