commit acf9923c943b1d49af7c7288ddd8f8ad80b33981 parent 39d95da6ff38def33309c733dedb73bf02085611 Author: moonira <moonira@google.com> Date: Thu, 9 Oct 2025 16:30:18 +0000 Bug 1992099 [wpt PR 55133] - Fix flaky scroll-direction tests, a=testonly Automatic update from web-platform-tests Fix flaky scroll-direction tests Run waitForScrollEndFallbackToDelayWithoutScrollEvent before assert to assure that scrolling has finished. Fixed: 447759677 Change-Id: If7c94ff68dc12219beea1f6de976556e21edbcba Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6994545 Commit-Queue: Munira Tursunova <moonira@google.com> Reviewed-by: Robert Flack <flackr@chromium.org> Cr-Commit-Position: refs/heads/main@{#1522249} -- wpt-commits: ee35f219332900510351ed07f022c777d0ecae6c wpt-pr: 55133 Diffstat:
3 files changed, 25 insertions(+), 0 deletions(-)
diff --git a/testing/web-platform/tests/css/css-conditional/container-queries/scroll-state/scroll-direction-mouse-drag-scroll.html b/testing/web-platform/tests/css/css-conditional/container-queries/scroll-state/scroll-direction-mouse-drag-scroll.html @@ -7,6 +7,7 @@ <script src="/resources/testdriver-actions.js"></script> <script src="/resources/testdriver-vendor.js"></script> <script src="/web-animations/testcommon.js"></script> +<script src="/dom/events/scrolling/scroll_support.js"></script> <script src="/css/css-conditional/container-queries/support/cq-testcommon.js"></script> <style> #scroller { @@ -54,6 +55,8 @@ } promise_test(async t => { + let scrollEndPromise = waitForScrollEndFallbackToDelayWithoutScrollEvent(scroller); + // Skip test on platforms that do not have a visible scrollbar (e.g. // overlay scrollbar). const scrollbar_width = scroller.offsetWidth - scroller.clientWidth; @@ -70,6 +73,7 @@ const end_pos = { x: 200, y: 200 }; await drag_scrollbar(start_pos, end_pos); + await scrollEndPromise; await waitForAnimationFrames(2); assert_not_equals(scroller.scrollTop, 0); @@ -79,6 +83,8 @@ }, "Vertical scrollbar drag scroll"); promise_test(async t => { + let scrollEndPromise = waitForScrollEndFallbackToDelayWithoutScrollEvent(scroller); + // Skip test on platforms that do not have a visible scrollbar (e.g. // overlay scrollbar). const scrollbar_height = scroller.offsetHeight - scroller.clientHeight; @@ -95,6 +101,7 @@ const end_pos = { x: 200, y: 200 }; await drag_scrollbar(start_pos, end_pos); + await scrollEndPromise; await waitForAnimationFrames(2); assert_not_equals(scroller.scrollLeft, 0); diff --git a/testing/web-platform/tests/css/css-conditional/container-queries/scroll-state/scroll-direction-scrollbar-button-clicks.html b/testing/web-platform/tests/css/css-conditional/container-queries/scroll-state/scroll-direction-scrollbar-button-clicks.html @@ -7,6 +7,7 @@ <script src="/resources/testdriver-actions.js"></script> <script src="/resources/testdriver-vendor.js"></script> <script src="/web-animations/testcommon.js"></script> +<script src="/dom/events/scrolling/scroll_support.js"></script> <script src="/css/css-conditional/container-queries/support/cq-testcommon.js"></script> <style> #scroller { @@ -47,10 +48,18 @@ } promise_test(async t => { + assert_equals(scroller.scrollTop, 0); + + let scrollEndPromise = waitForScrollEndFallbackToDelayWithoutScrollEvent(scroller); + /* Scrollbar down button should be located on bottom right side */ const track_position = { x: 200, y: 200 }; await scrollbar_track_click(track_position); + + await scrollEndPromise; await waitForAnimationFrames(2); + + assert_not_equals(scroller.scrollTop, 0); assert_equals(getComputedStyle(target).getPropertyValue("--y"), "yes"); }, "Scrollbar button clicks scroll"); diff --git a/testing/web-platform/tests/css/css-conditional/container-queries/scroll-state/scroll-direction-scrollbar-track-clicks.html b/testing/web-platform/tests/css/css-conditional/container-queries/scroll-state/scroll-direction-scrollbar-track-clicks.html @@ -7,6 +7,7 @@ <script src="/resources/testdriver-actions.js"></script> <script src="/resources/testdriver-vendor.js"></script> <script src="/web-animations/testcommon.js"></script> +<script src="/dom/events/scrolling/scroll_support.js"></script> <script src="/css/css-conditional/container-queries/support/cq-testcommon.js"></script> <style> #scroller { @@ -47,10 +48,18 @@ } promise_test(async t => { + assert_equals(scroller.scrollTop, 0); + + let scrollEndPromise = waitForScrollEndFallbackToDelayWithoutScrollEvent(scroller); + /* Scrollbar should be located on top right side */ const track_position = { x: 200, y: 150 }; await scrollbar_track_click(track_position); + + await scrollEndPromise; await waitForAnimationFrames(2); + + assert_not_equals(scroller.scrollTop, 0); assert_equals(getComputedStyle(target).getPropertyValue("--y"), "yes"); }, "Scrollbar track click scroll");