Bug 249609

Summary: Rewrite wheel events tests for UI-side compositing
Product: WebKit Reporter: Simon Fraser (smfr) <simon.fraser>
Component: Tools / TestsAssignee: Nobody <webkit-unassigned>
Status: RESOLVED DUPLICATE    
Severity: Normal CC: simon.fraser, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   

Description Simon Fraser (smfr) 2022-12-19 13:48:55 PST
The following pattern is often used in scrolling tests:

            eventSender.monitorWheelEvents();
            await UIHelper.mouseWheelScrollAt(50, 50, 0, -10);
            await UIHelper.waitForScrollCompletion();

This doesn't work when UI-side compositing is enabled, because the UI process may not have committed a new layer/scrolling tree by the time that the first wheel event is handled in the UI process. This is because layer/scrolling tree updates happen via updateRendering() on a 60fps cadence, but `UIHelper.mouseWheelScrollAt` sends events via async IPC, which can get to the UI Process first.
Comment 1 Simon Fraser (smfr) 2022-12-19 13:50:03 PST
This is the list of impacted tests:

LayoutTests % grep -r -l 'eventSender.monitorWheelEvents' *
compositing/fixed-with-main-thread-scrolling.html
fast/repaint/resources/fixed-move-after-keyboard-scroll-iframe.html
fast/scrolling/arrow-key-scroll-in-rtl-document.html
fast/scrolling/resources/overscroll-behavior-support.js
fast/scrolling/overflow-scroll-past-max.html
fast/scrolling/mac/smooth-scroll-with-overflow-hidden.html
fast/scrolling/mac/keyboard-scrolling-with-mouse-scroll.html
fast/scrolling/mac/smooth-scroll-fixed-element.html
fast/scrolling/mac/adjust-scroll-snap-during-gesture.html
fast/scrolling/mac/horizontal-overflow-trapping-small-deltas.html
fast/scrolling/mac/rubberband-axis-locking.html
fast/scrolling/mac/smooth-scroll-iframe.html
fast/scrolling/mac/keyboard-scrolling-terminates.html
fast/scrolling/mac/smooth-scroll-with-overflow-hidden-and-layout.html
fast/scrolling/mac/vertical-scroll-in-horizontal-scroller.html
fast/scrolling/mac/scroll-container-horizontally.html
fast/scrolling/latching/scroll-select-latched-select.html
fast/scrolling/latching/scroll-iframe-webkit1-latching-bug.html
fast/scrolling/latching/scroll-div-with-nested-nonscrollable-iframe.html
fast/scrolling/latching/latching-stuck-to-main-page.html
fast/scrolling/latching/scroll-div-latched-mainframe.html
fast/scrolling/latching/scroll-iframe-in-overflow.html
fast/scrolling/latching/iframe_in_iframe.html
fast/scrolling/latching/scroll-iframe-fragment.html
fast/scrolling/latching/overflow-in-iframe-latching.html
fast/scrolling/latching/scroll-snap-latching.html
fast/scrolling/latching/scroll-iframe-latched-iframe.html
fast/scrolling/latching/scroll-nested-iframe.html
fast/scrolling/latching/latching-and-wheel-events.html
fast/scrolling/latching/scroll-latched-nested-div.html
fast/scrolling/latching/scroll-select-latched-mainframe.html
fast/scrolling/latching/iframe-latch-small-deltas.html
fast/scrolling/latching/scroll-div-latched-div.html
fast/scrolling/latching/scroll-iframe-latched-mainframe.html
fast/scrolling/latching/overflow-hidden-on-one-axis.html
fast/scrolling/latching/latched-scroll-into-nonfast-region.html
fast/scrolling/latching/nested-cross-axis-latch-expiration.html
fast/scrolling/latching/scroll-select-bottom-test.html
fast/scrolling/latching/latched-scroll-in-passive-region.html
fast/scrolling/programmatic-scroll-to-zero-zero.html
fast/scrolling/programmatic-smooth-scroll-after-focus.html
fast/scrolling/rtl-point-in-iframe.html
fast/events/wheel/wheel-events-become-non-cancelable.html
fast/events/wheel/platform-wheelevent-in-scrolling-div.html
resources/ui-helper.js
scrollingcoordinator/mac/latching/horizontal-overflow-back-swipe-overscroll-behavior.html
scrollingcoordinator/mac/latching/scrolling-select-should-not-latch-mainframe.html
scrollingcoordinator/mac/latching/horizontal-overflow-back-swipe.html
scrollingcoordinator/mac/latching/horizontal-overflow-in-vertical-overflow.html
scrollingcoordinator/mac/nested-sticky-with-nonsticking-sticky-parent.html
tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-hidden-scrollbars.html
tiled-drawing/scrolling/scroll-snap/scroll-snap-proximity-mainframe.html
tiled-drawing/scrolling/scroll-snap/scroll-snap-async-iframe.html
tiled-drawing/scrolling/scroll-snap/scroll-snap-proximity-overflow.html
tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-async-overflow-stateless.html
tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-overflow-stateless.html
tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-borders.html
tiled-drawing/scrolling/scroll-snap/resources/mainframe-scroll-snap-test.js
tiled-drawing/scrolling/scroll-snap/scroll-snap-scrolling-jumps-to-top.html
tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-2d-overflow.html
tiled-drawing/scrolling/scroll-snap/scroll-snap-iframe.html
tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-rotated.html
tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-async-overflow.html
tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-overflow.html
tiled-drawing/scrolling/scroll-snap/scroll-snap-phase-change-relatching.html
tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-then-proximity.html
tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-padding.html
tiled-drawing/scrolling/stateless-scrolling-no-rubber-band.html
tiled-drawing/scrolling/fast-scroll-select-latched-mainframe.html
LayoutTests % mate resources/ui-helper.js 
LayoutTests % grep -r -l 'UIHelper\.mouseWheelScrollAt' *  
compositing/scrolling/async-overflow-scrolling/mac/overflow-in-flex-empty-tiles-expected.html
compositing/scrolling/async-overflow-scrolling/mac/overflow-in-flex-empty-tiles.html
fast/scrolling/overflow-scrollable-after-back.html
fast/scrolling/iframe-scrollable-after-back.html
fast/scrolling/mac/wheel-event-listener-region-tiled-layer-switch.html
fast/scrolling/mac/overflow-zoomed-document.html
fast/scrolling/mac/clip-path-hit-test.html
fast/scrolling/mac/overlapped-overflow-scroll.html
fast/scrolling/mac/absolute-in-overflow-scroll.html
fast/scrolling/mac/async-scroll-overflow.html
fast/scrolling/mac/async-scroll-overflow-rtl-zoomed.html
fast/scrolling/mac/keyboard-scrolling-with-mouse-scroll.html
fast/scrolling/mac/smooth-scroll-fixed-element.html
fast/scrolling/mac/scrollbars/overflow-in-iframe-overlay-scrollbar-hovered.html
fast/scrolling/mac/scrollbars/overlay-scrollbar-hovered.html
fast/scrolling/mac/scrollbars/overflow-overlay-scrollbar-hovered.html
fast/scrolling/mac/scrollbars/select-overlay-scrollbar-hovered.html
fast/scrolling/mac/mousewheel-over-scrollbar.html
fast/scrolling/mac/absolute-in-overflow-scroll-dynamic-expected.html
fast/scrolling/mac/slow-scrolling-overflow.html
fast/scrolling/mac/overflow-scrolled-document.html
fast/scrolling/mac/async-scroll-overflow-top-inset.html
fast/scrolling/mac/nested-overflow-proxy-node.html
fast/scrolling/mac/smooth-scroll-iframe.html
fast/scrolling/mac/async-scroll-overflow-hidden-on-one-axis.html
fast/scrolling/mac/scroll-snapping-in-progress.html
fast/scrolling/mac/move-node-in-overflow-scroll.html
fast/scrolling/mac/non-invertible-transform-hit-testing.html
fast/scrolling/mac/hit-test-overflow-tiled-layer.html
fast/scrolling/mac/adjust-scroll-snap-after-gesture.html
fast/scrolling/mac/absolute-in-overflow-scroll-dynamic.html
fast/scrolling/mac/async-scroll-overflow-rtl.html
fast/scrolling/latching/latching-stuck-to-main-page.html
fast/events/wheel/wheel-event-listeners-on-body-made-passive.html
fast/events/wheel/redispatched-wheel-event.html
fast/events/wheel/first-wheel-event-cancelable.html
fast/events/wheel/wheel-event-listeners-on-document-made-passive.html
fast/events/wheel/wheel-event-in-passive-region-non-cancelable.html
fast/events/wheel/wheel-event-listeners-on-window-made-passive.html
fast/events/wheel/wheel-event-listeners-on-window-left-active.html
scrollingcoordinator/mac/latching/main-frame-back-swipe.html
scrollingcoordinator/mac/latching/simple-page-rubberbands.html
scrollingcoordinator/mac/latching/zero-delta-began-should-not-latch.html
Comment 2 Radar WebKit Bug Importer 2022-12-19 14:02:12 PST
<rdar://problem/103530040>
Comment 3 Simon Fraser (smfr) 2023-01-09 12:14:47 PST
Done via bug 250058

*** This bug has been marked as a duplicate of bug 250058 ***