Changeset 60897 in webkit
- Timestamp:
- Jun 9, 2010 10:05:17 AM (14 years ago)
- Location:
- trunk/WebCore
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebCore/ChangeLog
r60896 r60897 1 2010-06-09 Tony Gentilcore <tonyg@chromium.org> 2 3 Reviewed by Adam Barth. 4 5 Fix script-after-frameset test in HTML5 parser 6 https://bugs.webkit.org/show_bug.cgi?id=40274 7 8 The old HTMLTokenizer enforced this in scriptHandler(). We don't use 9 that code anymore, so it needs to be implemented. The spec does this 10 as a part of "insertion mode"->"after frameset", so this adds an 11 InsertionMode enum instead of a one-off boolean. 12 13 No new tests because covered by fast/tokenizer/script-after-frameset.html 14 15 * html/HTML5TreeBuilder.cpp: 16 (WebCore::HTML5TreeBuilder::HTML5TreeBuilder): 17 (WebCore::HTML5TreeBuilder::passTokenToLegacyParser): 18 * html/HTML5TreeBuilder.h: 19 (WebCore::HTML5TreeBuilder::): 20 (WebCore::HTML5TreeBuilder::setInsertionMode): 21 (WebCore::HTML5TreeBuilder::insertionMode): 22 1 23 2010-06-09 Kwang Yul Seo <skyul@company100.net> 2 24 -
trunk/WebCore/html/HTML5TreeBuilder.cpp
r60826 r60897 47 47 , m_reportErrors(reportErrors) 48 48 , m_isPaused(false) 49 , m_insertionMode(Initial) 49 50 , m_lexer(lexer) 50 51 , m_legacyHTMLParser(new HTMLParser(document, reportErrors)) … … 169 170 } 170 171 if (token.type() == HTML5Token::EndTag) { 171 if (oldStyleToken.tagName == scriptTag ) {172 if (oldStyleToken.tagName == scriptTag && insertionMode() != AfterFrameset) { 172 173 if (m_lastScriptElement) { 173 174 ASSERT(m_lastScriptElementStartLine != uninitializedLineNumberValue); … … 176 177 m_lastScriptElementStartLine = uninitializedLineNumberValue; 177 178 } 178 } 179 } else if (oldStyleToken.tagName == framesetTag) 180 setInsertionMode(AfterFrameset); 179 181 } 180 182 return result.release(); -
trunk/WebCore/html/HTML5TreeBuilder.h
r60553 r60897 60 60 61 61 private: 62 // Represents HTML5 "insertion mode" 63 // http://www.w3.org/TR/html5/syntax.html#insertion-mode 64 // FIXME: Implement remainder of states. 65 enum InsertionMode { 66 Initial, 67 AfterFrameset, 68 }; 69 62 70 PassRefPtr<Node> passTokenToLegacyParser(HTML5Token&); 63 71 PassRefPtr<Node> processToken(HTML5Token&, UChar currentCharacter = 0); … … 66 74 void handleScriptEndTag(Element*, int scriptStartLine); 67 75 76 void setInsertionMode(InsertionMode value) { m_insertionMode = value; } 77 InsertionMode insertionMode() const { return m_insertionMode; } 78 68 79 Document* m_document; // This is only used by the m_legacyParser for now. 69 80 bool m_reportErrors; 70 81 bool m_isPaused; 82 83 InsertionMode m_insertionMode; 84 71 85 // HTML5 spec requires that we be able to change the state of the lexer 72 86 // from within parser actions.
Note: See TracChangeset
for help on using the changeset viewer.