Changeset 62891 in webkit
- Timestamp:
- Jul 8, 2010 9:48:29 PM (14 years ago)
- Location:
- trunk
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r62889 r62891 1 2010-07-08 Adam Barth <abarth@webkit.org> 2 3 Reviewed by Eric Seidel. 4 5 Get my head wrapped around processCharacter 6 https://bugs.webkit.org/show_bug.cgi?id=41812 7 8 Minor test progression. 9 10 * html5lib/runner-expected-html5.txt: 11 1 12 2010-07-08 Tony Chang <tony@chromium.org> 2 13 -
trunk/LayoutTests/html5lib/runner-expected-html5.txt
r62643 r62891 659 659 | <table> 660 660 | <colgroup> 661 | "foo" 661 662 Expected: 662 663 | <html> -
trunk/WebCore/ChangeLog
r62889 r62891 1 2010-07-08 Adam Barth <abarth@webkit.org> 2 3 Reviewed by Eric Seidel. 4 5 Get my head wrapped around processCharacter 6 https://bugs.webkit.org/show_bug.cgi?id=41812 7 8 The bulk of the patch is just stubbing out functions to document what 9 the spec tells us to do. I'll implement these functions in subsequent 10 patches. 11 12 * html/HTMLConstructionSite.h: 13 (WebCore::HTMLConstructionSite::insertLeadingWhitespace): 14 (WebCore::HTMLConstructionSite::insertLeadingWhitespaceWithActiveFormattingElements): 15 * html/HTMLTreeBuilder.cpp: 16 (WebCore::HTMLTreeBuilder::processCharacter): 17 * html/HTMLTreeBuilder.h: 18 (WebCore::HTMLTreeBuilder::skipLeadingWhitespace): 19 1 20 2010-07-08 Tony Chang <tony@chromium.org> 2 21 -
trunk/WebCore/html/HTMLConstructionSite.h
r62621 r62891 30 30 #include "HTMLElementStack.h" 31 31 #include "HTMLFormattingElementList.h" 32 #include "NotImplemented.h" 32 33 #include <wtf/Noncopyable.h> 33 34 #include <wtf/PassRefPtr.h> … … 57 58 void insertScriptElement(AtomicHTMLToken&); 58 59 void insertTextNode(AtomicHTMLToken&); 60 61 bool insertLeadingWhitespace(AtomicHTMLToken&) 62 { 63 notImplemented(); 64 return false; 65 } 66 67 bool insertLeadingWhitespaceWithActiveFormattingElements(AtomicHTMLToken&) 68 { 69 notImplemented(); 70 return false; 71 } 59 72 60 73 void insertHTMLHtmlStartTagBeforeHTML(AtomicHTMLToken&); -
trunk/WebCore/html/HTMLTreeBuilder.cpp
r62706 r62891 62 62 namespace { 63 63 64 inline bool isTreeBuilderWhite Space(UChar cc)64 inline bool isTreeBuilderWhitepace(UChar cc) 65 65 { 66 66 return cc == '\t' || cc == '\x0A' || cc == '\x0C' || cc == '\x0D' || cc == ' '; 67 } 68 69 inline bool hasNonWhitespace(const String& string) 70 { 71 const UChar* characters = string.characters(); 72 const unsigned length = string.length(); 73 for (unsigned i = 0; i < length; ++i) { 74 if (!isTreeBuilderWhitepace(characters[i])) 75 return true; 76 } 77 return false; 67 78 } 68 79 … … 1990 2001 case InitialMode: 1991 2002 ASSERT(insertionMode() == InitialMode); 1992 notImplemented(); 2003 if (skipLeadingWhitespace(token)) 2004 return; 1993 2005 processDefaultForInitialMode(token); 1994 2006 // Fall through. 1995 2007 case BeforeHTMLMode: 1996 2008 ASSERT(insertionMode() == BeforeHTMLMode); 1997 notImplemented(); 2009 if (skipLeadingWhitespace(token)) 2010 return; 1998 2011 processDefaultForBeforeHTMLMode(token); 1999 2012 // Fall through. 2000 2013 case BeforeHeadMode: 2001 2014 ASSERT(insertionMode() == BeforeHeadMode); 2002 notImplemented(); 2015 if (skipLeadingWhitespace(token)) 2016 return; 2003 2017 processDefaultForBeforeHeadMode(token); 2004 2018 // Fall through. 2005 2019 case InHeadMode: 2006 2020 ASSERT(insertionMode() == InHeadMode); 2007 notImplemented(); 2021 if (m_tree.insertLeadingWhitespace(token)) 2022 return; 2008 2023 processDefaultForInHeadMode(token); 2009 2024 // Fall through. 2010 2025 case AfterHeadMode: 2011 2026 ASSERT(insertionMode() == AfterHeadMode); 2012 notImplemented(); 2027 if (m_tree.insertLeadingWhitespace(token)) 2028 return; 2013 2029 processDefaultForAfterHeadMode(token); 2014 2030 // Fall through … … 2019 2035 m_tree.reconstructTheActiveFormattingElements(); 2020 2036 m_tree.insertTextNode(token); 2037 if (m_framesetOk && hasNonWhitespace(token.characters())) 2038 m_framesetOk = false; 2021 2039 break; 2022 2040 case InTableMode: … … 2027 2045 m_tree.insertTextNode(token); 2028 2046 break; 2047 case InTableTextMode: 2048 notImplemented(); // Crazy pending characters. 2049 break; 2029 2050 case InColumnGroupMode: 2030 2051 ASSERT(insertionMode() == InColumnGroupMode); 2031 notImplemented(); 2052 if (m_tree.insertLeadingWhitespace(token)) 2053 return; 2054 if (!processColgroupEndTagForInColumnGroup()) { 2055 ASSERT(m_isParsingFragment); 2056 return; 2057 } 2058 processCharacter(token); 2032 2059 break; 2033 2060 case AfterBodyMode: … … 2044 2071 case InHeadNoscriptMode: 2045 2072 ASSERT(insertionMode() == InHeadNoscriptMode); 2073 if (m_tree.insertLeadingWhitespace(token)) 2074 return; 2046 2075 processDefaultForInHeadNoscriptMode(token); 2047 2076 processToken(token); … … 2049 2078 case InFramesetMode: 2050 2079 case AfterFramesetMode: 2051 case AfterAfterFramesetMode:2052 2080 ASSERT(insertionMode() == InFramesetMode || insertionMode() == AfterFramesetMode || insertionMode() == AfterAfterFramesetMode); 2081 if (m_tree.insertLeadingWhitespace(token)) 2082 return; 2053 2083 parseError(token); 2084 // FIXME: We probably need some sort of loop here. We're basically 2085 // filtering out the non-whitespace characters. 2054 2086 break; 2055 2087 case InSelectInTableMode: … … 2058 2090 m_tree.insertTextNode(token); 2059 2091 break; 2060 case InTableTextMode:2061 2092 case InForeignContentMode: 2062 2093 notImplemented(); 2094 break; 2095 case AfterAfterFramesetMode: 2096 if (m_tree.insertLeadingWhitespaceWithActiveFormattingElements(token)) 2097 return; 2098 parseError(token); 2099 // FIXME: We probably need some sort of loop here. We're basically 2100 // filtering out the non-whitespace characters. 2063 2101 break; 2064 2102 } -
trunk/WebCore/html/HTMLTreeBuilder.h
r62624 r62891 155 155 void callTheAdoptionAgency(AtomicHTMLToken&); 156 156 157 bool skipLeadingWhitespace(AtomicHTMLToken&) 158 { 159 notImplemented(); 160 return false; 161 } 162 157 163 void closeTheCell(); 158 164
Note: See TracChangeset
for help on using the changeset viewer.