Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(713)

Unified Diff: Source/core/html/track/vtt/VTTScanner.cpp

Issue 134153002: Use VTTScanner for VTT cue settings parsing (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/core/html/track/vtt/VTTScanner.cpp
diff --git a/Source/core/html/track/vtt/VTTScanner.cpp b/Source/core/html/track/vtt/VTTScanner.cpp
index a3f9088b4038b760d1ade35166a5b40c8cb77695..fd6a662d8f43930ae4781b5d0b6698ec7e2574e3 100644
--- a/Source/core/html/track/vtt/VTTScanner.cpp
+++ b/Source/core/html/track/vtt/VTTScanner.cpp
@@ -66,18 +66,54 @@ bool VTTScanner::scan(const LChar* characters, size_t charactersCount)
return matched;
}
-String VTTScanner::restOfInputAsString()
+bool VTTScanner::scanRun(const Run& run, const String& toMatch)
{
- ASSERT(position() <= end());
+ ASSERT(run.start() == position());
+ ASSERT(run.start() <= end());
+ ASSERT(run.end() >= run.start());
+ ASSERT(run.end() <= end());
+ size_t matchLength = run.length();
+ if (toMatch.length() > matchLength)
+ return false;
+ bool matched;
+ if (m_is8Bit)
+ matched = WTF::equal(toMatch.impl(), m_data.characters8, matchLength);
+ else
+ matched = WTF::equal(toMatch.impl(), m_data.characters16, matchLength);
+ if (matched)
+ seekTo(run.end());
+ return matched;
+}
+
+void VTTScanner::skipRun(const Run& run)
+{
+ ASSERT(run.start() <= end());
+ ASSERT(run.end() >= run.start());
+ ASSERT(run.end() <= end());
+ seekTo(run.end());
+}
+
+String VTTScanner::extractString(const Run& run)
+{
+ ASSERT(run.start() == position());
+ ASSERT(run.start() <= end());
+ ASSERT(run.end() >= run.start());
+ ASSERT(run.end() <= end());
String s;
if (m_is8Bit)
- s = String(m_data.characters8, m_end.characters8 - m_data.characters8);
+ s = String(m_data.characters8, run.length());
else
- s = String(m_data.characters16, m_end.characters16 - m_data.characters16);
- seekTo(end());
+ s = String(m_data.characters16, run.length());
+ seekTo(run.end());
return s;
}
+String VTTScanner::restOfInputAsString()
+{
+ Run rest(position(), end(), m_is8Bit);
+ return extractString(rest);
+}
+
unsigned VTTScanner::scanDigits(int& number)
{
Run runOfDigits = collectWhile<isASCIIDigit>();

Powered by Google App Engine
This is Rietveld 408576698