summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/css/css-scroll-anchoring/reading-scroll-forces-anchoring.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/css/css-scroll-anchoring/reading-scroll-forces-anchoring.html')
-rw-r--r--testing/web-platform/tests/css/css-scroll-anchoring/reading-scroll-forces-anchoring.html30
1 files changed, 30 insertions, 0 deletions
diff --git a/testing/web-platform/tests/css/css-scroll-anchoring/reading-scroll-forces-anchoring.html b/testing/web-platform/tests/css/css-scroll-anchoring/reading-scroll-forces-anchoring.html
new file mode 100644
index 0000000000..39b8e36398
--- /dev/null
+++ b/testing/web-platform/tests/css/css-scroll-anchoring/reading-scroll-forces-anchoring.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<link rel="help" href="https://drafts.csswg.org/css-scroll-anchoring-1/">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<style>
+body { height: 1000px }
+div { height: 100px }
+</style>
+<div id="block1">abc</div>
+<div id="block2">def</div>
+<script>
+ // This test verifies that reading window.scrollY forces any pending scroll
+ // anchoring adjustment to occur before computing the return value.
+ async_test((t) => {
+ scrollTo(0, 150);
+ requestAnimationFrame(() => {
+ step_timeout(() => {
+ // Queue scroll anchoring adjustment.
+ document.querySelector("#block1").style.height = "200px";
+
+ // Reading scrollY should force both the layout and the adjustment to
+ // occur synchronously.
+ var y = scrollY;
+
+ assert_equals(y, 250);
+ t.done();
+ }, 0);
+ });
+ }, 'Reading scroll position forces scroll anchoring adjustment.');
+</script>