Index: third_party/WebKit/Source/core/xml/parser/XMLDocumentParser.cpp |
diff --git a/third_party/WebKit/Source/core/xml/parser/XMLDocumentParser.cpp b/third_party/WebKit/Source/core/xml/parser/XMLDocumentParser.cpp |
index e37795ac23d1f47a5d024f958271a9cc5993463d..a8511a0fa78abc38215c43e8df81deb2ca79ed8d 100644 |
--- a/third_party/WebKit/Source/core/xml/parser/XMLDocumentParser.cpp |
+++ b/third_party/WebKit/Source/core/xml/parser/XMLDocumentParser.cpp |
@@ -1022,10 +1022,11 @@ void XMLDocumentParser::startElementNs(const AtomicString& localName, const Atom |
else |
pushCurrentNode(newElement); |
- if (isHTMLHtmlElement(*newElement)) |
+ // Note: |insertedByParser| will perform dispatching if this is an |
+ // HTMLHtmlElement. |
+ if (isHTMLHtmlElement(*newElement) && isFirstElement) { |
toHTMLHtmlElement(*newElement).insertedByParser(); |
- |
- if (!m_parsingFragment && isFirstElement && document()->frame()) { |
+ } else if (!m_parsingFragment && isFirstElement && document()->frame()) { |
document()->frame()->loader().dispatchDocumentElementAvailable(); |
document()->frame()->loader().runScriptsAtDocumentElementAvailable(); |
// runScriptsAtDocumentElementAvailable might have invalidated the document. |