ScrollingTreeMac.h [plain text]
#pragma once
#if ENABLE(ASYNC_SCROLLING) && ENABLE(SCROLLING_THREAD)
#include "ThreadedScrollingTree.h"
namespace WebCore {
class WheelEventTestMonitor;
class ScrollingTreeMac final : public ThreadedScrollingTree {
public:
static Ref<ScrollingTreeMac> create(AsyncScrollingCoordinator&);
private:
explicit ScrollingTreeMac(AsyncScrollingCoordinator&);
Ref<ScrollingTreeNode> createScrollingTreeNode(ScrollingNodeType, ScrollingNodeID) final;
RefPtr<ScrollingTreeNode> scrollingNodeForPoint(FloatPoint) final;
#if ENABLE(WHEEL_EVENT_REGIONS)
OptionSet<EventListenerRegionType> eventListenerRegionTypesForPoint(FloatPoint) const final;
#endif
void setWheelEventTestMonitor(RefPtr<WheelEventTestMonitor>&&) final;
WheelEventTestMonitor* wheelEventTestMonitor() final { return m_wheelEventTestMonitor.get(); }
void receivedWheelEvent(const PlatformWheelEvent&) final;
void deferWheelEventTestCompletionForReason(WheelEventTestMonitor::ScrollableAreaIdentifier, WheelEventTestMonitor::DeferReason) final;
void removeWheelEventTestCompletionDeferralForReason(WheelEventTestMonitor::ScrollableAreaIdentifier, WheelEventTestMonitor::DeferReason) final;
void lockLayersForHitTesting() final;
void unlockLayersForHitTesting() final;
mutable Lock m_layerHitTestMutex;
RefPtr<WheelEventTestMonitor> m_wheelEventTestMonitor;
};
}
#endif // ENABLE(ASYNC_SCROLLING) && ENABLE(SCROLLING_THREAD)