Bug 254855 - [UI-side compositing] fast/scrolling/mac/momentum-scroll-with-borders.html is flakey
Summary: [UI-side compositing] fast/scrolling/mac/momentum-scroll-with-borders.html is...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Tools / Tests (show other bugs)
Version: WebKit Local Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Simon Fraser (smfr)
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2023-03-31 20:42 PDT by Simon Fraser (smfr)
Modified: 2023-04-04 16:35 PDT (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Simon Fraser (smfr) 2023-03-31 20:42:01 PDT
fast/scrolling/mac/momentum-scroll-with-borders.html flakes, only with UI-side compositing enabled.
Comment 1 Radar WebKit Bug Importer 2023-03-31 20:42:19 PDT
<rdar://problem/107499791>
Comment 2 Simon Fraser (smfr) 2023-03-31 21:27:57 PDT
WheelEventTestMonitor logging reveals:

21:25:40.660 73440   TileController::tileSize newSize=width=800 height=600
21:25:40.660 73440     WheelEventTestMonitor::clearAllTestDeferrals: cleared all test state.
21:25:40.660 73440     WheelEventTestMonitor::checkShouldFireCallbacks - have not yet seen any deferral reasons
21:25:40.660 73440     WheelEventTestMonitor::checkShouldFireCallbacks - have not yet seen any deferral reasons
21:25:40.660 73440     WheelEventTestMonitor::checkShouldFireCallbacks - have not yet seen any deferral reasons
21:25:40.660 73440   EventHandler::handleWheelEvent PlatformWheelEvent 0x7ff7b4cd74a0 at (100,120) deltaX 0.00 deltaY -10.00 phase "began" momentum phase "none" velocity width=0 height=0 processing steps [synchronous scrolling, blocking DOM event dispatch]
21:25:40.660 73440         (=) WheelEventTestMonitor::receivedWheelEventWithPhases: phase=began momentumPhase=none
21:25:40.660 73440         (=) WheelEventTestMonitor::deferForReason: id=0x75b0c0ae0, reason=handling wheel event on main thread
21:25:40.661 73440   LocalFrameView::setWasScrolledByUser at 1
21:25:40.661 73440   EventHandler::handleWheelEventInScrollableArea() RenderLayer 0x792002c60 300x500 - eventHandling [dispatched to DOM] -> gesture state non-blocking
21:25:40.661 73440   RenderLayer 0x792002c60 300x500 requestScrollPositionUpdate (0,10)
21:25:40.661 73440   RenderLayerScrollableArea [0] scrollTo (0,10) from (0,0) (is user scroll 1)
21:25:40.661 73440   ScrollableArea (RenderLayer 0x792002c60 300x500) handleWheelEvent - handled 1
21:25:40.661 73440   Element node 0x792004990 DIV 0x792004990 class='content' dispatchWheelEvent: (cancelable 1) defaultPrevented 0 defaultHandled 1
21:25:40.661 73440         (=) WheelEventTestMonitor::removeDeferralForReason: id=0x75b0c0ae0, reason=handling wheel event on main thread
21:25:40.661 73440   WebPage::wheelEvent - processing steps [synchronous scrolling, blocking DOM event dispatch] handled 1
21:25:40.661 73440     WheelEventTestMonitor::setTestCallbackAndStartMonitoring - expect end/cancel 0, expect momentum end 0
21:25:40.661 73440     WheelEventTestMonitor::checkShouldFireCallbacks: scrolling is idle, FIRING TEST

so we're ending too early, when we've only seen the first event.
Comment 3 Simon Fraser (smfr) 2023-03-31 21:37:58 PDT
EventSendingController's m_sentWheelPhaseEndOrCancel and m_sentWheelMomentumPhaseEnd fail to get set when using `sendEventStream`
Comment 4 Simon Fraser (smfr) 2023-04-03 14:20:18 PDT
Pull request: https://github.com/WebKit/WebKit/pull/12339
Comment 5 EWS 2023-04-04 16:35:48 PDT
Committed 262598@main (b9a297652bdc): <https://commits.webkit.org/262598@main>

Reviewed commits have been landed. Closing PR #12339 and removing active labels.