Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 69b12c5f50b343cd28d0300a828947acbec88988 https://github.com/WebKit/WebKit/commit/69b12c5f50b343cd28d0300a828947acbec88988 Author: Simon Fraser <simon.fra...@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 _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes