[webkit-changes] [WebKit/WebKit] 69b12c: Get WheelEventTestMonitor out of ScrollingTree
Simon Fraser
noreply at github.com
Fri Dec 16 19:19:38 PST 2022
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 69b12c5f50b343cd28d0300a828947acbec88988
https://github.com/WebKit/WebKit/commit/69b12c5f50b343cd28d0300a828947acbec88988
Author: Simon Fraser <simon.fraser at apple.com>
Date: 2022-12-16 (Fri, 16 Dec 2022)
Changed paths:
M Source/WebCore/page/EventHandler.cpp
M Source/WebCore/page/WheelEventTestMonitor.cpp
M Source/WebCore/page/WheelEventTestMonitor.h
M Source/WebCore/page/scrolling/ScrollingCoordinator.cpp
M Source/WebCore/page/scrolling/ScrollingCoordinator.h
M Source/WebCore/page/scrolling/ScrollingTree.cpp
M Source/WebCore/page/scrolling/ScrollingTree.h
M Source/WebCore/page/scrolling/ThreadedScrollingCoordinator.cpp
M Source/WebCore/page/scrolling/ThreadedScrollingCoordinator.h
M Source/WebCore/page/scrolling/ThreadedScrollingTree.cpp
M Source/WebCore/page/scrolling/ThreadedScrollingTree.h
M Source/WebCore/page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm
M Source/WebCore/page/scrolling/nicosia/ScrollingTreeScrollingNodeDelegateNicosia.cpp
M Source/WebCore/platform/PlatformWheelEvent.cpp
M Source/WebCore/platform/PlatformWheelEvent.h
Log Message:
-----------
Get WheelEventTestMonitor out of ScrollingTree
https://bugs.webkit.org/show_bug.cgi?id=249443
<rdar://problem/103427202>
Reviewed by Tim Horton.
WheelEventTestMonitor is used by layout tests that use
`monitorWheelEvents()/waitForScrollCompletion()`. To make these tests work with UI-side
compositing, we have to send defer/removeDeferral messages from the UI process to the
Page-owned WheelEventTestMonitor in the web process, so ScrollingTree can't have a
reference to the Page's WheelEventTestMonitor as it does now.
So remove ScrollingTree's reference to WheelEventTestMonitor, and send messages via the
ScrollingCoordinator to the Page's WheelEventTestMonitor.
Add ScrollingTreeWheelEventTestMonitorCompletionDeferrer as a convenience RAII class
that starts/stops deferral given a ScrollingTree, ScrollingNodeID and reason.
Also change `receivedWheelEvent(const PlatformWheelEvent&)` to
`receivedWheelEventWithPhases(PlatformWheelEventPhase, PlatformWheelEventPhase)` so we
don't have to IPC-encode PlatformWheelEvent when a future patch sends this back from the
UI process to the web process. To reduce #ifdeffing, expose PlatformWheelEventPhase for
non-ENABLE(KINETIC_SCROLLING) platforms, but just with the `None` value.
* Source/WebCore/page/EventHandler.cpp:
(WebCore::EventHandler::handleWheelEventInternal):
* Source/WebCore/page/WheelEventTestMonitor.cpp:
(WebCore::WheelEventTestMonitor::receivedWheelEventWithPhases):
(WebCore::WheelEventTestMonitor::receivedWheelEvent): Deleted.
* Source/WebCore/page/WheelEventTestMonitor.h:
* Source/WebCore/page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::receivedWheelEventWithPhases):
(WebCore::ScrollingCoordinator::deferWheelEventTestCompletionForReason):
(WebCore::ScrollingCoordinator::removeWheelEventTestCompletionDeferralForReason):
* Source/WebCore/page/scrolling/ScrollingCoordinator.h:
* Source/WebCore/page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::handleWheelEvent):
(WebCore::ScrollingTree::receivedWheelEvent): Deleted.
(WebCore::ScrollingTree::deferWheelEventTestCompletionForReason): Deleted.
(WebCore::ScrollingTree::removeWheelEventTestCompletionDeferralForReason): Deleted.
* Source/WebCore/page/scrolling/ScrollingTree.h:
(WebCore::ScrollingTree::receivedWheelEventWithPhases):
(WebCore::ScrollingTree::deferWheelEventTestCompletionForReason):
(WebCore::ScrollingTree::removeWheelEventTestCompletionDeferralForReason):
(WebCore::ScrollingTreeWheelEventTestMonitorCompletionDeferrer::ScrollingTreeWheelEventTestMonitorCompletionDeferrer):
(WebCore::ScrollingTreeWheelEventTestMonitorCompletionDeferrer::~ScrollingTreeWheelEventTestMonitorCompletionDeferrer):
(WebCore::ScrollingTree::wheelEventTestMonitor): Deleted.
(WebCore::ScrollingTree::setWheelEventTestMonitor): Deleted.
* Source/WebCore/page/scrolling/ThreadedScrollingCoordinator.cpp:
(WebCore::ThreadedScrollingCoordinator::startMonitoringWheelEvents):
(WebCore::ThreadedScrollingCoordinator::stopMonitoringWheelEvents): Deleted.
* Source/WebCore/page/scrolling/ThreadedScrollingCoordinator.h:
* Source/WebCore/page/scrolling/ThreadedScrollingTree.cpp:
(WebCore::ThreadedScrollingTree::scrollingTreeNodeDidScroll):
(WebCore::ThreadedScrollingTree::receivedWheelEventWithPhases):
(WebCore::ThreadedScrollingTree::deferWheelEventTestCompletionForReason):
(WebCore::ThreadedScrollingTree::removeWheelEventTestCompletionDeferralForReason):
* Source/WebCore/page/scrolling/ThreadedScrollingTree.h:
* Source/WebCore/page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm:
(WebCore::ScrollingTreeScrollingNodeDelegateMac::handleWheelEvent):
* Source/WebCore/platform/PlatformWheelEvent.cpp:
(WebCore::operator<<):
* Source/WebCore/platform/PlatformWheelEvent.h:
Canonical link: https://commits.webkit.org/258031@main
More information about the webkit-changes
mailing list