Index: third_party/WebKit/Source/core/css/parser/CSSPropertyParser.cpp |
diff --git a/third_party/WebKit/Source/core/css/parser/CSSPropertyParser.cpp b/third_party/WebKit/Source/core/css/parser/CSSPropertyParser.cpp |
index 4aef4cf533e6dc8aca53d88dba46458b8d7be27f..498e3bf9420ff5fece2dfc2e1ed8915c62b9abc8 100644 |
--- a/third_party/WebKit/Source/core/css/parser/CSSPropertyParser.cpp |
+++ b/third_party/WebKit/Source/core/css/parser/CSSPropertyParser.cpp |
@@ -428,27 +428,30 @@ static PassRefPtrWillBeRawPtr<CSSValue> consumeFontVariantLigatures(CSSParserTok |
return ligatureValues.release(); |
} |
-PassRefPtrWillBeRawPtr<CSSValue> CSSPropertyParser::consumeFontVariant() |
+static PassRefPtrWillBeRawPtr<CSSPrimitiveValue> consumeFontVariant(CSSParserTokenRange& range) |
+{ |
+ if (range.peek().id() == CSSValueNormal || range.peek().id() == CSSValueSmallCaps) |
+ return consumeIdent(range); |
+ return nullptr; |
+} |
+ |
+static PassRefPtrWillBeRawPtr<CSSValue> consumeFontVariantList(CSSParserTokenRange& range) |
{ |
- if (m_ruleType != StyleRule::FontFace) { |
- if (m_range.peek().id() != CSSValueNormal && m_range.peek().id() != CSSValueSmallCaps) |
- return nullptr; |
- return consumeIdent(m_range); |
- } |
RefPtrWillBeRawPtr<CSSValueList> values = CSSValueList::createCommaSeparated(); |
do { |
- if (m_range.peek().id() == CSSValueAll) { |
+ if (range.peek().id() == CSSValueAll) { |
// FIXME: CSSPropertyParser::parseFontVariant() implements |
// the old css3 draft: |
// http://www.w3.org/TR/2002/WD-css3-webfonts-20020802/#font-variant |
// 'all' is only allowed in @font-face and with no other values. |
if (values->length()) |
return nullptr; |
- return consumeIdent(m_range); |
+ return consumeIdent(range); |
} |
- if (m_range.peek().id() == CSSValueNormal || m_range.peek().id() == CSSValueSmallCaps) |
- values->append(consumeIdent(m_range)); |
- } while (consumeCommaIncludingWhitespace(m_range)); |
+ RefPtrWillBeRawPtr<CSSPrimitiveValue> fontVariant = consumeFontVariant(range); |
+ if (fontVariant) |
+ values->append(fontVariant.release()); |
+ } while (consumeCommaIncludingWhitespace(range)); |
if (values->length()) |
return values.release(); |
@@ -562,7 +565,7 @@ PassRefPtrWillBeRawPtr<CSSValue> CSSPropertyParser::parseSingleValue(CSSProperty |
case CSSPropertyWebkitFontFeatureSettings: |
return consumeFontFeatureSettings(m_range); |
case CSSPropertyFontVariant: |
- return consumeFontVariant(); |
+ return consumeFontVariant(m_range); |
case CSSPropertyFontFamily: |
return consumeFontFamily(m_range); |
case CSSPropertyFontWeight: |
@@ -683,9 +686,13 @@ bool CSSPropertyParser::parseFontFaceDescriptor(CSSPropertyID propId) |
break; |
} |
case CSSPropertyFontVariant: |
+ parsedValue = consumeFontVariantList(m_range); |
+ break; |
case CSSPropertyFontWeight: |
+ parsedValue = consumeFontWeight(m_range); |
+ break; |
case CSSPropertyWebkitFontFeatureSettings: |
- parsedValue = parseSingleValue(propId); |
+ parsedValue = consumeFontFeatureSettings(m_range); |
break; |
default: |
break; |