Index: Source/core/css/parser/BisonCSSParser-in.cpp |
diff --git a/Source/core/css/parser/BisonCSSParser-in.cpp b/Source/core/css/parser/BisonCSSParser-in.cpp |
index bd5cdcd3459bdeca1707377a9f2ede3e5e2d6409..a882c58be43be812e7443fa1efc55a8043f403a0 100644 |
--- a/Source/core/css/parser/BisonCSSParser-in.cpp |
+++ b/Source/core/css/parser/BisonCSSParser-in.cpp |
@@ -551,6 +551,7 @@ bool isValidKeywordPropertyAndValue(CSSPropertyID propertyId, int valueID, const |
if ((valueID >= CSSValueCheckbox && valueID <= CSSValueTextarea) || valueID == CSSValueNone) |
return true; |
break; |
+ case CSSPropertyBackfaceVisibility: |
case CSSPropertyWebkitBackfaceVisibility: |
if (valueID == CSSValueVisible || valueID == CSSValueHidden) |
return true; |
@@ -687,6 +688,7 @@ bool isValidKeywordPropertyAndValue(CSSPropertyID propertyId, int valueID, const |
if (valueID == CSSValueDisc || valueID == CSSValueCircle || valueID == CSSValueSquare || valueID == CSSValueNone) |
return true; |
break; |
+ case CSSPropertyTransformStyle: |
case CSSPropertyWebkitTransformStyle: |
if (valueID == CSSValueFlat || valueID == CSSValuePreserve3d) |
return true; |
@@ -783,6 +785,7 @@ bool isKeywordPropertyID(CSSPropertyID propertyId) |
case CSSPropertyTouchActionDelay: |
case CSSPropertyVisibility: |
case CSSPropertyWebkitAppearance: |
+ case CSSPropertyBackfaceVisibility: |
case CSSPropertyWebkitBackfaceVisibility: |
case CSSPropertyWebkitBorderAfterStyle: |
case CSSPropertyWebkitBorderBeforeStyle: |
@@ -821,6 +824,7 @@ bool isKeywordPropertyID(CSSPropertyID propertyId) |
case CSSPropertyWebkitTextCombine: |
case CSSPropertyWebkitTextEmphasisPosition: |
case CSSPropertyWebkitTextSecurity: |
+ case CSSPropertyTransformStyle: |
case CSSPropertyWebkitTransformStyle: |
case CSSPropertyWebkitUserDrag: |
case CSSPropertyWebkitUserModify: |
@@ -967,7 +971,7 @@ static PassRefPtrWillBeRawPtr<CSSValueList> parseTranslateTransformList(CharType |
static bool parseTranslateTransform(MutableStylePropertySet* properties, CSSPropertyID propertyID, const String& string, bool important) |
{ |
- if (propertyID != CSSPropertyWebkitTransform) |
+ if (propertyID != CSSPropertyTransform && propertyID != CSSPropertyWebkitTransform) |
return false; |
if (string.isEmpty()) |
return false; |
@@ -985,7 +989,7 @@ static bool parseTranslateTransform(MutableStylePropertySet* properties, CSSProp |
if (!transformList) |
return false; |
} |
- properties->addParsedProperty(CSSProperty(CSSPropertyWebkitTransform, transformList.release(), important)); |
+ properties->addParsedProperty(CSSProperty(propertyID, transformList.release(), important)); |
return true; |
} |
@@ -1401,14 +1405,14 @@ private: |
CSSPropertyParser::Units m_unit; |
}; |
-PassRefPtrWillBeRawPtr<CSSValueList> CSSPropertyParser::parseTransform() |
+PassRefPtrWillBeRawPtr<CSSValueList> CSSPropertyParser::parseTransform(CSSPropertyID propId) |
{ |
if (!m_valueList) |
return nullptr; |
RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSpaceSeparated(); |
for (CSSParserValue* value = m_valueList->current(); value; value = m_valueList->next()) { |
- RefPtrWillBeRawPtr<CSSValue> parsedTransformValue = parseTransformValue(value); |
+ RefPtrWillBeRawPtr<CSSValue> parsedTransformValue = parseTransformValue(propId, value); |
if (!parsedTransformValue) |
return nullptr; |
@@ -1418,7 +1422,7 @@ PassRefPtrWillBeRawPtr<CSSValueList> CSSPropertyParser::parseTransform() |
return list.release(); |
} |
-PassRefPtrWillBeRawPtr<CSSValue> CSSPropertyParser::parseTransformValue(CSSParserValue *value) |
+PassRefPtrWillBeRawPtr<CSSValue> CSSPropertyParser::parseTransformValue(CSSPropertyID propId, CSSParserValue *value) |
{ |
if (value->unit != CSSParserValue::Function || !value->function) |
return nullptr; |
@@ -1462,7 +1466,8 @@ PassRefPtrWillBeRawPtr<CSSValue> CSSPropertyParser::parseTransformValue(CSSParse |
return nullptr; |
} else if (info.type() == CSSTransformValue::PerspectiveTransformOperation && !argNumber) { |
// 1st param of perspective() must be a non-negative number (deprecated) or length. |
- if (!validUnit(a, FNumber | FLength | FNonNeg, HTMLStandardMode)) |
+ if ((propId == CSSPropertyWebkitTransform && !validUnit(a, FNumber | FLength | FNonNeg, HTMLStandardMode)) |
+ || (propId == CSSPropertyTransform && !validUnit(a, FLength | FNonNeg, HTMLStandardMode))) |
return nullptr; |
} else if (!validUnit(a, unit, HTMLStandardMode)) { |
return nullptr; |