tor-browser

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

commit 99945be7fe02af2ca1f164afb616fe62f6be39c1
parent 9d0cd06ff4e62a609a482a9ec4b36cc880478ea6
Author: Steve Kobes <skobes@chromium.org>
Date:   Wed, 24 Dec 2025 10:01:42 +0000

Bug 2007621 [wpt PR 56911] - ScopedVT: Fix prepaint context for ::v-t clip/scroll escaping., a=testonly

Automatic update from web-platform-tests
ScopedVT: Fix prepaint context for ::v-t clip/scroll escaping.

Overriding local_border_box_properties of FragmentData was not correct,
for reasons explained in the bug. Revert changes of crrev.com/c/7229802
and crrev.com/c/7224470 in favor of modifying the clip and transform in
the ContainingBlockContext during the prepaint tree walk.

Bug: 468277656
Fuchsia-Binary-Size: Size increase is unavoidable
Change-Id: I84398c17e5a763c2baa07a5497fb382c9da223ae
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7302909
Reviewed-by: Khushal Sagar <khushalsagar@chromium.org>
Commit-Queue: Steve Kobes <skobes@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1562386}

--

wpt-commits: 5df21979d1ab403efef4de14ff6dfe6e6887e70d
wpt-pr: 56911

Diffstat:
Atesting/web-platform/tests/css/css-view-transitions/scoped/scroller-with-child-ref.html | 32++++++++++++++++++++++++++++++++
Atesting/web-platform/tests/css/css-view-transitions/scoped/scroller-with-child.html | 44++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 76 insertions(+), 0 deletions(-)

diff --git a/testing/web-platform/tests/css/css-view-transitions/scoped/scroller-with-child-ref.html b/testing/web-platform/tests/css/css-view-transitions/scoped/scroller-with-child-ref.html @@ -0,0 +1,32 @@ +<!DOCTYPE html> +<html> +<head> +<style> + +body { margin: 20px; font: 18pt monospace; line-height: 30px; } +#scope { overflow: auto; contain: layout; padding: 20px; + width: 200px; height: 100px; border: 20px solid #acf; } +#part-hide { padding: 10px; visibility: hidden; + border: 4px solid orange; width: 150px; height: 180px; + margin: 20px 0 0 90px; } +#part { position: absolute; top: 66px; will-change: transform; + background: #fac; padding: 10px; border: 4px solid orange; + width: 150px; height: 180px; margin: 20px 0 0 90px; } + +</style> +</head> +<body> +<div id=scope>World + <div id=part-hide></div> +</div> +<!-- TODO(crbug.com/468277656): The child currently pops out of the + scope's clip; this will be addressed by the nesting proposal in: + https://github.com/w3c/csswg-drafts/issues/12324 --> +<div id=part>child</div> +<script> + +scope.scrollBy(40, 24); + +</script> +</body> +</html> diff --git a/testing/web-platform/tests/css/css-view-transitions/scoped/scroller-with-child.html b/testing/web-platform/tests/css/css-view-transitions/scoped/scroller-with-child.html @@ -0,0 +1,44 @@ +<!DOCTYPE html> +<html class=reftest-wait> +<head> +<link rel="help" href="https://drafts.csswg.org/css-view-transitions-2/"> +<link rel="match" href="scroller-with-child-ref.html"> +<script src="/common/reftest-wait.js"></script> +<script src="/web-animations/testcommon.js"></script> +<style> + +body { margin: 20px; font: 18pt monospace; line-height: 30px; } +#scope { overflow: auto; contain: layout; padding: 20px; + width: 200px; height: 100px; border: 20px solid #acf; } +#part { view-transition-name: foo; + background: #fea; padding: 10px; border: 4px solid orange; + width: 150px; height: 180px; margin: 20px 0 0 90px; } +#scope::view-transition-group(*) { animation-play-state: paused; } +#scope::view-transition-new(*) { animation: unset; opacity: 1; } +#scope::view-transition-old(*) { animation: unset; opacity: 0; } + +</style> +</head> +<body> +<div id=scope>Hello + <div id=part>child</div> +</div> +<script> + +failIfNot(scope.startViewTransition, "Missing element.startViewTransition"); + +async function runTest() { + scope.scrollBy(40, 24); + await waitForCompositorReady(); + const t = scope.startViewTransition(() => { + scope.firstChild.nodeValue = "World"; + part.style.background = "#fac"; + }); + await t.ready; + takeScreenshot(); +} +onload = () => runTest(); + +</script> +</body> +</html>