Changeset 62090 in webkit
- Timestamp:
- Jun 28, 2010 11:48:03 PM (14 years ago)
- Location:
- trunk
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r62088 r62090 1 2010-06-28 Adam Barth <abarth@webkit.org> 2 3 Reviewed by Eric Seidel. 4 5 HTML5 tree builder shouldn't ASSERT on HTML5lib test suite 6 https://bugs.webkit.org/show_bug.cgi?id=41335 7 8 Enable the remainder of the test suite and update expectations. 9 10 * html5lib/webkit-runner-expected-html5.txt: 11 * html5lib/webkit-runner-expected.txt: 12 * html5lib/webkit-runner.html: 13 1 14 2010-06-28 Johnny Ding <jnd@chromium.org> 2 15 -
trunk/LayoutTests/html5lib/webkit-runner-expected-html5.txt
r62076 r62090 1 CONSOLE MESSAGE: line 1: SyntaxError: Parse error 1 2 CONSOLE MESSAGE: line 2: PASS 2 3 CONSOLE MESSAGE: line 2: FOO<span>BAR</span>BAZ 3 4 Content-Type: text/plain 5 resources/tests1.dat: 6 2 7 20 8 21 9 22 10 23 11 24 12 25 13 26 14 28 15 29 16 30 17 31 18 32 19 33 20 34 21 35 22 37 23 41 24 50 25 51 26 52 27 53 28 56 29 57 30 58 31 59 32 60 33 61 34 67 35 68 36 69 37 70 38 71 39 72 40 73 41 74 42 75 43 76 44 78 45 79 46 80 47 81 48 82 49 85 50 86 51 89 52 90 53 93 54 94 55 95 56 96 57 97 58 98 59 99 60 100 61 101 62 103 63 104 64 106 65 107 66 108 67 109 68 110 69 111 70 112 71 4 72 resources/tests2.dat: 5 73 3 … … 21 89 26 22 90 27 91 28 23 92 29 24 93 32 … … 28 97 36 29 98 37 99 38 30 100 40 31 101 42 … … 39 109 53 40 110 54 41 5542 111 57 43 112 58 … … 61 130 7 62 131 132 resources/tests5.dat: 133 2 134 6 135 7 136 8 137 9 138 11 139 63 140 resources/tests6.dat: 64 141 1 65 266 142 6 67 143 8 … … 137 213 9 138 214 215 resources/tests9.dat: 216 1 217 2 218 4 219 5 220 6 221 7 222 8 223 9 224 10 225 11 226 12 227 13 228 14 229 15 230 16 231 17 232 18 233 19 234 22 235 23 236 24 237 25 238 239 resources/tests10.dat: 240 1 241 2 242 4 243 5 244 6 245 7 246 8 247 9 248 10 249 11 250 12 251 13 252 14 253 15 254 16 255 17 256 18 257 19 258 22 259 23 260 24 261 25 262 139 263 resources/tests11.dat: 140 264 1 … … 155 279 3 156 280 6 281 282 resources/tests15.dat: 283 1 284 2 285 4 286 5 287 6 288 7 289 8 290 9 291 10 292 11 293 12 294 13 157 295 158 296 resources/tests16.dat: … … 208 346 209 347 resources/webkit01.dat: 210 15211 348 17 212 349 -
trunk/LayoutTests/html5lib/webkit-runner-expected.txt
r62076 r62090 1 CONSOLE MESSAGE: line 1: SyntaxError: Parse error 1 2 CONSOLE MESSAGE: line 1: SyntaxError: Parse error 2 3 CONSOLE MESSAGE: line 2: PASS 3 4 CONSOLE MESSAGE: line 2: FOO<span>BAR</span>BAZ 5 resources/tests1.dat: 6 25 7 29 8 30 9 32 10 33 11 34 12 35 13 37 14 41 15 50 16 51 17 52 18 53 19 54 20 57 21 59 22 78 23 79 24 80 25 81 26 82 27 87 28 90 29 91 30 92 31 96 32 98 33 101 34 104 35 106 36 109 37 113 38 4 39 resources/tests2.dat: 5 40 6 … … 38 73 6 39 74 7 75 76 resources/tests5.dat: 77 2 78 6 79 7 80 8 81 9 82 16 40 83 41 84 resources/tests6.dat: … … 90 133 9 91 134 135 resources/tests9.dat: 136 1 137 2 138 5 139 6 140 7 141 8 142 9 143 10 144 11 145 12 146 13 147 14 148 15 149 16 150 17 151 18 152 19 153 20 154 21 155 22 156 23 157 24 158 25 159 160 resources/tests10.dat: 161 1 162 2 163 5 164 6 165 7 166 8 167 9 168 10 169 11 170 12 171 13 172 14 173 15 174 16 175 17 176 18 177 19 178 20 179 21 180 22 181 23 182 24 183 25 184 92 185 resources/tests11.dat: 93 186 1 … … 106 199 107 200 resources/tests14.dat: PASS 201 202 resources/tests15.dat: 203 3 204 4 205 5 206 6 207 7 208 11 209 12 210 13 108 211 109 212 resources/tests16.dat: -
trunk/LayoutTests/html5lib/webkit-runner.html
r62076 r62090 39 39 <script> 40 40 var test_files = [ 41 //'resources/tests1.dat',41 'resources/tests1.dat', 42 42 'resources/tests2.dat', 43 43 'resources/tests3.dat', 44 44 'resources/tests4.dat', 45 //'resources/tests5.dat',45 'resources/tests5.dat', 46 46 'resources/tests6.dat', 47 47 'resources/tests7.dat', 48 48 'resources/tests8.dat', 49 //'resources/tests9.dat',50 //'resources/tests10.dat',49 'resources/tests9.dat', 50 'resources/tests10.dat', 51 51 'resources/tests11.dat', 52 52 'resources/tests12.dat', 53 53 'resources/tests14.dat', 54 //'resources/tests15.dat',54 'resources/tests15.dat', 55 55 'resources/tests16.dat', 56 56 'resources/webkit01.dat', -
trunk/WebCore/ChangeLog
r62089 r62090 1 2010-06-28 Adam Barth <abarth@webkit.org> 2 3 Reviewed by Eric Seidel. 4 5 HTML5 tree builder shouldn't ASSERT on HTML5lib test suite 6 https://bugs.webkit.org/show_bug.cgi?id=41335 7 8 Sketch out the EndTag handling for InBodyMode. 9 10 * html/HTMLTreeBuilder.cpp: 11 (WebCore::HTMLTreeBuilder::processEndTag): 12 * html/HTMLTreeBuilder.h: 13 (WebCore::HTMLTreeBuilder::ElementStack::inScope): 14 (WebCore::HTMLTreeBuilder::clearActiveFormatingElementsUpToLastMarker): 15 (WebCore::HTMLTreeBuilder::generateImpliedEndTags): 16 1 17 2010-06-28 David Levin <levin@chromium.org> 2 18 -
trunk/WebCore/html/HTMLTreeBuilder.cpp
r62082 r62090 618 618 case InBodyMode: 619 619 ASSERT(insertionMode() == InBodyMode); 620 notImplemented(); 621 // FIXME: This implementation is a completely wrong but useful for testing. 620 if (token.name() == bodyTag) { 621 notImplemented(); 622 m_insertionMode = AfterBodyMode; 623 return; 624 } 625 if (token.name() == htmlTag) { 626 notImplemented(); 627 return; 628 } 629 if (token.name() == addressTag || token.name() == articleTag || token.name() == asideTag || token.name() == blockquoteTag || token.name() == buttonTag || token.name() == centerTag || token.name() == "details" || token.name() == dirTag || token.name() == divTag || token.name() == dlTag || token.name() == fieldsetTag || token.name() == "figure" || token.name() == footerTag || token.name() == headerTag || token.name() == hgroupTag || token.name() == listingTag || token.name() == menuTag || token.name() == navTag || token.name() == olTag || token.name() == preTag || token.name() == sectionTag || token.name() == ulTag) { 630 if (!m_openElements.inScope(token.name())) { 631 parseError(token); 632 return; 633 } 634 generateImpliedEndTags(); 635 if (currentElement()->tagQName() != token.name()) 636 parseError(token); 637 while (currentElement()->tagQName() != token.name()) 638 m_openElements.pop(); 639 m_openElements.pop(); 640 } 641 if (token.name() == formTag) { 642 RefPtr<Element> node = m_formElement.release(); 643 if (!node || !m_openElements.inScope(node.get())) { 644 parseError(token); 645 return; 646 } 647 generateImpliedEndTags(); 648 if (currentElement() != node.get()) 649 parseError(token); 650 m_openElements.remove(node.get()); 651 } 652 if (token.name() == pTag) { 653 notImplemented(); 654 return; 655 } 656 if (token.name() == liTag) { 657 notImplemented(); 658 return; 659 } 660 if (token.name() == ddTag || token.name() == dtTag) { 661 notImplemented(); 662 return; 663 } 664 if (token.name() == h1Tag || token.name() == h2Tag || token.name() == h3Tag || token.name() == h4Tag || token.name() == h5Tag || token.name() == h6Tag) { 665 notImplemented(); 666 return; 667 } 668 if (token.name() == "sarcasm") { 669 notImplemented(); // Take a deep breath. 670 return; 671 } 672 if (token.name() == aTag || token.name() == bTag || token.name() == bigTag || token.name() == codeTag || token.name() == emTag || token.name() == fontTag || token.name() == iTag || token.name() == nobrTag || token.name() == sTag || token.name() == smallTag || token.name() == strikeTag || token.name() == strongTag || token.name() == ttTag || token.name() == uTag) { 673 notImplemented(); 674 // FIXME: There's a complicated algorithm that goes here. 675 return; 676 } 677 if (token.name() == appletTag || token.name() == marqueeTag || token.name() == objectTag) { 678 if (!m_openElements.inScope(token.name())) { 679 parseError(token); 680 return; 681 } 682 generateImpliedEndTags(); 683 if (currentElement()->tagQName() != token.name()) 684 parseError(token); 685 while (currentElement()->tagQName() != token.name()) 686 m_openElements.pop(); 687 m_openElements.pop(); 688 // FIXME: m_activeFormattingElements should be more interesting 689 // object than a vector so we can call this method on it instead 690 // of on the tree builder. 691 clearActiveFormatingElementsUpToLastMarker(); 692 return; 693 } 694 if (token.name() == brTag) { 695 parseError(token); 696 reconstructTheActiveFormattingElements(); 697 insertSelfClosingElement(token); 698 m_framesetOk = false; 699 return; 700 } 701 // FIXME: We need an iterator over m_openElements to implement this 702 // correctly. 703 notImplemented(); 704 if (!m_openElements.inScope(token.name())) 705 return; 706 while (currentElement()->tagQName() != token.name()) 707 m_openElements.pop(); 622 708 m_openElements.pop(); 623 709 break; -
trunk/WebCore/html/HTMLTreeBuilder.h
r62082 r62090 162 162 } 163 163 164 bool inScope(const AtomicString& name) const 165 { 166 // FIXME: This algorithm is wrong. 167 for (ElementRecord* pos = m_top.get(); pos; pos = pos->next()) { 168 if (pos->element()->tagQName() == name) 169 return true; 170 } 171 return false; 172 } 173 174 bool inScope(Element* element) const 175 { 176 // FIXME: This algorithm is wrong. 177 return contains(element); 178 } 179 164 180 private: 165 181 OwnPtr<ElementRecord> m_top; … … 219 235 bool indexOfFirstUnopenFormattingElement(unsigned& firstUnopenElementIndex) const; 220 236 void reconstructTheActiveFormattingElements(); 237 void clearActiveFormatingElementsUpToLastMarker() { } 238 239 void generateImpliedEndTags() { } 221 240 222 241 Element* currentElement() { return m_openElements.top(); }
Note: See TracChangeset
for help on using the changeset viewer.