[webkit-changes] [WebKit/WebKit] 20029b: REGRESSION (265781 at main): Horizontal scrolls on an...
Simon Fraser
noreply at github.com
Tue Jul 18 22:54:17 PDT 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 20029b9283809afd776fd5cd575fdd8a2aa23b60
https://github.com/WebKit/WebKit/commit/20029b9283809afd776fd5cd575fdd8a2aa23b60
Author: Simon Fraser <simon.fraser at apple.com>
Date: 2023-07-18 (Tue, 18 Jul 2023)
Changed paths:
M Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.h
M Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteLayerTreeEventDispatcher.cpp
M Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteLayerTreeEventDispatcher.h
M Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteScrollingCoordinatorProxyMac.h
M Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteScrollingCoordinatorProxyMac.mm
M Source/WebKit/UIProcess/ViewGestureController.cpp
M Source/WebKit/UIProcess/ViewGestureController.h
M Source/WebKit/UIProcess/WebPageProxy.cpp
Log Message:
-----------
REGRESSION (265781 at main): Horizontal scrolls on an overflow scroll can trigger history swipe sometimes
https://bugs.webkit.org/show_bug.cgi?id=259302
rdar://112440237
Reviewed by Tim Horton.
265781 at main delayed the call to wheelEventHandlingCompleted*() in WebPageProxy::handleWheelEventReply(),
handing off the event to the scrolling thread for async, post-webcontent processing. However, it also
dropped on the floor the `wasHandledForScrolling || wasHandledByWebProcess` argument, which is what
tells ViewGestureController to not do history swipe. So carry that state along through the
async RemoteScrollingCoordinatorProxyMac processing.
Also improve the swipe logging.
Tested by these tests:
swipe/swipe-back-with-active-wheel-listener-and-scroller.html
swipe/swipe-back-with-passive-wheel-listener-and-scroller.html
swipe/wheel-prevent-default-prevents-swipe-back.html
which now pass with UI-side compositing enabled.
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.h:
(WebKit::RemoteScrollingCoordinatorProxy::wheelEventHandlingCompleted):
* Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteLayerTreeEventDispatcher.cpp:
(WebKit::RemoteLayerTreeEventDispatcher::wheelEventHandlingCompleted):
* Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteLayerTreeEventDispatcher.h:
* Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteScrollingCoordinatorProxyMac.h:
* Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteScrollingCoordinatorProxyMac.mm:
(WebKit::RemoteScrollingCoordinatorProxyMac::wheelEventHandlingCompleted):
* Source/WebKit/UIProcess/ViewGestureController.cpp:
(WebKit::ViewGestureController::PendingSwipeTracker::stateToString const):
(WebKit::ViewGestureController::PendingSwipeTracker::handleEvent):
(WebKit::ViewGestureController::PendingSwipeTracker::eventWasNotHandledByWebCore):
(WebKit::ViewGestureController::PendingSwipeTracker::tryToStartSwipe):
(WebKit::ViewGestureController::PendingSwipeTracker::reset):
* Source/WebKit/UIProcess/ViewGestureController.h:
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::handleWheelEventReply):
Canonical link: https://commits.webkit.org/266154@main
More information about the webkit-changes
mailing list