[webkit-changes] [WebKit/WebKit] 96deab: Scroll through content hidden with clip-path does ...
Simon Fraser
noreply at github.com
Wed Jan 25 09:46:33 PST 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 96deabf28dd062279a8949990fa8f42b215714d7
https://github.com/WebKit/WebKit/commit/96deabf28dd062279a8949990fa8f42b215714d7
Author: Simon Fraser <simon.fraser at apple.com>
Date: 2023-01-25 (Wed, 25 Jan 2023)
Changed paths:
A LayoutTests/fast/scrolling/mac/event-region-clip-path-expected.txt
A LayoutTests/fast/scrolling/mac/event-region-clip-path.html
M Source/WebCore/rendering/EventRegion.cpp
M Source/WebCore/rendering/EventRegion.h
M Source/WebCore/rendering/RenderLayer.cpp
M Source/WebCore/rendering/RenderLayer.h
Log Message:
-----------
Scroll through content hidden with clip-path does not propagate below
https://bugs.webkit.org/show_bug.cgi?id=233084
rdar://85634077
Reviewed by Antti Koivisto.
Failing to take clip-path into account for event region building results
in async scrolling failing to find the right target in some configurations.
This is an initial fix which uses the clip path bounding-box to clip
the event region, for non-reference clip-paths. RenderLayer::setupClipPath()
is enhanced to apply the event-region clip, passing a EventRegionContextStateSaver
to correctly pop the clip.
EventRegion and EventRegionContextStateSaver gain `pushClip(const Path&, WindRule)`,
which for now just use the bounding box of the path. Rasterizing the path into
a Region is complex code which will have to be done later.
* LayoutTests/fast/scrolling/mac/event-region-clip-path-expected.txt: Added.
* LayoutTests/fast/scrolling/mac/event-region-clip-path.html: Added.
* Source/WebCore/rendering/EventRegion.cpp:
(WebCore::EventRegionContext::pushClip):
* Source/WebCore/rendering/EventRegion.h:
(WebCore::EventRegionContextStateSaver::pushClip):
* Source/WebCore/rendering/RenderLayer.cpp:
(WebCore::RenderLayer::setupClipPath):
(WebCore::RenderLayer::paintLayerContents):
(WebCore::RenderLayer::collectEventRegionForFragments):
(WebCore::RenderLayer::calculateClipRects const):
* Source/WebCore/rendering/RenderLayer.h:
Canonical link: https://commits.webkit.org/259368@main
More information about the webkit-changes
mailing list