commit 726ba7fd5ad7c2152c44ac8d1bad0769f17c36db
parent 7c7078130cf50bc244d793a9a7c715de4cc24fac
Author: Stefan Zager <szager@chromium.org>
Date: Tue, 16 Dec 2025 08:48:02 +0000
Bug 2005829 [wpt PR 56718] - Ensure propagation of PropertyChangeForcesCommit to compositor, a=testonly
Automatic update from web-platform-tests
Ensure propagation of PropertyChangeForcesCommit to compositor
Prior to this change, a new value for PropertyChangeForcesCommit
might not make it to the compositor thread right away if
BeginMainFrame resulted in no visual update and returned early. If a
page is idle, it could take an arbitrary amount of time for the new
value to be propagated.
With this CL, we force a commit to be sent to the compositor when a
new value occurs.
Bug: 40914013
Change-Id: I3920c0fa0d7dba9c123a1488a1546ca77b9033a0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7239030
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Commit-Queue: Stefan Zager <szager@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1558342}
--
wpt-commits: 3f01db127b3cfa220becf5b077669757c1ec5d4d
wpt-pr: 56718
Diffstat:
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/testing/web-platform/tests/intersection-observer/animating.html b/testing/web-platform/tests/intersection-observer/animating.html
@@ -33,20 +33,22 @@ promise_test(t => {
let target = document.getElementById("target");
let observer = new IntersectionObserver(function(changes) {
entries = entries.concat(changes);
+ assert_true(entries[0].isIntersecting);
changes.forEach(entry => {
if (!entry.isIntersecting) {
resolve("Received not-intersecting notification before animationend.");
}
});
});
- observer.observe(target);
- await waitForNotification();
- assert_equals(entries.length, 1);
- assert_true(entries[0].isIntersecting);
target.style.animation = "3s linear slideup";
setTimeout(() => {
reject("Did not get a not-intersecting notification within 2 seconds.");
}, 2000);
+ target.addEventListener("animationend", evt => {
+ reject("animationend event fired before not-intersecting notification.");
+ });
+ await new Promise(resolve => setTimeout(resolve, 500));
+ observer.observe(target);
});
}, "IntersectionObserver generates notifications when "
+ "a transform animation changes intersection state");