Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 3902d9f8c4a790d2754245c7aeb4abd4611525df
https://github.com/WebKit/WebKit/commit/3902d9f8c4a790d2754245c7aeb4abd4611525df
Author: Kiet Ho <[email protected]>
Date: 2026-06-04 (Thu, 04 Jun 2026)
Changed paths:
M
LayoutTests/compositing/geometry/frame-clipping-layer-with-bottom-right-inset-expected.txt
M
LayoutTests/compositing/geometry/frame-clipping-layer-with-bottom-right-inset.html
M
LayoutTests/compositing/geometry/frame-clipping-layer-with-top-left-inset-expected.txt
M
LayoutTests/compositing/geometry/frame-clipping-layer-with-top-left-inset.html
M Source/WebCore/page/LocalFrameView.cpp
M Source/WebCore/page/LocalFrameView.h
M Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp
M
Source/WebCore/page/scrolling/coordinated/ScrollingTreeFrameScrollingNodeCoordinated.cpp
M Source/WebCore/page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm
M Source/WebCore/rendering/RenderLayerCompositor.cpp
Log Message:
-----------
REGRESSION (313513@main): Web content is clipped out of right obscured
content inset area
rdar://177728093
https://bugs.webkit.org/show_bug.cgi?id=316078
Reviewed by Lily Spiniolas and Simon Fraser.
LocalFrameView::insetClipLayerRect treats the top/left obscured content insets
as expanding
the content area outwards, which is correct, and it should treat the
bottom/right insets
similarly. Instead it treats them as narrowing the visible content area. This
leads to the
clip layer clipping out the bottom/right obscured content inset area.
When Safari is in RTL mode with its sidebar opened from the right, there's a
right obscured
content inset for it. If the page can scroll horizontally, part of the page
should be shown
under the partially transparent side bar. But the clip layer clips out the
right obscured
content inset area (area under the side bar) and nothing gets shown.
Fix this by treating the bottom/right insets as expanding the content area
outwards
like top/left insets.
Test: compositing/geometry/frame-clipping-layer-with-bottom-right-inset.html
compositing/geometry/frame-clipping-layer-with-top-left-inset.html
*
LayoutTests/compositing/geometry/frame-clipping-layer-with-bottom-right-inset-expected.txt:
*
LayoutTests/compositing/geometry/frame-clipping-layer-with-bottom-right-inset.html:
- Give bottom/right insets different values to ensure we don't mix them up.
- Add more cases at different scroll positions (top left, top right, bottom
left,
bottom right.) Print out the layer tree at each position.
*
LayoutTests/compositing/geometry/frame-clipping-layer-with-top-left-inset-expected.txt:
*
LayoutTests/compositing/geometry/frame-clipping-layer-with-top-left-inset.html:
- Same changes as
compositing/geometry/frame-clipping-layer-with-bottom-right-inset.html.
* Source/WebCore/page/LocalFrameView.cpp:
(WebCore::LocalFrameView::insetClipLayerRect):
* Source/WebCore/page/LocalFrameView.h:
* Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::reconcileScrollingState):
*
Source/WebCore/page/scrolling/coordinated/ScrollingTreeFrameScrollingNodeCoordinated.cpp:
(WebCore::ScrollingTreeFrameScrollingNodeCoordinated::repositionRelatedLayers):
* Source/WebCore/page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
(WebCore::ScrollingTreeFrameScrollingNodeMac::repositionRelatedLayers):
* Source/WebCore/rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::insetClipLayerRect const):
Canonical link: https://commits.webkit.org/314526@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications