Bug 249609
| Summary: | Rewrite wheel events tests for UI-side compositing | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Simon Fraser (smfr) <simon.fraser> |
| Component: | Tools / Tests | Assignee: | 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 | ||
Simon Fraser (smfr)
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.
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Simon Fraser (smfr)
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
Radar WebKit Bug Importer
<rdar://problem/103530040>
Simon Fraser (smfr)
Done via bug 250058
*** This bug has been marked as a duplicate of bug 250058 ***