diff --git a/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp b/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp index e533773fe0..7a76ef846b 100644 --- a/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp +++ b/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp @@ -5563,9 +5563,9 @@ RefPtr Parser::parse_grid_track_size_list_shorthand_value(PropertyID { parsed_template_areas_values.release_nonnull(), parsed_template_rows_values.release_nonnull(), parsed_template_columns_values.release_nonnull() }); } -RefPtr Parser::parse_grid_area_shorthand_value(Vector const& component_values) +RefPtr Parser::parse_grid_area_shorthand_value(TokenStream& tokens) { - auto tokens = TokenStream { component_values }; + auto transaction = tokens.begin_transaction(); auto parse_placement_tokens = [&](Vector& placement_tokens, bool check_for_delimiter = true) -> void { auto current_token = tokens.next_token(); @@ -5635,6 +5635,7 @@ RefPtr Parser::parse_grid_area_shorthand_value(Vector> Parser::parse_css_value(Property return parsed_value.release_nonnull(); return ParseError::SyntaxError; case PropertyID::GridArea: - if (auto parsed_value = parse_grid_area_shorthand_value(component_values)) + if (auto parsed_value = parse_grid_area_shorthand_value(tokens); parsed_value && !tokens.has_next_token()) return parsed_value.release_nonnull(); return ParseError::SyntaxError; case PropertyID::GridAutoFlow: diff --git a/Userland/Libraries/LibWeb/CSS/Parser/Parser.h b/Userland/Libraries/LibWeb/CSS/Parser/Parser.h index 4c191e1085..dab5aa86ea 100644 --- a/Userland/Libraries/LibWeb/CSS/Parser/Parser.h +++ b/Userland/Libraries/LibWeb/CSS/Parser/Parser.h @@ -265,7 +265,7 @@ private: RefPtr parse_grid_track_placement(Vector const&); RefPtr parse_grid_track_placement_shorthand_value(PropertyID, TokenStream&); RefPtr parse_grid_template_areas_value(Vector const&); - RefPtr parse_grid_area_shorthand_value(Vector const&); + RefPtr parse_grid_area_shorthand_value(TokenStream&); RefPtr parse_grid_shorthand_value(Vector const&); OwnPtr parse_a_calculation(Vector const&);