Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 72773d6ba85502c8ac50d778341baa8e8d1dcdae
https://github.com/WebKit/WebKit/commit/72773d6ba85502c8ac50d778341baa8e8d1dcdae
Author: Simon Fraser <[email protected]>
Date: 2023-02-16 (Thu, 16 Feb 2023)
Changed paths:
M
Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp
M Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.h
M Source/WebKit/UIProcess/WebPageProxy.cpp
M Source/WebKit/UIProcess/WebPageProxy.h
Log Message:
-----------
[UI-side compositing] History swipe on pages with horizontal scrollers
doesn't work
https://bugs.webkit.org/show_bug.cgi?id=252446
rdar://105525566
Reviewed by Tim Horton.
History swipes only happen if a gesture won't result in a scroll on the page,
so on
pages that could potentially horizontally scroll, we need to tell the
ViewGestureRecognizer
that the wheel event was never handled. For non-UI-side compositing, this
happened via
`WebPageProxy::didReceiveEvent()`. For UI-side compositing, we need to run
equivalent
code from WebPageProxy::handleWheelEvent() when the UI-side scrolling
coordinator does
not handle the event.
We also need to push the "rubberbandable edges" state onto the ScrollingTree,
just
like EventDispatcher does. These data reflect whether rubberbanding is allowed
on an
edge, which is a combination of what the client wants (e.g. Safari's Continuous
Reading List
can disable top and bottom rubberbanding), and whether there is a history item
to swipe to.
Tested by swipe/pushstate-with-manual-scrollrestoration.html
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp:
(WebKit::RemoteScrollingCoordinatorProxy::handleWheelEvent):
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.h:
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::handleWheelEvent):
(WebKit::WebPageProxy::sendWheelEvent):
(WebKit::WebPageProxy::wheelEventWasNotHandled):
(WebKit::WebPageProxy::rubberBandableEdgesRespectingHistorySwipe const):
(WebKit::WebPageProxy::didReceiveEvent):
* Source/WebKit/UIProcess/WebPageProxy.h:
Canonical link: https://commits.webkit.org/260429@main
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes