diff options
Diffstat (limited to 'chromium/third_party/blink/renderer/core/css/resolver/transform_builder.cc')
-rw-r--r-- | chromium/third_party/blink/renderer/core/css/resolver/transform_builder.cc | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/chromium/third_party/blink/renderer/core/css/resolver/transform_builder.cc b/chromium/third_party/blink/renderer/core/css/resolver/transform_builder.cc index c3e1ba7177b..d2bfb9520c4 100644 --- a/chromium/third_party/blink/renderer/core/css/resolver/transform_builder.cc +++ b/chromium/third_party/blink/renderer/core/css/resolver/transform_builder.cc @@ -31,6 +31,9 @@ #include "third_party/blink/renderer/core/css/resolver/transform_builder.h" #include "third_party/blink/renderer/core/css/css_function_value.h" +#include "third_party/blink/renderer/core/css/css_math_expression_node.h" +#include "third_party/blink/renderer/core/css/css_math_function_value.h" +#include "third_party/blink/renderer/core/css/css_numeric_literal_value.h" #include "third_party/blink/renderer/core/css/css_primitive_value_mappings.h" #include "third_party/blink/renderer/platform/heap/handle.h" #include "third_party/blink/renderer/platform/transforms/matrix_3d_transform_operation.h" @@ -107,20 +110,14 @@ bool TransformBuilder::HasRelativeLengths(const CSSValueList& value_list) { for (const CSSValue* item : *transform_value) { const auto& primitive_value = To<CSSPrimitiveValue>(*item); - if (primitive_value.IsCalculated()) { - CSSCalcValue* css_calc_value = primitive_value.CssCalcValue(); - CSSPrimitiveValue::UnitType resolved_type = - css_calc_value->ExpressionNode()->TypeWithCalcResolved(); - if (CSSPrimitiveValue::IsRelativeUnit(resolved_type) || - resolved_type == CSSPrimitiveValue::UnitType::kUnknown) { + if (To<CSSMathFunctionValue>(primitive_value).MayHaveRelativeUnit()) + return true; + } else { + CSSPrimitiveValue::UnitType unit_type = + To<CSSNumericLiteralValue>(primitive_value).GetType(); + if (CSSPrimitiveValue::IsRelativeUnit(unit_type)) return true; - } - } - - if (CSSPrimitiveValue::IsRelativeUnit( - primitive_value.TypeWithCalcResolved())) { - return true; } } } |