Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: f435986450ce50cc8971309175b0986b5dfa75c8
https://github.com/WebKit/WebKit/commit/f435986450ce50cc8971309175b0986b5dfa75c8
Author: Brandon Stewart <[email protected]>
Date: 2026-02-11 (Wed, 11 Feb 2026)
Changed paths:
M LayoutTests/TestExpectations
M
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-lanes/tentative/subgrid/track-sizing/grid-lanes-subgrid-intrinsic-sizing-expected.html
M
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-lanes/tentative/subgrid/track-sizing/grid-lanes-subgrid-intrinsic-sizing-ref.html
M
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-lanes/tentative/subgrid/track-sizing/grid-lanes-subgrid-intrinsic-sizing.html
M Source/WebCore/rendering/GridTrackSizingAlgorithm.cpp
M Source/WebCore/rendering/GridTrackSizingAlgorithm.h
Log Message:
-----------
[grid-lanes] Fix masonry track sizing to properly handle subgrid children's
intrinsic contributions
https://bugs.webkit.org/show_bug.cgi?id=307109
rdar://problem/169743714
Reviewed by Sammy Gill.
The previous GridIterator-based approach in
computeDefiniteAndIndefiniteItemsForMasonry() did not walk into subgrids,
causing their children's intrinsic sizes to be ignored during masonry track
sizing. For example, a masonry grid with `auto min-content max-content`
columns and a subgrid spanning columns 2–3 would fail to propagate the
subgrid children's widths into the parent tracks.
Fix this by adopting the same stack-based depth-first traversal used by
aggregateGridItemsForIntrinsicSizing(), which correctly recurses into
subgrids while accumulating margin/border/padding contributions along
the way.
Factor the shared traversal logic into a new template helper,
forEachGridItemForIntrinsicSizing(), so both functions use the same
code path for subgrid handling. This eliminates ~30 lines of duplication
and ensures future traversal changes only need to happen in one place.
* LayoutTests/TestExpectations:
*
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-lanes/tentative/subgrid/track-sizing/grid-lanes-subgrid-intrinsic-sizing-expected.html:
*
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-lanes/tentative/subgrid/track-sizing/grid-lanes-subgrid-intrinsic-sizing-ref.html:
*
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-lanes/tentative/subgrid/track-sizing/grid-lanes-subgrid-intrinsic-sizing.html:
* Source/WebCore/rendering/GridTrackSizingAlgorithm.cpp:
(WebCore::GridTrackSizingAlgorithm::traverseSubgridTreeForIntrinsicSizing):
(WebCore::GridTrackSizingAlgorithm::aggregateGridItemsForIntrinsicSizing):
(WebCore::GridTrackSizingAlgorithm::computeDefiniteAndIndefiniteItemsForMasonry):
(WebCore::GridTrackSizingAlgorithm::shouldExcludeGridItemForMasonryTrackSizing
const): Deleted.
* Source/WebCore/rendering/GridTrackSizingAlgorithm.h:
Canonical link: https://commits.webkit.org/307260@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications