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 47e3e7b36bbdef90ad76504bf7207eb87f7d7657..db39c3eaca40f85384c49d0e208ce588c82f3ab8 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::isDescriptorOnly(unresolvedProperty)) |
+ return false; |
addProperty(property, CSSPropertyInvalid, value, important); |
- else |
+ } else { |
addExpandedPropertyForValue(property, value, important); |
+ } |
m_range = rangeCopy; |
return true; |
} |
@@ -3970,6 +3973,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(); |
@@ -4063,6 +4071,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(); |