Changeset 142607 in webkit
- Timestamp:
- Feb 12, 2013 5:27:45 AM (11 years ago)
- Location:
- trunk
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r142606 r142607 1 2013-02-12 Sheriff Bot <webkit.review.bot@gmail.com> 2 3 Unreviewed, rolling out r142531. 4 http://trac.webkit.org/changeset/142531 5 https://bugs.webkit.org/show_bug.cgi?id=109569 6 7 Causes html5lib/run-template layout test to crash. (Requested 8 by atwilson_ on #webkit). 9 10 * html5lib/resources/template.dat: 11 1 12 2013-02-12 Zan Dobersek <zdobersek@igalia.com> 2 13 -
trunk/LayoutTests/html5lib/resources/template.dat
r142531 r142607 984 984 | <td> 985 985 | "Foo" 986 987 #data988 <template></figcaption><sub><table></table>989 #errors990 #document991 | <html>992 | <head>993 | <template>994 | #document-fragment995 | <sub>996 | <table>997 | <body>998 999 #data1000 <template><template>1001 #errors1002 #document1003 | <html>1004 | <head>1005 | <template>1006 | #document-fragment1007 | <template>1008 | #document-fragment1009 | <body>1010 1011 #data1012 <template><div>1013 #errors1014 #document1015 | <html>1016 | <head>1017 | <template>1018 | #document-fragment1019 | <div>1020 | <body>1021 1022 #data1023 <template><template><div>1024 #errors1025 #document1026 | <html>1027 | <head>1028 | <template>1029 | #document-fragment1030 | <template>1031 | #document-fragment1032 | <div>1033 | <body>1034 1035 #data1036 <template><template><table>1037 #errors1038 #document1039 | <html>1040 | <head>1041 | <template>1042 | #document-fragment1043 | <template>1044 | #document-fragment1045 | <table>1046 | <body>1047 1048 #data1049 <template><template><tbody>1050 #errors1051 #document1052 | <html>1053 | <head>1054 | <template>1055 | #document-fragment1056 | <template>1057 | #document-fragment1058 | <tbody>1059 | <body>1060 1061 #data1062 <template><template><tr>1063 #errors1064 #document1065 | <html>1066 | <head>1067 | <template>1068 | #document-fragment1069 | <template>1070 | #document-fragment1071 | <tr>1072 | <body>1073 1074 #data1075 <template><template><td>1076 #errors1077 #document1078 | <html>1079 | <head>1080 | <template>1081 | #document-fragment1082 | <template>1083 | #document-fragment1084 | <td>1085 | <body>1086 1087 #data1088 <template><template><caption>1089 #errors1090 #document1091 | <html>1092 | <head>1093 | <template>1094 | #document-fragment1095 | <template>1096 | #document-fragment1097 | <caption>1098 | <body>1099 1100 #data1101 <template><template><colgroup>1102 #errors1103 #document1104 | <html>1105 | <head>1106 | <template>1107 | #document-fragment1108 | <template>1109 | #document-fragment1110 | <colgroup>1111 | <body>1112 1113 #data1114 <template><template><col>1115 #errors1116 #document1117 | <html>1118 | <head>1119 | <template>1120 | #document-fragment1121 | <template>1122 | #document-fragment1123 | <col>1124 | <body>1125 1126 #data1127 <template><template><tbody><select>1128 #errors1129 #document1130 | <html>1131 | <head>1132 | <template>1133 | #document-fragment1134 | <template>1135 | #document-fragment1136 | <tbody>1137 | <select>1138 | <body>1139 1140 #data1141 <template><template><table>Foo1142 #errors1143 #document1144 | <html>1145 | <head>1146 | <template>1147 | #document-fragment1148 | <template>1149 | #document-fragment1150 | <table>1151 | "Foo"1152 | <body>1153 1154 #data1155 <template><template><frame>1156 #errors1157 #document1158 | <html>1159 | <head>1160 | <template>1161 | #document-fragment1162 | <template>1163 | #document-fragment1164 | <frame>1165 | <body>1166 1167 #data1168 <template><template><script>var i1169 #errors1170 #document1171 | <html>1172 | <head>1173 | <template>1174 | #document-fragment1175 | <template>1176 | #document-fragment1177 | <script>1178 | "var i"1179 | <body>1180 1181 #data1182 <template><template><style>var i1183 #errors1184 #document1185 | <html>1186 | <head>1187 | <template>1188 | #document-fragment1189 | <template>1190 | #document-fragment1191 | <style>1192 | "var i"1193 | <body> -
trunk/Source/WebCore/ChangeLog
r142606 r142607 1 2013-02-12 Sheriff Bot <webkit.review.bot@gmail.com> 2 3 Unreviewed, rolling out r142531. 4 http://trac.webkit.org/changeset/142531 5 https://bugs.webkit.org/show_bug.cgi?id=109569 6 7 Causes html5lib/run-template layout test to crash. (Requested 8 by atwilson_ on #webkit). 9 10 * html/parser/HTMLTreeBuilder.cpp: 11 (WebCore::HTMLTreeBuilder::processTemplateEndTag): 12 (WebCore::HTMLTreeBuilder::processColgroupEndTagForInColumnGroup): 13 (WebCore::HTMLTreeBuilder::processEndOfFile): 14 * html/parser/HTMLTreeBuilder.h: 15 (HTMLTreeBuilder): 16 1 17 2013-02-12 Zan Dobersek <zdobersek@igalia.com> 2 18 -
trunk/Source/WebCore/html/parser/HTMLTreeBuilder.cpp
r142552 r142607 970 970 resetInsertionModeAppropriately(); 971 971 } 972 973 bool HTMLTreeBuilder::popAllTemplatesForEndOfFile()974 {975 if (m_templateInsertionModes.isEmpty())976 return false;977 978 while (!m_templateInsertionModes.isEmpty()) {979 if (m_tree.currentIsRootNode())980 return false;981 if (m_tree.currentNode()->hasTagName(templateTag))982 m_templateInsertionModes.removeLast();983 m_tree.openElements()->pop();984 }985 986 resetInsertionModeAppropriately();987 return true;988 }989 972 #endif 990 973 991 974 bool HTMLTreeBuilder::processColgroupEndTagForInColumnGroup() 992 975 { 993 bool ignoreFakeEndTag = m_tree.currentIsRootNode(); 994 #if ENABLE(TEMPLATE_ELEMENT) 995 ignoreFakeEndTag = ignoreFakeEndTag || m_tree.currentNode()->hasTagName(templateTag); 996 #endif 997 998 if (ignoreFakeEndTag) { 976 if (m_tree.currentIsRootNode() || m_tree.currentNode()->hasTagName(templateTag)) { 999 977 ASSERT(isParsingFragmentOrTemplateContents()); 1000 978 // FIXME: parse error … … 2524 2502 { 2525 2503 ASSERT(token->type() == HTMLTokenTypes::EndOfFile); 2504 #if ENABLE(TEMPLATE_ELEMENT) 2505 m_templateInsertionModes.clear(); 2506 #endif 2526 2507 switch (insertionMode()) { 2527 2508 case InitialMode: … … 2556 2537 #endif 2557 2538 notImplemented(); // Emit parse error based on what elements are still open. 2558 #if ENABLE(TEMPLATE_ELEMENT)2559 if (popAllTemplatesForEndOfFile()) {2560 processEndOfFile(token);2561 return;2562 }2563 #endif2564 2539 break; 2565 2540 case AfterBodyMode: … … 2576 2551 ASSERT(insertionMode() == AfterFramesetMode || insertionMode() == AfterAfterFramesetMode); 2577 2552 break; 2578 case InColumnGroupMode:2579 if (m_tree.currentIsRootNode()) {2580 ASSERT(isParsingFragment());2581 return; // FIXME: Should we break here instead of returning?2582 }2583 #if ENABLE(TEMPLATE_ELEMENT)2584 ASSERT(m_tree.currentNode()->hasTagName(colgroupTag));2585 #else2586 ASSERT(m_tree.currentNode()->hasTagName(colgroupTag) || m_tree.currentNode()->hasTagName(templateTag));2587 #endif2588 processColgroupEndTagForInColumnGroup();2589 // Fall through2590 2553 case InFramesetMode: 2591 2554 case InTableMode: … … 2593 2556 case InSelectInTableMode: 2594 2557 case InSelectMode: 2595 ASSERT(insertionMode() == InSelectMode || insertionMode() == InSelectInTableMode || insertionMode() == InTableMode || insertionMode() == InFramesetMode || insertionMode() == InTableBodyMode || insertionMode() == InColumnGroupMode);2558 ASSERT(insertionMode() == InSelectMode || insertionMode() == InSelectInTableMode || insertionMode() == InTableMode || insertionMode() == InFramesetMode || insertionMode() == InTableBodyMode); 2596 2559 if (m_tree.currentNode() != m_tree.openElements()->rootNode()) 2597 2560 parseError(token); 2598 2599 #if ENABLE(TEMPLATE_ELEMENT) 2600 if (popAllTemplatesForEndOfFile()) { 2601 processEndOfFile(token); 2602 return; 2603 } 2604 #endif 2605 break; 2561 break; 2562 case InColumnGroupMode: 2563 if (m_tree.currentIsRootNode()) { 2564 ASSERT(isParsingFragment()); 2565 return; // FIXME: Should we break here instead of returning? 2566 } 2567 if (!processColgroupEndTagForInColumnGroup()) { 2568 ASSERT(isParsingFragmentOrTemplateContents()); 2569 return; // FIXME: Should we break here instead of returning? 2570 } 2571 processEndOfFile(token); 2572 return; 2606 2573 case InTableTextMode: 2607 2574 defaultForInTableText(); … … 2618 2585 return; 2619 2586 case TemplateContentsMode: 2620 #if ENABLE(TEMPLATE_ELEMENT) 2587 if (m_tree.currentIsRootNode()) { 2588 ASSERT(isParsingFragment()); 2589 break; 2590 } 2621 2591 parseError(token); 2622 if (popAllTemplatesForEndOfFile()) { 2623 processEndOfFile(token); 2624 return; 2625 } 2626 break; 2627 #else 2628 ASSERT_NOT_REACHED(); 2629 #endif 2592 m_tree.openElements()->pop(); 2593 resetInsertionModeAppropriately(); 2594 processEndOfFile(token); 2595 return; 2630 2596 } 2631 2597 ASSERT(m_tree.currentNode()); -
trunk/Source/WebCore/html/parser/HTMLTreeBuilder.h
r142531 r142607 196 196 void processTemplateStartTag(AtomicHTMLToken*); 197 197 void processTemplateEndTag(AtomicHTMLToken*); 198 bool popAllTemplatesForEndOfFile();199 198 #endif 200 199
Note: See TracChangeset
for help on using the changeset viewer.