Changeset 139953 in webkit
- Timestamp:
- Jan 16, 2013 7:36:48 PM (11 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r139952 r139953 1 2013-01-16 Tony Gentilcore <tonyg@chromium.org> 2 3 Introduce a method to build the tree from a CompactHTMLToken 4 https://bugs.webkit.org/show_bug.cgi?id=107082 5 6 Reviewed by Adam Barth. 7 8 No new tests because covered by existing fast/parser tests. 9 10 * html/parser/HTMLDocumentParser.cpp: 11 (WebCore): 12 (WebCore::HTMLDocumentParser::constructTreeFromCompactHTMLToken): 13 * html/parser/HTMLDocumentParser.h: 14 * html/parser/HTMLToken.h: 15 (AtomicHTMLToken): 16 (WebCore::AtomicHTMLToken::create): 17 (WebCore::AtomicHTMLToken::AtomicHTMLToken): 18 * xml/parser/MarkupTokenBase.h: 19 (WebCore::AtomicMarkupTokenBase::AtomicMarkupTokenBase): 20 (AtomicMarkupTokenBase): 21 1 22 2013-01-16 Roger Fong <roger_fong@apple.com> 2 23 -
trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp
r139950 r139953 341 341 } 342 342 343 #if ENABLE(THREADED_HTML_PARSER) 344 345 void HTMLDocumentParser::constructTreeFromCompactHTMLToken(const CompactHTMLToken& compactToken) 346 { 347 RefPtr<AtomicHTMLToken> token = AtomicHTMLToken::create(compactToken); 348 m_treeBuilder->constructTree(token.get()); 349 } 350 351 #endif 352 343 353 bool HTMLDocumentParser::hasInsertionPoint() 344 354 { -
trunk/Source/WebCore/html/parser/HTMLDocumentParser.h
r139950 r139953 128 128 void pumpTokenizerIfPossible(SynchronousMode); 129 129 void constructTreeFromHTMLToken(HTMLToken&); 130 #if ENABLE(THREADED_HTML_PARSER) 131 void constructTreeFromCompactHTMLToken(const CompactHTMLToken&); 132 #endif 130 133 131 134 void runScriptsForPausedTreeBuilder(); -
trunk/Source/WebCore/html/parser/HTMLToken.h
r139533 r139953 27 27 #define HTMLToken_h 28 28 29 #include "CompactHTMLToken.h" 29 30 #include "HTMLTokenTypes.h" 30 31 #include "MarkupTokenBase.h" … … 69 70 } 70 71 72 #if ENABLE(THREADED_HTML_PARSER) 73 74 static PassRefPtr<AtomicHTMLToken> create(const CompactHTMLToken& token) 75 { 76 return adoptRef(new AtomicHTMLToken(token)); 77 } 78 79 #endif 80 71 81 static PassRefPtr<AtomicHTMLToken> create(HTMLTokenTypes::Type type, const AtomicString& name, const Vector<Attribute>& attributes = Vector<Attribute>()) 72 82 { … … 85 95 } 86 96 97 #if ENABLE(THREADED_HTML_PARSER) 98 99 explicit AtomicHTMLToken(const CompactHTMLToken& token) 100 : AtomicMarkupTokenBase<HTMLToken>(token.type()) 101 { 102 switch (m_type) { 103 case HTMLTokenTypes::Uninitialized: 104 ASSERT_NOT_REACHED(); 105 break; 106 case HTMLTokenTypes::DOCTYPE: 107 m_name = token.data(); 108 m_doctypeData = adoptPtr(new HTMLToken::DoctypeData()); 109 m_doctypeData->m_hasPublicIdentifier = true; 110 m_doctypeData->m_publicIdentifier.append(token.publicIdentifier().characters(), token.publicIdentifier().length()); 111 m_doctypeData->m_hasSystemIdentifier = true; 112 m_doctypeData->m_systemIdentifier.append(token.systemIdentifier().characters(), token.systemIdentifier().length()); 113 break; 114 case HTMLTokenTypes::EndOfFile: 115 break; 116 case HTMLTokenTypes::StartTag: 117 m_attributes.reserveInitialCapacity(token.attributes().size()); 118 for (Vector<CompactAttribute>::const_iterator it = token.attributes().begin(); it != token.attributes().end(); ++it) 119 m_attributes.append(Attribute(QualifiedName(nullAtom, it->name(), nullAtom), it->value())); 120 // Fall through! 121 case HTMLTokenTypes::EndTag: 122 m_selfClosing = token.selfClosing(); 123 m_name = AtomicString(token.data()); 124 break; 125 case HTMLTokenTypes::Comment: 126 m_data = token.data(); 127 break; 128 case HTMLTokenTypes::Character: 129 m_externalCharacters = token.data().characters(); 130 m_externalCharactersLength = token.data().length(); 131 break; 132 default: 133 break; 134 } 135 } 136 137 #endif 138 87 139 AtomicHTMLToken(HTMLTokenTypes::Type type, const AtomicString& name, const Vector<Attribute>& attributes = Vector<Attribute>()) 88 140 : AtomicMarkupTokenBase<HTMLToken>(type, name, attributes) -
trunk/Source/WebCore/xml/parser/MarkupTokenBase.h
r139945 r139953 474 474 } 475 475 476 explicit AtomicMarkupTokenBase(typename Token::Type::Type type) 477 : m_type(type) 478 , m_externalCharacters(0) 479 , m_externalCharactersLength(0) 480 , m_isAll8BitData(false) 481 , m_selfClosing(false) 482 { 483 } 484 476 485 AtomicMarkupTokenBase(typename Token::Type::Type type, const AtomicString& name, const Vector<Attribute>& attributes = Vector<Attribute>()) 477 486 : m_type(type)
Note: See TracChangeset
for help on using the changeset viewer.