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 d3e97946da8a84ca86649600b0c1a87106ab94d6..51ee5fff51e531c349c233442e1d78f0c90e64db 100644 |
--- a/third_party/WebKit/Source/core/css/parser/CSSPropertyParser.cpp |
+++ b/third_party/WebKit/Source/core/css/parser/CSSPropertyParser.cpp |
@@ -305,10 +305,13 @@ bool CSSPropertyParser::consumeCSSWideKeyword(CSSPropertyID unresolvedProperty, |
CSSPropertyID property = resolveCSSPropertyID(unresolvedProperty); |
const StylePropertyShorthand& shorthand = shorthandForProperty(property); |
- if (!shorthand.length()) |
+ if (!shorthand.length()) { |
+ if (CSSPropertyMetadata::isDescriptor(unresolvedProperty)) |
+ return false; |
addProperty(property, CSSPropertyInvalid, value, important); |
- else |
+ } else { |
addExpandedPropertyForValue(property, value, important); |
+ } |
m_range = rangeCopy; |
return true; |
} |
@@ -3976,6 +3979,11 @@ CSSValue* CSSPropertyParser::parseSingleValue(CSSPropertyID unresolvedProperty, |
} |
} |
+static CSSPrimitiveValue* consumeFontDisplay(CSSParserTokenRange& range) |
+{ |
+ return consumeIdent<CSSValueAuto, CSSValueBlock, CSSValueSwap, CSSValueFallback, CSSValueOptional>(range); |
+} |
+ |
static CSSValueList* consumeFontFaceUnicodeRange(CSSParserTokenRange& range) |
{ |
CSSValueList* values = CSSValueList::createCommaSeparated(); |
@@ -4069,6 +4077,8 @@ bool CSSPropertyParser::parseFontFaceDescriptor(CSSPropertyID propId) |
parsedValue = consumeFontFaceUnicodeRange(m_range); |
break; |
case CSSPropertyFontDisplay: |
+ parsedValue = consumeFontDisplay(m_range); |
+ break; |
case CSSPropertyFontStretch: |
case CSSPropertyFontStyle: { |
CSSValueID id = m_range.consumeIncludingWhitespace().id(); |