Index: Source/core/html/track/vtt/VTTTokenizer.cpp |
diff --git a/Source/core/html/track/vtt/VTTTokenizer.cpp b/Source/core/html/track/vtt/VTTTokenizer.cpp |
index 9c9c3f451a7724486fea1fa3bf07194962c73786..9dd82a4657527a2ff9832e402c549a55a552daf7 100644 |
--- a/Source/core/html/track/vtt/VTTTokenizer.cpp |
+++ b/Source/core/html/track/vtt/VTTTokenizer.cpp |
@@ -141,13 +141,21 @@ bool VTTTokenizer::nextToken(VTTToken& token) |
} else if (isASCIIAlphanumeric(cc)) { |
buffer.append(static_cast<LChar>(cc)); |
WEBVTT_ADVANCE_TO(EscapeState); |
+ } else if (cc == '<') { |
+ result.append(buffer); |
+ return emitToken(VTTToken::StringToken(result.toString())); |
} else if (cc == kEndOfFileMarker) { |
result.append(buffer); |
return advanceAndEmitToken(source, VTTToken::StringToken(result.toString())); |
} else { |
- if (!equalLiteral(buffer, "&")) |
- result.append(buffer); |
+ result.append(buffer); |
buffer.clear(); |
+ |
+ if (cc == '&') { |
+ buffer.append(static_cast<LChar>(cc)); |
+ WEBVTT_ADVANCE_TO(EscapeState); |
+ } |
+ result.append(cc); |
WEBVTT_ADVANCE_TO(DataState); |
} |
} |