diff --git a/Libraries/LibWeb/Layout/GridFormattingContext.cpp b/Libraries/LibWeb/Layout/GridFormattingContext.cpp index dd7c38c2154..687b2c55da2 100644 --- a/Libraries/LibWeb/Layout/GridFormattingContext.cpp +++ b/Libraries/LibWeb/Layout/GridFormattingContext.cpp @@ -2460,7 +2460,14 @@ CSSPixels GridFormattingContext::calculate_min_content_contribution(GridItem con } if (should_treat_preferred_size_as_auto) { - auto result = item.add_margin_box_sizes(calculate_min_content_size(item, dimension), dimension); + CSSPixels min_content_size; + // NOTE: This behavior is not defined in the spec, but seems required to match other browsers. + if (item.box->is_scroll_container()) { + min_content_size = 0; + } else { + min_content_size = calculate_min_content_size(item, dimension); + } + auto result = item.add_margin_box_sizes(min_content_size, dimension); return min(result, maximum_size); } diff --git a/Tests/LibWeb/Layout/expected/grid/inline-item-with-overflow-hidden.txt b/Tests/LibWeb/Layout/expected/grid/inline-item-with-overflow-hidden.txt new file mode 100644 index 00000000000..b7746ebe7cc --- /dev/null +++ b/Tests/LibWeb/Layout/expected/grid/inline-item-with-overflow-hidden.txt @@ -0,0 +1,20 @@ +Viewport <#document> at [0,0] [0+0+0 800 0+0+0] [0+0+0 600 0+0+0] children: not-inline + BlockContainer at [0,0] [0+0+0 800 0+0+0] [0+0+0 34 0+0+0] [BFC] children: not-inline + BlockContainer
at [8,8] [8+0+0 784 0+0+8] [8+0+0 18 0+0+8] children: not-inline + Box