From 6e68e8f3c9d74893e46ab0514169b950866457b4 Mon Sep 17 00:00:00 2001 From: Sam Atkins Date: Tue, 15 Oct 2024 10:21:40 +0100 Subject: [PATCH] LibWeb/CSS: Insert whitespace between tokens in serialized UnresolvedSV Otherwise, `margin: var(--foo) var(--bar)` would be wrongly serialized as `margin: var(--foo)var(--bar)` --- Tests/LibWeb/Text/expected/css/attr-serialization.txt | 1 + Tests/LibWeb/Text/input/css/attr-serialization.html | 1 + .../LibWeb/CSS/StyleValues/UnresolvedStyleValue.cpp | 5 +---- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/Tests/LibWeb/Text/expected/css/attr-serialization.txt b/Tests/LibWeb/Text/expected/css/attr-serialization.txt index 64022fac20a..f40cf89058a 100644 --- a/Tests/LibWeb/Text/expected/css/attr-serialization.txt +++ b/Tests/LibWeb/Text/expected/css/attr-serialization.txt @@ -6,3 +6,4 @@ attr(foo string) attr( foo string ) attr(foo string, "fallback") attr( foo string , "fallback" ) +attr(foo) attr(bar) attr(baz) diff --git a/Tests/LibWeb/Text/input/css/attr-serialization.html b/Tests/LibWeb/Text/input/css/attr-serialization.html index f2c77b83be7..51f312b2089 100644 --- a/Tests/LibWeb/Text/input/css/attr-serialization.html +++ b/Tests/LibWeb/Text/input/css/attr-serialization.html @@ -18,5 +18,6 @@ serialize('attr(foo string, "fallback")'); // FIXME: This should produce `attr(foo string, "fallback")` but doesn't yet. serialize('attr( foo string , "fallback" )'); + serialize(' attr(foo) attr(bar) attr(baz) '); }); diff --git a/Userland/Libraries/LibWeb/CSS/StyleValues/UnresolvedStyleValue.cpp b/Userland/Libraries/LibWeb/CSS/StyleValues/UnresolvedStyleValue.cpp index fcb3876d403..875cb8a5c21 100644 --- a/Userland/Libraries/LibWeb/CSS/StyleValues/UnresolvedStyleValue.cpp +++ b/Userland/Libraries/LibWeb/CSS/StyleValues/UnresolvedStyleValue.cpp @@ -17,10 +17,7 @@ String UnresolvedStyleValue::to_string() const if (m_original_source_text.has_value()) return *m_original_source_text; - StringBuilder builder; - for (auto& value : m_values) - builder.append(value.to_string()); - return MUST(builder.to_string()); + return MUST(String::join(' ', m_values)); } bool UnresolvedStyleValue::equals(CSSStyleValue const& other) const