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())