Bug 1717057 [wpt PR 29418] - Fix RecalcLayoutOverflow() for multicol in LayoutNGBlock...
commitee44d43d0210587e1d43c9d1b6d885b8f6244669
authorManuel Rego Casasnovas <rego@igalia.com>
Wed, 30 Jun 2021 21:31:34 +0000 (30 21:31 +0000)
committermoz-wptsync-bot <wptsync@mozilla.com>
Thu, 1 Jul 2021 05:11:13 +0000 (1 05:11 +0000)
treeb3da927c3b2d1290b27e8d6b55fd552ef382f4f4
parentdf52a8d25b5ea452c27bf6c98c8526025919f63b
Bug 1717057 [wpt PR 29418] - Fix RecalcLayoutOverflow() for multicol in LayoutNGBlockFragmentation, a=testonly

Automatic update from web-platform-tests
Fix RecalcLayoutOverflow() for multicol in LayoutNGBlockFragmentation

The fragmentainer in multicol is still using a legacy layout object.
When we reach the fragment of the column, we get
a LayoutMultiColumnFlowThread legacy object,
and we call LayoutBlock::RecalcLayoutOverflow().
That means that we start to use the legacy layout code
to recalc the layout overflow.

To fix this this patch is skipping the fragmentainers
in RecalcChildLayoutOverflow(), and going to the children directly.
The fragmentainers have the positioned objects as children,
so we process them properly.

The patch also uses AllowPostLayoutScope to avoid DCHECK failures,
as all the recalc layout overflow code uses PostLayout.

This only fixes the scrollable-overflow-transform-dynamic-008.html test
when LayoutNGBlockFragmentation is enabled.
Only the first test case pass, due to an invalidation issue related to
multicol and positioned elements (see crbug.com/1223220).

BUG=1221181,1223220
TEST=external/wpt/css/css-multicol/multicol-overflow-positioned-transform-001.html
TEST=external/wpt/css/css-multicol/multicol-overflow-transform-001.html

Change-Id: I8ecda520551f2c3e832f2e77cdedcb1fc17fe99f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2968984
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Reviewed-by: Alison Maher <almaher@microsoft.com>
Commit-Queue: Manuel Rego <rego@igalia.com>
Cr-Commit-Position: refs/heads/master@{#897304}

--

wpt-commits: 616577e3962171d2ffe41472e13f6353e6ea43ef
wpt-pr: 29418
testing/web-platform/tests/css/css-multicol/multicol-overflow-positioned-transform-001.html [new file with mode: 0644]
testing/web-platform/tests/css/css-multicol/multicol-overflow-transform-001.html [new file with mode: 0644]