Chromium Code Reviews| 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..4e99592cce8f0d07da48dc4ed037ec1124d57e2d 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,22 @@ VTTRegion::RegionSetting VTTRegion::scanSettingName(VTTScanner& input) |
| return None; |
| } |
| -void VTTRegion::parseSettingValue(RegionSetting setting, const String& value) |
| +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) && input.isAt(valueRun.end())) |
|
Mike West
2014/01/22 10:24:26
Nit: `input.isAt(valueRun.end())` is awkward. You'
fs
2014/01/22 10:29:50
You mean as a local helper? Or on VTTScanner? (I t
|
| m_width = floatWidth; |
| else |
| WTF_LOG(Media, "VTTRegion::parseSettingValue, invalid Width"); |
| @@ -257,33 +258,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) && input.isAt(valueRun.end())) |
| 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) && input.isAt(valueRun.end())) |
| 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) && input.isAt(valueRun.end())) |
| 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 +289,8 @@ void VTTRegion::parseSettingValue(RegionSetting setting, const String& value) |
| case None: |
| break; |
| } |
| + |
| + input.skipRun(valueRun); |
| } |
| const AtomicString& VTTRegion::textTrackCueContainerShadowPseudoId() |