github web-platform-tests/wpt merge_pr_47106

latest releases: merge_pr_49470, epochs/three_hourly/2024-12-03_06H, epochs/six_hourly/2024-12-03_06H...
14 months ago

Support for cloned box decorations inside block fragmentation.

There's some remaining work for flex and grid layout, and nested
multicol. This CL only fixes it for block containers and tables. There
happens to be some tests for tables already [1], and we don't want to
regress them (the refs were also using box-decoration-break:clone, so
they actually pass with no box decoration cloning support at all, but
would fail with incorrect box decoration cloning support).

BorderPadding() of a fragment builder now include border+padding from
previous fragments, so that ComputeBlockSizeForFragment() does the right
thing.

BorderScrollbarPadding() is for positioning and sizing things inside the
current fragment only, had has traditionally unconditionally removed the
block-start part after fragmentation breaks. Don't do this if box
decorations are to be cloned.

Also note that the "scrollbar" part of BorderScrollbarPadding() is
always 0 when block fragmentation is involved, since scrollable elements
are always monolithic.

The remaining work for flex, grid, and nested multicol is mainly about
using BorderPadding() vs BorderScrollbarPadding() correctly, and also
not assume that IsBreakInside(incoming_break_token) implies that the
start block-offset for children should be 0.

[1] e.g. css/css-break/table/table-fragmentation-001c-print.html

Bug: 40415661
Change-Id: If198b90d4ee0501d0ca66c909bbed1be37c7c5b8
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5694768
Reviewed-by: Ian Kilpatrick ikilpatrick@chromium.org
Commit-Queue: Morten Stenshorne mstensho@chromium.org
Cr-Commit-Position: refs/heads/main@{#1326658}

Don't miss a new wpt release

NewReleases is sending notifications on new releases.