Index: Source/core/css/parser/CSSPropertyParser.cpp |
diff --git a/Source/core/css/parser/CSSPropertyParser.cpp b/Source/core/css/parser/CSSPropertyParser.cpp |
index 539ad6ed8b536633969c16a67cce948d565f22a6..ee2484f9f05b6bd0306d55508e9a82689b2a80ec 100644 |
--- a/Source/core/css/parser/CSSPropertyParser.cpp |
+++ b/Source/core/css/parser/CSSPropertyParser.cpp |
@@ -1194,7 +1194,10 @@ bool CSSPropertyParser::parseValue(CSSPropertyID propId, bool important) |
return parseShorthand(propId, parsingShorthandForProperty(CSSPropertyMotion), important); |
case CSSPropertyMotionPath: |
ASSERT(RuntimeEnabledFeatures::cssMotionPathEnabled()); |
- parsedValue = parseMotionPath(); |
+ if (id == CSSValueNone) |
+ validPrimitive = true; |
+ else |
+ parsedValue = parseMotionPath(); |
break; |
case CSSPropertyMotionPosition: |
ASSERT(RuntimeEnabledFeatures::cssMotionPathEnabled()); |
@@ -1516,7 +1519,10 @@ bool CSSPropertyParser::parseValue(CSSPropertyID propId, bool important) |
} |
break; |
case CSSPropertyShapeOutside: |
- parsedValue = parseShapeProperty(propId); |
+ if (id == CSSValueNone) |
+ validPrimitive = true; |
+ else |
+ parsedValue = parseShapeProperty(propId); |
break; |
case CSSPropertyShapeMargin: |
validPrimitive = (!id && validUnit(value, FLength | FPercent | FNonNeg)); |
@@ -1530,7 +1536,10 @@ bool CSSPropertyParser::parseValue(CSSPropertyID propId, bool important) |
break; |
case CSSPropertyScrollBlocksOn: |
- parsedValue = parseScrollBlocksOn(); |
+ if (id == CSSValueNone) |
+ validPrimitive = true; |
+ else |
+ parsedValue = parseScrollBlocksOn(); |
break; |
case CSSPropertyAlignContent: |
@@ -4411,17 +4420,8 @@ static bool isBoxValue(CSSValueID valueId) |
PassRefPtrWillBeRawPtr<CSSValue> CSSPropertyParser::parseShapeProperty(CSSPropertyID propId) |
{ |
- CSSParserValue* value = m_valueList->current(); |
- CSSValueID valueId = value->id; |
- |
- if (valueId == CSSValueNone) { |
- RefPtrWillBeRawPtr<CSSPrimitiveValue> keywordValue = parseValidPrimitive(valueId, value); |
- m_valueList->next(); |
- return keywordValue.release(); |
- } |
- |
RefPtrWillBeRawPtr<CSSValue> imageValue = nullptr; |
- if (valueId != CSSValueNone && parseFillImage(m_valueList, imageValue)) { |
+ if (parseFillImage(m_valueList, imageValue)) { |
m_valueList->next(); |
return imageValue.release(); |
} |
@@ -7493,13 +7493,8 @@ PassRefPtrWillBeRawPtr<CSSValue> CSSPropertyParser::parseTouchAction() |
PassRefPtrWillBeRawPtr<CSSValue> CSSPropertyParser::parseScrollBlocksOn() |
{ |
- CSSParserValue* value = m_valueList->current(); |
- if (value->id == CSSValueNone) { |
- m_valueList->next(); |
- return cssValuePool().createIdentifierValue(CSSValueNone); |
- } |
- |
RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSpaceSeparated(); |
+ CSSParserValue* value = m_valueList->current(); |
while (value) { |
switch (value->id) { |
case CSSValueStartTouch: |
@@ -8533,10 +8528,6 @@ PassRefPtrWillBeRawPtr<CSSValue> CSSPropertyParser::parseTransformValue(CSSPrope |
PassRefPtrWillBeRawPtr<CSSValue> CSSPropertyParser::parseMotionPath() |
{ |
CSSParserValue* value = m_valueList->current(); |
- if (value->id == CSSValueNone) { |
- m_valueList->next(); |
- return cssValuePool().createIdentifierValue(CSSValueNone); |
- } |
// FIXME: Add support for <url>, <basic-shape>, <geometry-box>. |
if (value->unit != CSSParserValue::Function || value->function->id != CSSValuePath) |