tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit d04ae371a1e1c4fc9a4ef80c53cb734ecd8af717
parent 11b99a0665321b7c347b95b5e26e8e328898bee5
Author: Morten Stenshorne <mstensho@chromium.org>
Date:   Mon,  8 Dec 2025 12:27:34 +0000

Bug 2004113 [wpt PR 56497] - Multicol post-layout: subtree force update consistency fix., a=testonly

Automatic update from web-platform-tests
Multicol post-layout: subtree force update consistency fix.

Add a state stack. We couldn't trust ShouldForceEntireSubtreeUpdate() to
return the same value upon entry as upon exit, since
SetShouldCheckForPaintInvalidation() might be called on a descendant in
the meantime (and propagated up the tree).

force_entire_subtree_update_ in TraversalListener ended up as negative,
because the result of ShouldForceEntireSubtreeUpdate() wasn't the same
upon entry (false) and exit (true). This caused a DCHECK failure.
`DCHECK_GE(force_entire_subtree_update_, 0)`

This particular case does seem benign, but the CL is also a speculative
"fix" for the real crash in crbug.com/464464623 (not been able to
reproduce it).

Bug: 464464623
Change-Id: I3d942d71930762ab7db73297567b722e28a06312
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7221490
Commit-Queue: Morten Stenshorne <mstensho@chromium.org>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1554230}

--

wpt-commits: 674a55c8b89bfb9912b69ddc88b22d164679b29f
wpt-pr: 56497

Diffstat:
Atesting/web-platform/tests/css/css-multicol/crashtests/triply-nested-partial-relayout.html | 24++++++++++++++++++++++++
1 file changed, 24 insertions(+), 0 deletions(-)

diff --git a/testing/web-platform/tests/css/css-multicol/crashtests/triply-nested-partial-relayout.html b/testing/web-platform/tests/css/css-multicol/crashtests/triply-nested-partial-relayout.html @@ -0,0 +1,24 @@ +<!DOCTYPE html> +<html class="reftest-wait"> +<title>Triply nested multicol. Change something in the outermost that doesn't affect the three innermost.</title> +<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org"> +<link rel="help" href="https://issues.chromium.org/issues/464464623"> +<div style="columns:2; column-fill:auto; height:100px;"> + <div id="touchme"></div> + <div style="columns:2; column-fill:auto; height:100px;"> + <div style="columns:2; column-fill:auto; height:100px;"> + <div style="columns:2; column-fill:auto; height:100px;"> + x + </div> + </div> + </div> +</div> +<script> + requestAnimationFrame(()=> { + requestAnimationFrame(()=> { + touchme.style.width = "100px"; + document.body.offsetTop; + document.documentElement.classList.remove("reftest-wait"); + }); + }); +</script>