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

Reply via email to