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

Reply via email to