From 7386ed7cfb55774a34c747f5c6e2e3ddcba8ff6a Mon Sep 17 00:00:00 2001 From: Sam Atkins Date: Wed, 24 May 2023 16:47:16 +0100 Subject: [PATCH] LibWeb: Use new StyleValue parsing for content --- Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp b/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp index a7d43c1742..4d05cd5d85 100644 --- a/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp +++ b/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp @@ -4997,22 +4997,25 @@ ErrorOr> Parser::parse_content_value(Vector c StyleValueVector alt_text_values; bool in_alt_text = false; - for (auto const& value : component_values) { - if (value.is(Token::Type::Delim) && value.token().delim() == '/') { + auto tokens = TokenStream { component_values }; + while (tokens.has_next_token()) { + auto& next = tokens.peek_token(); + if (next.is(Token::Type::Delim) && next.token().delim() == '/') { if (in_alt_text || content_values.is_empty()) return nullptr; in_alt_text = true; + (void)tokens.next_token(); continue; } - auto style_value = TRY(parse_css_value(value)); - if (style_value && property_accepts_value(PropertyID::Content, *style_value)) { + + if (auto style_value = TRY(parse_css_value_for_property(PropertyID::Content, tokens))) { if (is_single_value_identifier(style_value->to_identifier())) return nullptr; if (in_alt_text) { - alt_text_values.append(style_value.release_nonnull()); + TRY(alt_text_values.try_append(style_value.release_nonnull())); } else { - content_values.append(style_value.release_nonnull()); + TRY(content_values.try_append(style_value.release_nonnull())); } continue; }