Title: [93460] trunk/Source/WebCore
- Revision
- 93460
- Author
- [email protected]
- Date
- 2011-08-19 17:45:52 -0700 (Fri, 19 Aug 2011)
Log Message
New XML parser: text nodes outside of root element not created for document fragments
https://bugs.webkit.org/show_bug.cgi?id=66604
When intializing a fragment parser, declare that the first element has been seen. Also, flush the text nodes when finishing parsing a document.
Reviewed by Darin Adler.
* xml/parser/NewXMLDocumentParser.cpp:
(WebCore::NewXMLDocumentParser::finish):
* xml/parser/XMLTreeBuilder.cpp:
(WebCore::XMLTreeBuilder::XMLTreeBuilder):
(WebCore::XMLTreeBuilder::processToken):
(WebCore::XMLTreeBuilder::finish):
* xml/parser/XMLTreeBuilder.h:
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (93459 => 93460)
--- trunk/Source/WebCore/ChangeLog 2011-08-20 00:41:58 UTC (rev 93459)
+++ trunk/Source/WebCore/ChangeLog 2011-08-20 00:45:52 UTC (rev 93460)
@@ -1,3 +1,20 @@
+2011-08-19 Jeffrey Pfau <[email protected]>
+
+ New XML parser: text nodes outside of root element not created for document fragments
+ https://bugs.webkit.org/show_bug.cgi?id=66604
+
+ When intializing a fragment parser, declare that the first element has been seen. Also, flush the text nodes when finishing parsing a document.
+
+ Reviewed by Darin Adler.
+
+ * xml/parser/NewXMLDocumentParser.cpp:
+ (WebCore::NewXMLDocumentParser::finish):
+ * xml/parser/XMLTreeBuilder.cpp:
+ (WebCore::XMLTreeBuilder::XMLTreeBuilder):
+ (WebCore::XMLTreeBuilder::processToken):
+ (WebCore::XMLTreeBuilder::finish):
+ * xml/parser/XMLTreeBuilder.h:
+
2011-08-19 Jeff Miller <[email protected]>
MediaPlayerPrivateAVFoundationCF should use AVCFURLAssetCopyAudiovisualMIMETypes() to get list of supported MIME types
Modified: trunk/Source/WebCore/xml/parser/NewXMLDocumentParser.cpp (93459 => 93460)
--- trunk/Source/WebCore/xml/parser/NewXMLDocumentParser.cpp 2011-08-20 00:41:58 UTC (rev 93459)
+++ trunk/Source/WebCore/xml/parser/NewXMLDocumentParser.cpp 2011-08-20 00:45:52 UTC (rev 93460)
@@ -144,6 +144,8 @@
if (m_parserPaused)
return;
+ m_treeBuilder->finish();
+
m_finishWasCalled = true;
if (isParsing())
prepareToStopParsing();
Modified: trunk/Source/WebCore/xml/parser/XMLTreeBuilder.cpp (93459 => 93460)
--- trunk/Source/WebCore/xml/parser/XMLTreeBuilder.cpp 2011-08-20 00:41:58 UTC (rev 93459)
+++ trunk/Source/WebCore/xml/parser/XMLTreeBuilder.cpp 2011-08-20 00:45:52 UTC (rev 93460)
@@ -47,6 +47,7 @@
: m_document(document)
, m_parser(parser)
, m_isXHTML(false)
+ , m_sawFirstElement(false)
{
m_currentNodeStack.append(NodeStackItem(document));
}
@@ -55,6 +56,7 @@
: m_document(fragment->document())
, m_parser(parser)
, m_isXHTML(false)
+ , m_sawFirstElement(true)
{
NodeStackItem stackItem(fragment);
@@ -128,10 +130,16 @@
processEntity(token);
break;
case XMLTokenTypes::EndOfFile:
+ exitText();
return;
}
}
+void XMLTreeBuilder::finish()
+{
+ exitText();
+}
+
void XMLTreeBuilder::pushCurrentNode(const NodeStackItem& stackItem)
{
ASSERT(stackItem.node());
Modified: trunk/Source/WebCore/xml/parser/XMLTreeBuilder.h (93459 => 93460)
--- trunk/Source/WebCore/xml/parser/XMLTreeBuilder.h 2011-08-20 00:41:58 UTC (rev 93459)
+++ trunk/Source/WebCore/xml/parser/XMLTreeBuilder.h 2011-08-20 00:45:52 UTC (rev 93460)
@@ -53,6 +53,7 @@
}
void processToken(const AtomicXMLToken&);
+ void finish();
private:
XMLTreeBuilder(NewXMLDocumentParser*, Document*);
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes