From 46b93174fce7ec46f45529f83672ccdac9dd6079 Mon Sep 17 00:00:00 2001 From: Sam Atkins Date: Sat, 14 Aug 2021 14:01:33 +0100 Subject: [PATCH] LibWeb: Treat multi-value CSS properties as StyleValueList by default Some properties, such as `margin`, take multiple values but are not complicated enough to require special-case handling. These no longer parsed after my previous StyleValue changes, so this fixes that. In the future we may want to configure whether to allow this for each property. --- Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp b/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp index d663630326..4d602c26eb 100644 --- a/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp +++ b/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp @@ -2839,7 +2839,18 @@ RefPtr Parser::parse_css_value(PropertyID property_id, TokenStream parsed_values; + for (auto& component_value : component_values) { + auto parsed = parse_css_value(m_context, property_id, component_value); + if (!parsed) + return {}; + parsed_values.append(parsed.release_nonnull()); + } + if (!parsed_values.is_empty()) + return StyleValueList::create(move(parsed_values)); + return {}; }