summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/core/css/resolver/transform_builder.cc
diff options
context:
space:
mode:
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.cc21
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;
}
}
}