Chromium Code Reviews| Index: Source/core/css/parser/CSSPropertyParser.cpp |
| diff --git a/Source/core/css/parser/CSSPropertyParser.cpp b/Source/core/css/parser/CSSPropertyParser.cpp |
| index d75113c3692c94813119f167c5be3f5e1ba1179f..41ed45a8cc232586e7808a966ccd149e8730a943 100644 |
| --- a/Source/core/css/parser/CSSPropertyParser.cpp |
| +++ b/Source/core/css/parser/CSSPropertyParser.cpp |
| @@ -1151,24 +1151,21 @@ bool CSSPropertyParser::parseValue(CSSPropertyID propId, bool important) |
| addProperty(propId, list.release(), important); |
| return true; |
| } |
| - case CSSPropertyWebkitTransformOrigin: |
| case CSSPropertyWebkitTransformOriginX: |
| + parsedValue = parseFillPositionX(m_valueList.get()); |
| + if (parsedValue) |
| + m_valueList->next(); |
| + break; |
| case CSSPropertyWebkitTransformOriginY: |
| - case CSSPropertyWebkitTransformOriginZ: { |
| - RefPtrWillBeRawPtr<CSSValue> val1 = nullptr; |
| - RefPtrWillBeRawPtr<CSSValue> val2 = nullptr; |
| - RefPtrWillBeRawPtr<CSSValue> val3 = nullptr; |
| - CSSPropertyID propId1, propId2, propId3; |
| - if (parseWebkitTransformOrigin(propId, propId1, propId2, propId3, val1, val2, val3)) { |
| - addProperty(propId1, val1.release(), important); |
| - if (val2) |
| - addProperty(propId2, val2.release(), important); |
| - if (val3) |
| - addProperty(propId3, val3.release(), important); |
| - return true; |
| - } |
| - return false; |
| - } |
| + parsedValue = parseFillPositionY(m_valueList.get()); |
| + if (parsedValue) |
| + m_valueList->next(); |
| + break; |
| + case CSSPropertyWebkitTransformOriginZ: |
| + validPrimitive = validUnit(value, FLength); |
| + break; |
| + case CSSPropertyWebkitTransformOrigin: |
| + return parseWebkitTransformOriginShorthand(important); |
| case CSSPropertyPerspective: |
| if (id == CSSValueNone) { |
| validPrimitive = true; |
| @@ -3134,20 +3131,27 @@ PassRefPtrWillBeRawPtr<CSSValue> CSSPropertyParser::parseAnimationProperty() |
| return createPrimitiveStringValue(value); |
| } |
| -bool CSSPropertyParser::parseWebkitTransformOriginShorthand(RefPtrWillBeRawPtr<CSSValue>& value1, RefPtrWillBeRawPtr<CSSValue>& value2, RefPtrWillBeRawPtr<CSSValue>& value3) |
| +bool CSSPropertyParser::parseWebkitTransformOriginShorthand(bool important) |
| { |
| - parse2ValuesFillPosition(m_valueList.get(), value1, value2); |
| + RefPtrWillBeRawPtr<CSSValue> originX; |
| + RefPtrWillBeRawPtr<CSSValue> originY; |
| + parse2ValuesFillPosition(m_valueList.get(), originX, originY); |
| - // now get z |
| - if (m_valueList->current()) { |
| - if (validUnit(m_valueList->current(), FLength)) { |
| - value3 = createPrimitiveNumericValue(m_valueList->current()); |
| - m_valueList->next(); |
| - return true; |
| - } |
| + if (m_valueList->current() && !validUnit(m_valueList->current(), FLength)) |
| return false; |
|
alancutter (OOO until 2018)
2014/08/15 01:00:03
This can be merged into the if block below.
Timothy Loh
2014/08/15 01:03:18
Not sure what you mean here, the "if (m_valueList-
Timothy Loh
2014/08/15 01:11:41
err yeah I can move adding properties lower, will
Timothy Loh
2014/08/15 01:26:41
Done.
|
| + |
| + addProperty(CSSPropertyWebkitTransformOriginX, originX.release(), important); |
| + addProperty(CSSPropertyWebkitTransformOriginY, originY.release(), important); |
| + |
| + RefPtrWillBeRawPtr<CSSValue> originZ; |
| + if (m_valueList->current()) { |
| + originZ = createPrimitiveNumericValue(m_valueList->current()); |
| + m_valueList->next(); |
| + } else { |
| + originZ = cssValuePool().createImplicitInitialValue(); |
| } |
| - value3 = cssValuePool().createImplicitInitialValue(); |
| + addProperty(CSSPropertyWebkitTransformOriginZ, originZ.release(), important); |
| + |
| return true; |
| } |
| @@ -7562,50 +7566,6 @@ PassRefPtrWillBeRawPtr<CSSValueList> CSSPropertyParser::parseTransformOrigin() |
| return list.release(); |
| } |
| -bool CSSPropertyParser::parseWebkitTransformOrigin(CSSPropertyID propId, CSSPropertyID& propId1, CSSPropertyID& propId2, CSSPropertyID& propId3, RefPtrWillBeRawPtr<CSSValue>& value, RefPtrWillBeRawPtr<CSSValue>& value2, RefPtrWillBeRawPtr<CSSValue>& value3) |
| -{ |
| - propId1 = propId; |
| - propId2 = propId; |
| - propId3 = propId; |
| - if (propId == CSSPropertyWebkitTransformOrigin) { |
| - propId1 = CSSPropertyWebkitTransformOriginX; |
| - propId2 = CSSPropertyWebkitTransformOriginY; |
| - propId3 = CSSPropertyWebkitTransformOriginZ; |
| - } |
| - |
| - switch (propId) { |
| - case CSSPropertyWebkitTransformOrigin: |
| - if (!parseWebkitTransformOriginShorthand(value, value2, value3)) |
| - return false; |
| - // parseWebkitTransformOriginShorthand advances the m_valueList pointer |
| - break; |
| - case CSSPropertyWebkitTransformOriginX: { |
| - value = parseFillPositionX(m_valueList.get()); |
| - if (value) |
| - m_valueList->next(); |
| - break; |
| - } |
| - case CSSPropertyWebkitTransformOriginY: { |
| - value = parseFillPositionY(m_valueList.get()); |
| - if (value) |
| - m_valueList->next(); |
| - break; |
| - } |
| - case CSSPropertyWebkitTransformOriginZ: { |
| - if (validUnit(m_valueList->current(), FLength)) |
| - value = createPrimitiveNumericValue(m_valueList->current()); |
| - if (value) |
| - m_valueList->next(); |
| - break; |
| - } |
| - default: |
| - ASSERT_NOT_REACHED(); |
| - return false; |
| - } |
| - |
| - return value; |
| -} |
| - |
| bool CSSPropertyParser::parseWebkitPerspectiveOrigin(CSSPropertyID propId, CSSPropertyID& propId1, CSSPropertyID& propId2, RefPtrWillBeRawPtr<CSSValue>& value, RefPtrWillBeRawPtr<CSSValue>& value2) |
| { |
| propId1 = propId; |