From 1c82d74a189613b9c339e38273f1ef319b72a235 Mon Sep 17 00:00:00 2001 From: Sam Atkins Date: Mon, 18 Aug 2025 13:02:44 +0100 Subject: [PATCH] LibWeb/CSS: Use serialize_a_number() for Flex serialization --- Libraries/LibWeb/CSS/Flex.cpp | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/Libraries/LibWeb/CSS/Flex.cpp b/Libraries/LibWeb/CSS/Flex.cpp index cd581362c3d..06f958e0c64 100644 --- a/Libraries/LibWeb/CSS/Flex.cpp +++ b/Libraries/LibWeb/CSS/Flex.cpp @@ -6,6 +6,7 @@ #include #include +#include namespace Web::CSS { @@ -27,9 +28,18 @@ Flex Flex::percentage_of(Percentage const& percentage) const String Flex::to_string(SerializationMode serialization_mode) const { - if (serialization_mode == SerializationMode::ResolvedValue) - return MUST(String::formatted("{}fr", to_fr())); - return MUST(String::formatted("{}{}", raw_value(), unit_name())); + // https://drafts.csswg.org/cssom/#serialize-a-css-value + // AD-HOC: No spec definition, so copy the other definitions + if (serialization_mode == SerializationMode::ResolvedValue) { + StringBuilder builder; + serialize_a_number(builder, to_fr()); + builder.append("fr"sv); + return builder.to_string_without_validation(); + } + StringBuilder builder; + serialize_a_number(builder, raw_value()); + builder.append(unit_name()); + return builder.to_string_without_validation(); } double Flex::to_fr() const