Commit 19dbf3f3 authored by fs's avatar fs Committed by Commit bot

Use a converter for building style value for 'transform'

Also change TransformBuilder::createTransformOperations to return the
TransformOperations rather than use an out argument.

Review-Url: https://codereview.chromium.org/2435413002
Cr-Commit-Position: refs/heads/master@{#427036}
parent 75efa395
...@@ -201,9 +201,8 @@ InterpolationValue CSSTransformInterpolationType::maybeConvertValue( ...@@ -201,9 +201,8 @@ InterpolationValue CSSTransformInterpolationType::maybeConvertValue(
conversionCheckers.append(std::move(lengthUnitsChecker)); conversionCheckers.append(std::move(lengthUnitsChecker));
} }
TransformOperations transform; TransformOperations transform = TransformBuilder::createTransformOperations(
TransformBuilder::createTransformOperations( value, state.cssToLengthConversionData());
value, state.cssToLengthConversionData(), transform);
return convertTransform(std::move(transform)); return convertTransform(std::move(transform));
} }
......
...@@ -77,11 +77,10 @@ void CSSMatrix::setMatrixValue(const String& string, ...@@ -77,11 +77,10 @@ void CSSMatrix::setMatrixValue(const String& string,
return; return;
DEFINE_STATIC_REF(ComputedStyle, initialStyle, createInitialStyle()); DEFINE_STATIC_REF(ComputedStyle, initialStyle, createInitialStyle());
TransformOperations operations; TransformOperations operations =
TransformBuilder::createTransformOperations( TransformBuilder::createTransformOperations(
*value, CSSToLengthConversionData(initialStyle, initialStyle, *value, CSSToLengthConversionData(initialStyle, initialStyle,
LayoutViewItem(nullptr), 1.0f), LayoutViewItem(nullptr), 1.0f));
operations);
// Convert transform operations to a TransformationMatrix. This can fail // Convert transform operations to a TransformationMatrix. This can fail
// if a param has a percentage ('%') // if a param has a percentage ('%')
......
...@@ -350,7 +350,7 @@ text-transform inherited ...@@ -350,7 +350,7 @@ text-transform inherited
text-underline-position runtime_flag=CSS3TextDecorations, inherited, type_name=TextUnderlinePosition text-underline-position runtime_flag=CSS3TextDecorations, inherited, type_name=TextUnderlinePosition
top typedom_types=[Length], keywords=[auto], supports_percentage, interpolable, initial=initialOffset, converter=convertLengthOrAuto top typedom_types=[Length], keywords=[auto], supports_percentage, interpolable, initial=initialOffset, converter=convertLengthOrAuto
touch-action converter=convertFlags<TouchAction>, type_name=TouchAction touch-action converter=convertFlags<TouchAction>, type_name=TouchAction
transform typedom_types=[Transform], keywords=[none], interpolable, custom_value transform typedom_types=[Transform], keywords=[none], interpolable, converter=convertTransformOperations
transform-origin interpolable, converter=convertTransformOrigin transform-origin interpolable, converter=convertTransformOrigin
transform-style name_for_methods=TransformStyle3D transform-style name_for_methods=TransformStyle3D
translate runtime_flag=CSSIndependentTransformProperties, converter=convertTranslate, interpolable translate runtime_flag=CSSIndependentTransformProperties, converter=convertTranslate, interpolable
......
...@@ -45,6 +45,7 @@ ...@@ -45,6 +45,7 @@
#include "core/css/CSSURIValue.h" #include "core/css/CSSURIValue.h"
#include "core/css/CSSValuePair.h" #include "core/css/CSSValuePair.h"
#include "core/css/resolver/FilterOperationResolver.h" #include "core/css/resolver/FilterOperationResolver.h"
#include "core/css/resolver/TransformBuilder.h"
#include "core/frame/LocalFrame.h" #include "core/frame/LocalFrame.h"
#include "core/frame/UseCounter.h" #include "core/frame/UseCounter.h"
#include "core/style/ClipPathOperation.h" #include "core/style/ClipPathOperation.h"
...@@ -1141,6 +1142,13 @@ TextSizeAdjust StyleBuilderConverter::convertTextSizeAdjust( ...@@ -1141,6 +1142,13 @@ TextSizeAdjust StyleBuilderConverter::convertTextSizeAdjust(
return TextSizeAdjust(primitiveValue.getFloatValue() / 100.0f); return TextSizeAdjust(primitiveValue.getFloatValue() / 100.0f);
} }
TransformOperations StyleBuilderConverter::convertTransformOperations(
StyleResolverState& state,
const CSSValue& value) {
return TransformBuilder::createTransformOperations(
value, state.cssToLengthConversionData());
}
TransformOrigin StyleBuilderConverter::convertTransformOrigin( TransformOrigin StyleBuilderConverter::convertTransformOrigin(
StyleResolverState& state, StyleResolverState& state,
const CSSValue& value) { const CSSValue& value) {
......
...@@ -140,6 +140,8 @@ class StyleBuilderConverter { ...@@ -140,6 +140,8 @@ class StyleBuilderConverter {
static float convertTextStrokeWidth(StyleResolverState&, const CSSValue&); static float convertTextStrokeWidth(StyleResolverState&, const CSSValue&);
static TextSizeAdjust convertTextSizeAdjust(StyleResolverState&, static TextSizeAdjust convertTextSizeAdjust(StyleResolverState&,
const CSSValue&); const CSSValue&);
static TransformOperations convertTransformOperations(StyleResolverState&,
const CSSValue&);
static TransformOrigin convertTransformOrigin(StyleResolverState&, static TransformOrigin convertTransformOrigin(StyleResolverState&,
const CSSValue&); const CSSValue&);
......
...@@ -63,7 +63,6 @@ ...@@ -63,7 +63,6 @@
#include "core/css/resolver/FilterOperationResolver.h" #include "core/css/resolver/FilterOperationResolver.h"
#include "core/css/resolver/FontBuilder.h" #include "core/css/resolver/FontBuilder.h"
#include "core/css/resolver/StyleBuilder.h" #include "core/css/resolver/StyleBuilder.h"
#include "core/css/resolver/TransformBuilder.h"
#include "core/frame/LocalFrame.h" #include "core/frame/LocalFrame.h"
#include "core/frame/Settings.h" #include "core/frame/Settings.h"
#include "core/style/ComputedStyle.h" #include "core/style/ComputedStyle.h"
...@@ -562,16 +561,6 @@ void StyleBuilderFunctions::applyValueCSSPropertyTextIndent( ...@@ -562,16 +561,6 @@ void StyleBuilderFunctions::applyValueCSSPropertyTextIndent(
state.style()->setTextIndentType(textIndentTypeValue); state.style()->setTextIndentType(textIndentTypeValue);
} }
void StyleBuilderFunctions::applyValueCSSPropertyTransform(
StyleResolverState& state,
const CSSValue& value) {
// FIXME: We should just make this a converter
TransformOperations operations;
TransformBuilder::createTransformOperations(
value, state.cssToLengthConversionData(), operations);
state.style()->setTransform(operations);
}
void StyleBuilderFunctions::applyInheritCSSPropertyVerticalAlign( void StyleBuilderFunctions::applyInheritCSSPropertyVerticalAlign(
StyleResolverState& state) { StyleResolverState& state) {
EVerticalAlign verticalAlign = state.parentStyle()->verticalAlign(); EVerticalAlign verticalAlign = state.parentStyle()->verticalAlign();
......
...@@ -102,14 +102,13 @@ static TransformOperation::OperationType getTransformOperationType( ...@@ -102,14 +102,13 @@ static TransformOperation::OperationType getTransformOperationType(
} }
} }
void TransformBuilder::createTransformOperations( TransformOperations TransformBuilder::createTransformOperations(
const CSSValue& inValue, const CSSValue& inValue,
const CSSToLengthConversionData& conversionData, const CSSToLengthConversionData& conversionData) {
TransformOperations& outOperations) { TransformOperations operations;
ASSERT(!outOperations.size());
if (!inValue.isValueList()) { if (!inValue.isValueList()) {
DCHECK_EQ(toCSSIdentifierValue(inValue).getValueID(), CSSValueNone); DCHECK_EQ(toCSSIdentifierValue(inValue).getValueID(), CSSValueNone);
return; return operations;
} }
float zoomFactor = conversionData.zoom(); float zoomFactor = conversionData.zoom();
...@@ -141,7 +140,7 @@ void TransformBuilder::createTransformOperations( ...@@ -141,7 +140,7 @@ void TransformBuilder::createTransformOperations(
} }
} }
} }
outOperations.operations().append( operations.operations().append(
ScaleTransformOperation::create(sx, sy, 1.0, transformType)); ScaleTransformOperation::create(sx, sy, 1.0, transformType));
break; break;
} }
...@@ -157,7 +156,7 @@ void TransformBuilder::createTransformOperations( ...@@ -157,7 +156,7 @@ void TransformBuilder::createTransformOperations(
sy = toCSSPrimitiveValue(transformValue->item(1)).getDoubleValue(); sy = toCSSPrimitiveValue(transformValue->item(1)).getDoubleValue();
sz = toCSSPrimitiveValue(transformValue->item(2)).getDoubleValue(); sz = toCSSPrimitiveValue(transformValue->item(2)).getDoubleValue();
} }
outOperations.operations().append( operations.operations().append(
ScaleTransformOperation::create(sx, sy, sz, transformType)); ScaleTransformOperation::create(sx, sy, sz, transformType));
break; break;
} }
...@@ -179,7 +178,7 @@ void TransformBuilder::createTransformOperations( ...@@ -179,7 +178,7 @@ void TransformBuilder::createTransformOperations(
} }
} }
outOperations.operations().append( operations.operations().append(
TranslateTransformOperation::create(tx, ty, 0, transformType)); TranslateTransformOperation::create(tx, ty, 0, transformType));
break; break;
} }
...@@ -198,7 +197,7 @@ void TransformBuilder::createTransformOperations( ...@@ -198,7 +197,7 @@ void TransformBuilder::createTransformOperations(
.computeLength<double>(conversionData); .computeLength<double>(conversionData);
} }
outOperations.operations().append( operations.operations().append(
TranslateTransformOperation::create(tx, ty, tz, transformType)); TranslateTransformOperation::create(tx, ty, tz, transformType));
break; break;
} }
...@@ -209,7 +208,7 @@ void TransformBuilder::createTransformOperations( ...@@ -209,7 +208,7 @@ void TransformBuilder::createTransformOperations(
double x = transformType == TransformOperation::RotateX; double x = transformType == TransformOperation::RotateX;
double y = transformType == TransformOperation::RotateY; double y = transformType == TransformOperation::RotateY;
double z = transformType == TransformOperation::RotateZ; double z = transformType == TransformOperation::RotateZ;
outOperations.operations().append( operations.operations().append(
RotateTransformOperation::create(x, y, z, angle, transformType)); RotateTransformOperation::create(x, y, z, angle, transformType));
break; break;
} }
...@@ -224,7 +223,7 @@ void TransformBuilder::createTransformOperations( ...@@ -224,7 +223,7 @@ void TransformBuilder::createTransformOperations(
double y = secondValue.getDoubleValue(); double y = secondValue.getDoubleValue();
double z = thirdValue.getDoubleValue(); double z = thirdValue.getDoubleValue();
double angle = fourthValue.computeDegrees(); double angle = fourthValue.computeDegrees();
outOperations.operations().append( operations.operations().append(
RotateTransformOperation::create(x, y, z, angle, transformType)); RotateTransformOperation::create(x, y, z, angle, transformType));
break; break;
} }
...@@ -246,7 +245,7 @@ void TransformBuilder::createTransformOperations( ...@@ -246,7 +245,7 @@ void TransformBuilder::createTransformOperations(
} }
} }
} }
outOperations.operations().append( operations.operations().append(
SkewTransformOperation::create(angleX, angleY, transformType)); SkewTransformOperation::create(angleX, angleY, transformType));
break; break;
} }
...@@ -264,7 +263,7 @@ void TransformBuilder::createTransformOperations( ...@@ -264,7 +263,7 @@ void TransformBuilder::createTransformOperations(
double f = double f =
zoomFactor * zoomFactor *
toCSSPrimitiveValue(transformValue->item(5)).getDoubleValue(); toCSSPrimitiveValue(transformValue->item(5)).getDoubleValue();
outOperations.operations().append( operations.operations().append(
MatrixTransformOperation::create(a, b, c, d, e, f)); MatrixTransformOperation::create(a, b, c, d, e, f));
break; break;
} }
...@@ -288,14 +287,14 @@ void TransformBuilder::createTransformOperations( ...@@ -288,14 +287,14 @@ void TransformBuilder::createTransformOperations(
toCSSPrimitiveValue(transformValue->item(13)).getDoubleValue(), toCSSPrimitiveValue(transformValue->item(13)).getDoubleValue(),
toCSSPrimitiveValue(transformValue->item(14)).getDoubleValue(), toCSSPrimitiveValue(transformValue->item(14)).getDoubleValue(),
toCSSPrimitiveValue(transformValue->item(15)).getDoubleValue()); toCSSPrimitiveValue(transformValue->item(15)).getDoubleValue());
outOperations.operations().append( operations.operations().append(
Matrix3DTransformOperation::create(matrix)); Matrix3DTransformOperation::create(matrix));
break; break;
} }
case TransformOperation::Perspective: { case TransformOperation::Perspective: {
double p = firstValue.computeLength<double>(conversionData); double p = firstValue.computeLength<double>(conversionData);
ASSERT(p >= 0); ASSERT(p >= 0);
outOperations.operations().append( operations.operations().append(
PerspectiveTransformOperation::create(p)); PerspectiveTransformOperation::create(p));
break; break;
} }
...@@ -304,6 +303,7 @@ void TransformBuilder::createTransformOperations( ...@@ -304,6 +303,7 @@ void TransformBuilder::createTransformOperations(
break; break;
} }
} }
return operations;
} }
} // namespace blink } // namespace blink
...@@ -44,9 +44,9 @@ class TransformBuilder { ...@@ -44,9 +44,9 @@ class TransformBuilder {
STATIC_ONLY(TransformBuilder); STATIC_ONLY(TransformBuilder);
public: public:
static void createTransformOperations(const CSSValue& inValue, static TransformOperations createTransformOperations(
const CSSToLengthConversionData&, const CSSValue& inValue,
TransformOperations& outOperations); const CSSToLengthConversionData&);
}; };
} // namespace blink } // namespace blink
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment