 Chromium Code Reviews
 Chromium Code Reviews Issue 1158603003:
  CSS Independent Transform Properties  (Closed) 
  Base URL: https://chromium.googlesource.com/chromium/blink.git@master
    
  
    Issue 1158603003:
  CSS Independent Transform Properties  (Closed) 
  Base URL: https://chromium.googlesource.com/chromium/blink.git@master| Index: Source/core/css/resolver/StyleBuilderConverter.cpp | 
| diff --git a/Source/core/css/resolver/StyleBuilderConverter.cpp b/Source/core/css/resolver/StyleBuilderConverter.cpp | 
| index ce5f709da7bbfb671930d1f24eb580c82ea40550..0e4463e88ddd4fd53302dcdc0269184bf9c573d8 100644 | 
| --- a/Source/core/css/resolver/StyleBuilderConverter.cpp | 
| +++ b/Source/core/css/resolver/StyleBuilderConverter.cpp | 
| @@ -935,4 +935,51 @@ Vector<LengthPoint> StyleBuilderConverter::convertSnapCoordinates(StyleResolverS | 
| return coordinates; | 
| } | 
| +PassRefPtr<TranslateTransformOperation> StyleBuilderConverter::convertTranslate(StyleResolverState& state, CSSValue* value) | 
| +{ | 
| + CSSValueList* list = toCSSValueList(value); | 
| 
alancutter (OOO until 2018)
2015/06/17 07:38:32
Nit: Dereference value here.
 
soonm
2015/06/17 23:56:53
Done.
 | 
| + ASSERT(list->length() >= 1 && list->length() <= 3); | 
| 
alancutter (OOO until 2018)
2015/06/17 07:38:32
list->length() >= 1 is implicitly asserted when yo
 
soonm
2015/06/17 23:56:53
Done.
 | 
| + Length tx = convertLength(state, list->item(0)); | 
| + Length ty(0, Fixed); | 
| + double tz = 0; | 
| + if (list->length() >= 2) | 
| + ty = convertLength(state, list->item(1)); | 
| + if (list->length() == 3) | 
| + tz = toCSSPrimitiveValue(list->item(2))->getDoubleValue(); | 
| + | 
| + return TranslateTransformOperation::create(tx, ty, tz, TransformOperation::Translate3D); | 
| +} | 
| + | 
| +PassRefPtr<RotateTransformOperation> StyleBuilderConverter::convertRotate(StyleResolverState& state, CSSValue* value) | 
| +{ | 
| + CSSValueList* list = toCSSValueList(value); | 
| + ASSERT(list->length() == 1 || list->length() == 4); | 
| + double angle = toCSSPrimitiveValue(list->item(0))->computeDegrees(); | 
| + double x = 0; | 
| + double y = 0; | 
| + double z = 1; | 
| + if (list->length() == 4) { | 
| + x = toCSSPrimitiveValue(list->item(1))->getDoubleValue(); | 
| + y = toCSSPrimitiveValue(list->item(2))->getDoubleValue(); | 
| + z = toCSSPrimitiveValue(list->item(3))->getDoubleValue(); | 
| + } | 
| + | 
| + return RotateTransformOperation::create(x, y, z, angle, TransformOperation::Rotate3D); | 
| +} | 
| + | 
| +PassRefPtr<ScaleTransformOperation> StyleBuilderConverter::convertScale(StyleResolverState& state, CSSValue* value) | 
| +{ | 
| + CSSValueList* list = toCSSValueList(value); | 
| + ASSERT(list->length() >= 1 && list->length() <= 3); | 
| + double sx = toCSSPrimitiveValue(list->item(0))->getDoubleValue(); | 
| + double sy = 1; | 
| + double sz = 1; | 
| + if (list->length() >= 2) | 
| + sy = toCSSPrimitiveValue(list->item(1))->getDoubleValue(); | 
| + if (list->length() == 3) | 
| + sz = toCSSPrimitiveValue(list->item(2))->getDoubleValue(); | 
| + | 
| + return ScaleTransformOperation::create(sx, sy, sz, TransformOperation::Scale3D); | 
| +} | 
| + | 
| } // namespace blink |