.content) [8,8 784x51]
+ PaintableWithLines (BlockContainer(anonymous)) [8,8 784x51]
+ TextPaintable (TextNode<#text>)
+ PaintableWithLines (BlockContainer
.footer) [8,59 784x17]
+ TextPaintable (TextNode<#text>)
diff --git a/Tests/LibWeb/Layout/input/grid/min-height-from-text.html b/Tests/LibWeb/Layout/input/grid/min-height-from-text.html
new file mode 100644
index 00000000000..90e9f3b538d
--- /dev/null
+++ b/Tests/LibWeb/Layout/input/grid/min-height-from-text.html
@@ -0,0 +1,26 @@
+
+
+
+
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam dignissim elit eget arcu accumsan imperdiet vulputate
+ a justo. Phasellus tincidunt sem non tellus tristique hendrerit quis eu eros. Morbi dolor erat, posuere ut feugiat
+ rhoncus, vestibulum vel tortor.
+
+
+
diff --git a/Userland/Libraries/LibWeb/Layout/GridFormattingContext.cpp b/Userland/Libraries/LibWeb/Layout/GridFormattingContext.cpp
index 41e23621861..3122cd7bb09 100644
--- a/Userland/Libraries/LibWeb/Layout/GridFormattingContext.cpp
+++ b/Userland/Libraries/LibWeb/Layout/GridFormattingContext.cpp
@@ -2248,12 +2248,22 @@ CSSPixels GridFormattingContext::calculate_limited_min_content_contribution(Grid
if (min_content_contribution < minimum_contribution)
return minimum_contribution;
+ auto should_treat_max_size_as_none = [&]() {
+ switch (dimension) {
+ case GridDimension::Row:
+ return should_treat_max_height_as_none(grid_container(), m_available_space->height);
+ case GridDimension::Column:
+ return should_treat_max_width_as_none(grid_container(), m_available_space->width);
+ default:
+ VERIFY_NOT_REACHED();
+ }
+ }();
+
// FIXME: limit by max track sizing function instead of grid container maximum size
- auto const& available_size = dimension == GridDimension::Column ? m_available_space->width : m_available_space->height;
- if (!should_treat_max_width_as_none(grid_container(), available_size)) {
- auto max_width = calculate_grid_container_maximum_size(dimension);
- if (min_content_contribution > max_width)
- return max_width;
+ if (!should_treat_max_size_as_none) {
+ auto max_size = calculate_grid_container_maximum_size(dimension);
+ if (min_content_contribution > max_size)
+ return max_size;
}
return min_content_contribution;