From c994326d5a70ad95ccb59aa8a71c3b1632802008 Mon Sep 17 00:00:00 2001 From: implicitfield <114500360+implicitfield@users.noreply.github.com> Date: Tue, 9 Jan 2024 12:39:17 +0400 Subject: [PATCH] LibWeb/CSS: Improve parsing of length percentage values for transforms --- .../transform-calc-length-percentage-ref.html | 15 +++++++++++++++ .../Ref/transform-calc-length-percentage.html | 16 ++++++++++++++++ Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp | 2 +- .../Libraries/LibWeb/CSS/StyleProperties.cpp | 2 +- 4 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 Tests/LibWeb/Ref/reference/transform-calc-length-percentage-ref.html create mode 100644 Tests/LibWeb/Ref/transform-calc-length-percentage.html diff --git a/Tests/LibWeb/Ref/reference/transform-calc-length-percentage-ref.html b/Tests/LibWeb/Ref/reference/transform-calc-length-percentage-ref.html new file mode 100644 index 0000000000..2276e7a545 --- /dev/null +++ b/Tests/LibWeb/Ref/reference/transform-calc-length-percentage-ref.html @@ -0,0 +1,15 @@ +
diff --git a/Tests/LibWeb/Ref/transform-calc-length-percentage.html b/Tests/LibWeb/Ref/transform-calc-length-percentage.html new file mode 100644 index 0000000000..660dbb658e --- /dev/null +++ b/Tests/LibWeb/Ref/transform-calc-length-percentage.html @@ -0,0 +1,16 @@ + +
diff --git a/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp b/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp index 35ae5f5a42..9932b07ce1 100644 --- a/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp +++ b/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp @@ -5095,7 +5095,7 @@ RefPtr Parser::parse_transform_value(TokenStream& to break; } case TransformFunctionParameterType::LengthPercentage: { - if (maybe_calc_value && maybe_calc_value->resolves_to_length()) { + if (maybe_calc_value && maybe_calc_value->resolves_to_length_percentage()) { values.append(maybe_calc_value.release_nonnull()); } else { auto dimension_value = parse_dimension_value(value); diff --git a/Userland/Libraries/LibWeb/CSS/StyleProperties.cpp b/Userland/Libraries/LibWeb/CSS/StyleProperties.cpp index 9a6fef9cf7..93547b54e2 100644 --- a/Userland/Libraries/LibWeb/CSS/StyleProperties.cpp +++ b/Userland/Libraries/LibWeb/CSS/StyleProperties.cpp @@ -426,7 +426,7 @@ Vector StyleProperties::transformations_for_style_value(Sty for (auto& transformation_value : transformation_style_value.values()) { if (transformation_value->is_calculated()) { auto& calculated = transformation_value->as_calculated(); - if (calculated.resolves_to_length()) { + if (calculated.resolves_to_length_percentage()) { values.append(CSS::LengthPercentage { calculated }); } else if (calculated.resolves_to_percentage()) { values.append({ calculated.resolve_percentage().value() });