diff --git a/Tests/LibWeb/Layout/expected/grid/minmax-non-token-contents-crash.txt b/Tests/LibWeb/Layout/expected/grid/minmax-non-token-contents-crash.txt new file mode 100644 index 0000000000..9c6f931a1f --- /dev/null +++ b/Tests/LibWeb/Layout/expected/grid/minmax-non-token-contents-crash.txt @@ -0,0 +1,12 @@ +Viewport <#document> at (0,0) content-size 800x600 children: not-inline + BlockContainer at (0,0) content-size 800x600 [BFC] children: not-inline + BlockContainer at (8,8) content-size 784x0 children: not-inline + BlockContainer
at (8,8) content-size 784x0 children: not-inline + BlockContainer <(anonymous)> at (8,16) content-size 784x0 children: inline + TextNode <#text> + +ViewportPaintable (Viewport<#document>) [0,0 800x600] + PaintableWithLines (BlockContainer) [0,0 800x600] + PaintableWithLines (BlockContainer) [8,8 784x0] overflow: [8,16 784x0] + PaintableWithLines (BlockContainer
) [8,8 784x0] + PaintableWithLines (BlockContainer(anonymous)) [8,16 784x0] diff --git a/Tests/LibWeb/Layout/input/grid/minmax-non-token-contents-crash.html b/Tests/LibWeb/Layout/input/grid/minmax-non-token-contents-crash.html new file mode 100644 index 0000000000..4316c2196c --- /dev/null +++ b/Tests/LibWeb/Layout/input/grid/minmax-non-token-contents-crash.html @@ -0,0 +1 @@ +
diff --git a/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp b/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp index 49b04d3b9f..64484671db 100644 --- a/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp +++ b/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp @@ -5030,14 +5030,13 @@ Optional Parser::parse_grid_size(ComponentValue const& component_ return {}; } - auto token = component_value.token(); - if (token.is(Token::Type::Ident) && token.ident().equals_ignoring_ascii_case("auto"sv)) + if (component_value.is_ident("auto"sv)) return GridSize::make_auto(); - if (token.is(Token::Type::Ident) && token.ident().equals_ignoring_ascii_case("max-content"sv)) + if (component_value.is_ident("max-content"sv)) return GridSize(GridSize::Type::MaxContent); - if (token.is(Token::Type::Ident) && token.ident().equals_ignoring_ascii_case("min-content"sv)) + if (component_value.is_ident("min-content"sv)) return GridSize(GridSize::Type::MinContent); - auto dimension = parse_dimension(token); + auto dimension = parse_dimension(component_value); if (!dimension.has_value()) return {}; if (dimension->is_length())