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

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

Issue 144893002: Pass a VTTScanner to VTTRegion::parseSettingValue (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: parsedEntireRun helper. 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
« no previous file with comments | « Source/core/html/track/vtt/VTTRegion.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/html/track/vtt/VTTRegion.cpp
diff --git a/Source/core/html/track/vtt/VTTRegion.cpp b/Source/core/html/track/vtt/VTTRegion.cpp
index 21c4595a05f926f129bfe3d78e18fbe9b7a6af28..dd7613ecad3d3ac1e5287e3db4aca9773aa86508 100644
--- a/Source/core/html/track/vtt/VTTRegion.cpp
+++ b/Source/core/html/track/vtt/VTTRegion.cpp
@@ -213,9 +213,7 @@ void VTTRegion::setRegionSettings(const String& inputString)
}
// Scan the value part.
- VTTScanner::Run valueRun = input.collectUntil<VTTParser::isASpace>();
- parseSettingValue(name, input.extractString(valueRun));
- input.skipRun(valueRun);
+ parseSettingValue(name, input);
}
}
@@ -237,19 +235,27 @@ VTTRegion::RegionSetting VTTRegion::scanSettingName(VTTScanner& input)
return None;
}
-void VTTRegion::parseSettingValue(RegionSetting setting, const String& value)
+static inline bool parsedEntireRun(const VTTScanner& input, const VTTScanner::Run& run)
+{
+ return input.isAt(run.end());
+}
+
+void VTTRegion::parseSettingValue(RegionSetting setting, VTTScanner& input)
{
DEFINE_STATIC_LOCAL(const AtomicString, scrollUpValueKeyword, ("up", AtomicString::ConstructFromLiteral));
+ VTTScanner::Run valueRun = input.collectUntil<VTTParser::isASpace>();
+
switch (setting) {
- case Id:
- if (value.find("-->") == kNotFound)
- m_id = value;
+ case Id: {
+ String stringValue = input.extractString(valueRun);
+ if (stringValue.find("-->") == kNotFound)
+ m_id = stringValue;
break;
+ }
case Width: {
float floatWidth;
- VTTScanner valueScanner(value);
- if (VTTParser::parseFloatPercentageValue(valueScanner, floatWidth) && valueScanner.isAtEnd())
+ if (VTTParser::parseFloatPercentageValue(input, floatWidth) && parsedEntireRun(input, valueRun))
m_width = floatWidth;
else
WTF_LOG(Media, "VTTRegion::parseSettingValue, invalid Width");
@@ -257,33 +263,30 @@ void VTTRegion::parseSettingValue(RegionSetting setting, const String& value)
}
case Height: {
int number;
- VTTScanner valueScanner(value);
- if (valueScanner.scanDigits(number) && valueScanner.isAtEnd())
+ if (input.scanDigits(number) && parsedEntireRun(input, valueRun))
m_heightInLines = number;
else
WTF_LOG(Media, "VTTRegion::parseSettingValue, invalid Height");
break;
}
case RegionAnchor: {
- VTTScanner valueScanner(value);
FloatPoint anchor;
- if (VTTParser::parseFloatPercentageValuePair(valueScanner, ',', anchor) && valueScanner.isAtEnd())
+ if (VTTParser::parseFloatPercentageValuePair(input, ',', anchor) && parsedEntireRun(input, valueRun))
m_regionAnchor = anchor;
else
WTF_LOG(Media, "VTTRegion::parseSettingValue, invalid RegionAnchor");
break;
}
case ViewportAnchor: {
- VTTScanner valueScanner(value);
FloatPoint anchor;
- if (VTTParser::parseFloatPercentageValuePair(valueScanner, ',', anchor) && valueScanner.isAtEnd())
+ if (VTTParser::parseFloatPercentageValuePair(input, ',', anchor) && parsedEntireRun(input, valueRun))
m_viewportAnchor = anchor;
else
WTF_LOG(Media, "VTTRegion::parseSettingValue, invalid ViewportAnchor");
break;
}
case Scroll:
- if (value == scrollUpValueKeyword)
+ if (input.scanRun(valueRun, scrollUpValueKeyword))
m_scroll = true;
else
WTF_LOG(Media, "VTTRegion::parseSettingValue, invalid Scroll");
@@ -291,6 +294,8 @@ void VTTRegion::parseSettingValue(RegionSetting setting, const String& value)
case None:
break;
}
+
+ input.skipRun(valueRun);
}
const AtomicString& VTTRegion::textTrackCueContainerShadowPseudoId()
« no previous file with comments | « Source/core/html/track/vtt/VTTRegion.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698