Changeset 140569 in webkit
- Timestamp:
- Jan 23, 2013 12:13:00 PM (11 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r140560 r140569 1 2013-01-23 Eric Seidel <eric@webkit.org> 2 3 Remove DocType support from MarkupTokenBase now that NEW_XML is gone 4 https://bugs.webkit.org/show_bug.cgi?id=107709 5 6 Reviewed by Adam Barth. 7 8 Just moving code out of MarkupTokenBase and into HTMLToken. 9 The test for this change is if it compiles. :) Which it does. 10 11 * html/parser/HTMLToken.h: 12 (DoctypeData): 13 (WebCore::DoctypeData::DoctypeData): 14 (WebCore): 15 (WebCore::HTMLToken::appendToName): 16 (WebCore::HTMLToken::name): 17 (HTMLToken): 18 (WebCore::HTMLToken::beginDOCTYPE): 19 (WebCore::HTMLToken::publicIdentifier): 20 (WebCore::HTMLToken::systemIdentifier): 21 (WebCore::HTMLToken::setPublicIdentifierToEmptyString): 22 (WebCore::HTMLToken::setSystemIdentifierToEmptyString): 23 (WebCore::HTMLToken::appendToPublicIdentifier): 24 (WebCore::HTMLToken::appendToSystemIdentifier): 25 (WebCore::HTMLToken::releaseDoctypeData): 26 (WebCore::AtomicHTMLToken::AtomicHTMLToken): 27 (AtomicHTMLToken): 28 * html/parser/HTMLTokenTypes.h: 29 * xml/parser/MarkupTokenBase.h: 30 (WebCore): 31 (MarkupTokenBase): 32 1 33 2013-01-23 Alexis Menard <alexis@webkit.org> 2 34 -
trunk/Source/WebCore/html/parser/HTMLToken.h
r140485 r140569 35 35 namespace WebCore { 36 36 37 class HTMLToken : public MarkupTokenBase<HTMLTokenTypes, HTMLTokenTypes::DoctypeData> { 37 class DoctypeData { 38 WTF_MAKE_NONCOPYABLE(DoctypeData); 39 public: 40 DoctypeData() 41 : m_hasPublicIdentifier(false) 42 , m_hasSystemIdentifier(false) 43 , m_forceQuirks(false) 44 { 45 } 46 47 // FIXME: This should use String instead of Vector<UChar>. 48 bool m_hasPublicIdentifier; 49 bool m_hasSystemIdentifier; 50 WTF::Vector<UChar> m_publicIdentifier; 51 WTF::Vector<UChar> m_systemIdentifier; 52 bool m_forceQuirks; 53 }; 54 55 class HTMLToken : public MarkupTokenBase<HTMLTokenTypes> { 38 56 public: 39 57 void appendToName(UChar character) 40 58 { 41 59 ASSERT(m_type == HTMLTokenTypes::StartTag || m_type == HTMLTokenTypes::EndTag || m_type == HTMLTokenTypes::DOCTYPE); 42 MarkupTokenBase<HTMLTokenTypes , HTMLTokenTypes::DoctypeData>::appendToName(character);60 MarkupTokenBase<HTMLTokenTypes>::appendToName(character); 43 61 } 44 62 … … 46 64 { 47 65 ASSERT(m_type == HTMLTokenTypes::StartTag || m_type == HTMLTokenTypes::EndTag || m_type == HTMLTokenTypes::DOCTYPE); 48 return MarkupTokenBase<HTMLTokenTypes , HTMLTokenTypes::DoctypeData>::name();66 return MarkupTokenBase<HTMLTokenTypes>::name(); 49 67 } 50 68 … … 60 78 m_doctypeData->m_forceQuirks = true; 61 79 } 80 81 void beginDOCTYPE() 82 { 83 ASSERT(m_type == HTMLTokenTypes::Uninitialized); 84 m_type = HTMLTokenTypes::DOCTYPE; 85 m_doctypeData = adoptPtr(new DoctypeData); 86 } 87 88 void beginDOCTYPE(UChar character) 89 { 90 ASSERT(character); 91 beginDOCTYPE(); 92 m_data.append(character); 93 m_orAllData |= character; 94 } 95 96 // FIXME: Distinguish between a missing public identifer and an empty one. 97 const WTF::Vector<UChar>& publicIdentifier() const 98 { 99 ASSERT(m_type == HTMLTokenTypes::DOCTYPE); 100 return m_doctypeData->m_publicIdentifier; 101 } 102 103 // FIXME: Distinguish between a missing system identifer and an empty one. 104 const WTF::Vector<UChar>& systemIdentifier() const 105 { 106 ASSERT(m_type == HTMLTokenTypes::DOCTYPE); 107 return m_doctypeData->m_systemIdentifier; 108 } 109 110 void setPublicIdentifierToEmptyString() 111 { 112 ASSERT(m_type == HTMLTokenTypes::DOCTYPE); 113 m_doctypeData->m_hasPublicIdentifier = true; 114 m_doctypeData->m_publicIdentifier.clear(); 115 } 116 117 void setSystemIdentifierToEmptyString() 118 { 119 ASSERT(m_type == HTMLTokenTypes::DOCTYPE); 120 m_doctypeData->m_hasSystemIdentifier = true; 121 m_doctypeData->m_systemIdentifier.clear(); 122 } 123 124 void appendToPublicIdentifier(UChar character) 125 { 126 ASSERT(character); 127 ASSERT(m_type == HTMLTokenTypes::DOCTYPE); 128 ASSERT(m_doctypeData->m_hasPublicIdentifier); 129 m_doctypeData->m_publicIdentifier.append(character); 130 } 131 132 void appendToSystemIdentifier(UChar character) 133 { 134 ASSERT(character); 135 ASSERT(m_type == HTMLTokenTypes::DOCTYPE); 136 ASSERT(m_doctypeData->m_hasSystemIdentifier); 137 m_doctypeData->m_systemIdentifier.append(character); 138 } 139 140 PassOwnPtr<DoctypeData> releaseDoctypeData() 141 { 142 return m_doctypeData.release(); 143 } 144 145 private: 146 // For DOCTYPE 147 OwnPtr<DoctypeData> m_doctypeData; 62 148 }; 63 149 … … 220 306 case HTMLTokenTypes::DOCTYPE: 221 307 m_name = token.data(); 222 m_doctypeData = adoptPtr(new HTMLToken::DoctypeData());308 m_doctypeData = adoptPtr(new DoctypeData()); 223 309 m_doctypeData->m_hasPublicIdentifier = true; 224 310 m_doctypeData->m_publicIdentifier.append(token.publicIdentifier().characters(), token.publicIdentifier().length()); … … 301 387 302 388 // For DOCTYPE 303 OwnPtr< HTMLTokenTypes::DoctypeData> m_doctypeData;389 OwnPtr<DoctypeData> m_doctypeData; 304 390 305 391 // For StartTag and EndTag -
trunk/Source/WebCore/html/parser/HTMLTokenTypes.h
r139533 r140569 43 43 EndOfFile, 44 44 }; 45 46 class DoctypeData : public DoctypeDataBase {47 WTF_MAKE_NONCOPYABLE(DoctypeData);48 public:49 DoctypeData()50 : m_forceQuirks(false)51 {52 }53 54 bool m_forceQuirks;55 };56 45 }; 57 46 -
trunk/Source/WebCore/xml/parser/MarkupTokenBase.h
r140403 r140569 46 46 } 47 47 48 class DoctypeDataBase {49 WTF_MAKE_NONCOPYABLE(DoctypeDataBase); WTF_MAKE_FAST_ALLOCATED;50 public:51 DoctypeDataBase()52 : m_hasPublicIdentifier(false)53 , m_hasSystemIdentifier(false)54 {55 }56 57 bool m_hasPublicIdentifier;58 bool m_hasSystemIdentifier;59 WTF::Vector<UChar> m_publicIdentifier;60 WTF::Vector<UChar> m_systemIdentifier;61 };62 63 48 class AttributeBase { 64 49 public: … … 75 60 }; 76 61 77 template<typename TypeSet, typename DoctypeDataType = DoctypeDataBase, typenameAttributeType = AttributeBase>62 template<typename TypeSet, typename AttributeType = AttributeBase> 78 63 class MarkupTokenBase { 79 64 WTF_MAKE_NONCOPYABLE(MarkupTokenBase); … … 82 67 typedef TypeSet Type; 83 68 typedef AttributeType Attribute; 84 typedef DoctypeDataType DoctypeData;85 69 86 70 typedef WTF::Vector<Attribute, 10> AttributeList; … … 168 152 ASSERT(m_type == TypeSet::Uninitialized); 169 153 m_type = TypeSet::Comment; 170 }171 172 void beginDOCTYPE()173 {174 ASSERT(m_type == TypeSet::Uninitialized);175 m_type = TypeSet::DOCTYPE;176 m_doctypeData = adoptPtr(new DoctypeData);177 }178 179 void beginDOCTYPE(UChar character)180 {181 ASSERT(character);182 beginDOCTYPE();183 m_data.append(character);184 m_orAllData |= character;185 154 } 186 155 … … 332 301 } 333 302 334 // FIXME: Distinguish between a missing public identifer and an empty one.335 const WTF::Vector<UChar>& publicIdentifier() const336 {337 ASSERT(m_type == TypeSet::DOCTYPE);338 return m_doctypeData->m_publicIdentifier;339 }340 341 // FIXME: Distinguish between a missing system identifer and an empty one.342 const WTF::Vector<UChar>& systemIdentifier() const343 {344 ASSERT(m_type == TypeSet::DOCTYPE);345 return m_doctypeData->m_systemIdentifier;346 }347 348 void setPublicIdentifierToEmptyString()349 {350 ASSERT(m_type == TypeSet::DOCTYPE);351 m_doctypeData->m_hasPublicIdentifier = true;352 m_doctypeData->m_publicIdentifier.clear();353 }354 355 void setSystemIdentifierToEmptyString()356 {357 ASSERT(m_type == TypeSet::DOCTYPE);358 m_doctypeData->m_hasSystemIdentifier = true;359 m_doctypeData->m_systemIdentifier.clear();360 }361 362 void appendToPublicIdentifier(UChar character)363 {364 ASSERT(character);365 ASSERT(m_type == TypeSet::DOCTYPE);366 ASSERT(m_doctypeData->m_hasPublicIdentifier);367 m_doctypeData->m_publicIdentifier.append(character);368 }369 370 void appendToSystemIdentifier(UChar character)371 {372 ASSERT(character);373 ASSERT(m_type == TypeSet::DOCTYPE);374 ASSERT(m_doctypeData->m_hasSystemIdentifier);375 m_doctypeData->m_systemIdentifier.append(character);376 }377 378 303 const DataVector& name() const 379 304 { … … 390 315 } 391 316 392 PassOwnPtr<DoctypeData> releaseDoctypeData()393 {394 return m_doctypeData.release();395 }396 397 317 protected: 398 318 … … 419 339 UChar m_orAllData; 420 340 421 // For DOCTYPE422 OwnPtr<DoctypeData> m_doctypeData;423 424 341 // For StartTag and EndTag 425 342 bool m_selfClosing;
Note: See TracChangeset
for help on using the changeset viewer.