Changeset 142484 in webkit
- Timestamp:
- Feb 11, 2013 9:54:50 AM (11 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r142483 r142484 1 2013-02-11 Eric Seidel <eric@webkit.org> 2 3 Move WebVTTToken off of MarkupTokenBase 4 https://bugs.webkit.org/show_bug.cgi?id=109410 5 6 Reviewed by Tony Gentilcore. 7 8 This introduces a small amount of "copy/paste" code 9 but actually makes WebVTTToken much smaller and simpler! 10 This also frees the HTMLParser to have its Token class 11 back to itself so we can tune it to make HTML faster. 12 13 * html/track/WebVTTToken.h: 14 (WebVTTToken): 15 (WebCore::WebVTTToken::WebVTTToken): 16 (WebCore::WebVTTToken::appendToName): 17 (WebCore::WebVTTToken::type): 18 (WebCore::WebVTTToken::name): 19 (WebCore::WebVTTToken::ensureIsCharacterToken): 20 (WebCore::WebVTTToken::appendToCharacter): 21 (WebCore::WebVTTToken::beginEmptyStartTag): 22 (WebCore::WebVTTToken::beginStartTag): 23 (WebCore::WebVTTToken::beginEndTag): 24 (WebCore::WebVTTToken::beginTimestampTag): 25 (WebCore::WebVTTToken::makeEndOfFile): 26 (WebCore::WebVTTToken::clear): 27 1 28 2013-02-11 Joshua Bell <jsbell@chromium.org> 2 29 -
trunk/Source/WebCore/html/track/WebVTTToken.h
r95901 r142484 34 34 #if ENABLE(VIDEO_TRACK) 35 35 36 #include "MarkupTokenBase.h"37 38 36 namespace WebCore { 39 37 … … 50 48 }; 51 49 52 class WebVTTToken : public MarkupTokenBase<WebVTTTokenTypes> { 50 class WebVTTToken { 51 WTF_MAKE_NONCOPYABLE(WebVTTToken); 52 WTF_MAKE_FAST_ALLOCATED; 53 53 public: 54 typedef WebVTTTokenTypes Type; 55 typedef WTF::Vector<UChar, 1024> DataVector; // FIXME: Is this too large for WebVTT? 56 57 WebVTTToken() { clear(); } 58 54 59 void appendToName(UChar character) 55 60 { 56 61 ASSERT(m_type == WebVTTTokenTypes::StartTag || m_type == WebVTTTokenTypes::EndTag); 57 MarkupTokenBase<WebVTTTokenTypes>::appendToName(character); 58 } 59 62 ASSERT(character); 63 m_data.append(character); 64 } 65 66 Type::Type type() const { return m_type; } 67 60 68 const DataVector& name() const 61 69 { 62 return MarkupTokenBase<WebVTTTokenTypes>::name();63 } 64 70 return m_data; 71 } 72 65 73 const DataVector& characters() const 66 74 { … … 68 76 return m_data; 69 77 } 70 78 79 // Starting a character token works slightly differently than starting 80 // other types of tokens because we want to save a per-character branch. 81 void ensureIsCharacterToken() 82 { 83 ASSERT(m_type == Type::Uninitialized || m_type == Type::Character); 84 m_type = Type::Character; 85 } 86 87 void appendToCharacter(char character) 88 { 89 ASSERT(m_type == Type::Character); 90 m_data.append(character); 91 } 92 93 void appendToCharacter(UChar character) 94 { 95 ASSERT(m_type == Type::Character); 96 m_data.append(character); 97 } 98 99 void appendToCharacter(const Vector<LChar, 32>& characters) 100 { 101 ASSERT(m_type == Type::Character); 102 m_data.appendVector(characters); 103 } 104 71 105 void beginEmptyStartTag() 72 106 { 73 107 ASSERT(m_type == Type::Uninitialized); 74 108 m_type = Type::StartTag; 75 m_currentAttribute = 0;76 m_attributes.clear();77 109 m_data.clear(); 78 110 } 79 111 112 void beginStartTag(UChar character) 113 { 114 ASSERT(character); 115 ASSERT(m_type == Type::Uninitialized); 116 m_type = Type::StartTag; 117 m_data.append(character); 118 } 119 120 void beginEndTag(LChar character) 121 { 122 ASSERT(m_type == Type::Uninitialized); 123 m_type = Type::EndTag; 124 m_data.append(character); 125 } 126 80 127 void beginTimestampTag(UChar character) 81 128 { … … 83 130 ASSERT(m_type == Type::Uninitialized); 84 131 m_type = Type::TimestampTag; 85 m_selfClosing = true;86 132 m_data.append(character); 87 133 } … … 130 176 return m_annotation; 131 177 } 178 179 void makeEndOfFile() 180 { 181 ASSERT(m_type == Type::Uninitialized); 182 m_type = Type::EndOfFile; 183 } 132 184 133 185 void clear() 134 186 { 187 m_type = Type::Uninitialized; 188 m_data.clear(); 135 189 m_annotation.clear(); 136 190 m_classes.clear(); 137 191 m_currentBuffer.clear(); 138 MarkupTokenBase<WebVTTTokenTypes>::clear();139 192 } 140 193 … … 147 200 } 148 201 202 Type::Type m_type; 203 DataVector m_data; 149 204 DataVector m_annotation; 150 205 DataVector m_classes;
Note: See TracChangeset
for help on using the changeset viewer.