Chromium Code Reviews| Index: Source/core/css/resolver/StyleBuilderConverter.cpp |
| diff --git a/Source/core/css/resolver/StyleBuilderConverter.cpp b/Source/core/css/resolver/StyleBuilderConverter.cpp |
| index dc0e860e0ea46be1be872ffd0bff35c3472e7634..a4948917ee70b37d9ed618e2e837554aa7b45cc4 100644 |
| --- a/Source/core/css/resolver/StyleBuilderConverter.cpp |
| +++ b/Source/core/css/resolver/StyleBuilderConverter.cpp |
| @@ -606,6 +606,40 @@ float StyleBuilderConverter::convertPerspective(StyleResolverState& state, CSSVa |
| return convertPerspectiveLength(state, primitiveValue); |
| } |
| +template <CSSValueID cssValueFor0, CSSValueID cssValueFor100> |
| +static Length convertOriginLength(StyleResolverState& state, CSSPrimitiveValue* primitiveValue) |
| +{ |
| + if (primitiveValue->isValueID()) { |
| + switch (primitiveValue->getValueID()) { |
| + case cssValueFor0: |
| + return Length(0, Percent); |
| + case cssValueFor100: |
| + return Length(100, Percent); |
| + case CSSValueCenter: |
| + return Length(50, Percent); |
| + default: |
| + ASSERT_NOT_REACHED(); |
| + return Length(0, Percent); |
|
Timothy Loh
2014/10/10 15:04:20
Since we never get here, do we need to bother with
|
| + } |
| + } |
| + |
| + return StyleBuilderConverter::convertLength(state, primitiveValue); |
| +} |
| + |
| +LengthPoint StyleBuilderConverter::convertPerspectiveOrigin(StyleResolverState& state, CSSValue* value) |
| +{ |
| + CSSValueList* list = toCSSValueList(value); |
| + ASSERT(list->length() == 2); |
| + |
| + CSSPrimitiveValue* primitiveValueX = toCSSPrimitiveValue(list->item(0)); |
| + CSSPrimitiveValue* primitiveValueY = toCSSPrimitiveValue(list->item(1)); |
| + |
| + return LengthPoint( |
| + convertOriginLength<CSSValueLeft, CSSValueRight>(state, primitiveValueX), |
| + convertOriginLength<CSSValueTop, CSSValueBottom>(state, primitiveValueY) |
| + ); |
| +} |
| + |
| EPaintOrder StyleBuilderConverter::convertPaintOrder(StyleResolverState&, CSSValue* cssPaintOrder) |
| { |
| if (cssPaintOrder->isValueList()) { |