Index: third_party/WebKit/LayoutTests/fast/layout/scroll-anchoring/reading-scroll-forces-anchoring.html |
diff --git a/third_party/WebKit/LayoutTests/fast/layout/scroll-anchoring/reading-scroll-forces-anchoring.html b/third_party/WebKit/LayoutTests/fast/layout/scroll-anchoring/reading-scroll-forces-anchoring.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..9d2acb616c2b36aab8a92e09715bbdf2ade1603f |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/fast/layout/scroll-anchoring/reading-scroll-forces-anchoring.html |
@@ -0,0 +1,28 @@ |
+<!DOCTYPE html> |
+<script src="../../../resources/run-after-layout-and-paint.js"></script> |
+<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); |
+ runAfterLayoutAndPaint(() => { |
+ // 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(); |
+ }); |
+ }, 'Reading scroll position forces scroll anchoring adjustment.'); |
+</script> |