Title: [140573] trunk/Source/WebCore
- Revision
- 140573
- Author
- e...@webkit.org
- Date
- 2013-01-23 12:36:01 -0800 (Wed, 23 Jan 2013)
Log Message
HTMLCompactToken needs to include the forceQuirks bool from HTMLToken
https://bugs.webkit.org/show_bug.cgi?id=107713
Reviewed by Tony Gentilcore.
Before we were only getting "quirks mode" when the system/public identifiers
were known quirks identifiers. Now we'll correctly get quirks mode for any
parse error during DOCTYPE parsing.
This passes a bunch more tests.
* html/parser/CompactHTMLToken.cpp:
(WebCore::CompactHTMLToken::CompactHTMLToken):
* html/parser/CompactHTMLToken.h:
(WebCore::CompactHTMLToken::doctypeForcesQuirks):
(CompactHTMLToken):
* html/parser/HTMLToken.h:
(WebCore::AtomicHTMLToken::AtomicHTMLToken):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (140572 => 140573)
--- trunk/Source/WebCore/ChangeLog 2013-01-23 20:21:19 UTC (rev 140572)
+++ trunk/Source/WebCore/ChangeLog 2013-01-23 20:36:01 UTC (rev 140573)
@@ -1,3 +1,23 @@
+2013-01-23 Eric Seidel <e...@webkit.org>
+
+ HTMLCompactToken needs to include the forceQuirks bool from HTMLToken
+ https://bugs.webkit.org/show_bug.cgi?id=107713
+
+ Reviewed by Tony Gentilcore.
+
+ Before we were only getting "quirks mode" when the system/public identifiers
+ were known quirks identifiers. Now we'll correctly get quirks mode for any
+ parse error during DOCTYPE parsing.
+ This passes a bunch more tests.
+
+ * html/parser/CompactHTMLToken.cpp:
+ (WebCore::CompactHTMLToken::CompactHTMLToken):
+ * html/parser/CompactHTMLToken.h:
+ (WebCore::CompactHTMLToken::doctypeForcesQuirks):
+ (CompactHTMLToken):
+ * html/parser/HTMLToken.h:
+ (WebCore::AtomicHTMLToken::AtomicHTMLToken):
+
2013-01-23 Brady Eidson <beid...@apple.com>
Recursion handling cancelled authentication challenges in NetworkProcess
Modified: trunk/Source/WebCore/html/parser/CompactHTMLToken.cpp (140572 => 140573)
--- trunk/Source/WebCore/html/parser/CompactHTMLToken.cpp 2013-01-23 20:21:19 UTC (rev 140572)
+++ trunk/Source/WebCore/html/parser/CompactHTMLToken.cpp 2013-01-23 20:36:01 UTC (rev 140573)
@@ -45,6 +45,7 @@
CompactHTMLToken::CompactHTMLToken(const HTMLToken& token, const TextPosition& textPosition)
: m_type(token.type())
, m_isAll8BitData(false)
+ , m_doctypeForcesQuirks(false)
, m_textPosition(textPosition)
{
switch (m_type) {
@@ -58,6 +59,7 @@
String publicIdentifier(token.publicIdentifier().data(), token.publicIdentifier().size());
String systemIdentifier(token.systemIdentifier().data(), token.systemIdentifier().size());
m_attributes.append(CompactAttribute(publicIdentifier, systemIdentifier));
+ m_doctypeForcesQuirks = token.forceQuirks();
break;
}
case HTMLTokenTypes::EndOfFile:
Modified: trunk/Source/WebCore/html/parser/CompactHTMLToken.h (140572 => 140573)
--- trunk/Source/WebCore/html/parser/CompactHTMLToken.h 2013-01-23 20:21:19 UTC (rev 140572)
+++ trunk/Source/WebCore/html/parser/CompactHTMLToken.h 2013-01-23 20:36:01 UTC (rev 140573)
@@ -72,11 +72,13 @@
// size of CompactHTMLToken, we just use the m_attributes vector.
const String& publicIdentifier() const { return m_attributes[0].name(); }
const String& systemIdentifier() const { return m_attributes[0].value(); }
+ bool doctypeForcesQuirks() const { return m_doctypeForcesQuirks; }
private:
unsigned m_type : 4;
unsigned m_selfClosing : 1;
unsigned m_isAll8BitData : 1;
+ unsigned m_doctypeForcesQuirks: 1;
String m_data; // "name", "characters", or "data" depending on m_type
Vector<CompactAttribute> m_attributes;
Modified: trunk/Source/WebCore/html/parser/HTMLToken.h (140572 => 140573)
--- trunk/Source/WebCore/html/parser/HTMLToken.h 2013-01-23 20:21:19 UTC (rev 140572)
+++ trunk/Source/WebCore/html/parser/HTMLToken.h 2013-01-23 20:36:01 UTC (rev 140573)
@@ -310,6 +310,7 @@
m_doctypeData->m_publicIdentifier.append(token.publicIdentifier().characters(), token.publicIdentifier().length());
m_doctypeData->m_hasSystemIdentifier = true;
m_doctypeData->m_systemIdentifier.append(token.systemIdentifier().characters(), token.systemIdentifier().length());
+ m_doctypeData->m_forceQuirks = token.doctypeForcesQuirks();
break;
case HTMLTokenTypes::EndOfFile:
break;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes