Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 1ff6d9ccac00ba79807de18137203a5ec5b2d6f8
      
https://github.com/WebKit/WebKit/commit/1ff6d9ccac00ba79807de18137203a5ec5b2d6f8
  Author: Ahmad Saleem <[email protected]>
  Date:   2025-10-28 (Tue, 28 Oct 2025)

  Changed paths:
    M LayoutTests/TestExpectations
    M LayoutTests/fast/multicol/client-rects.html
    A LayoutTests/fast/multicol/overflowing-relpos-expected.html
    A LayoutTests/fast/multicol/overflowing-relpos.html
    A LayoutTests/fast/multicol/scale-transform-text-expected.html
    A LayoutTests/fast/multicol/scale-transform-text.html
    M 
LayoutTests/imported/blink/fast/multicol/unbreakable-block-too-tall-at-column-start.html
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-break/relpos-inline-hit-testing-expected.txt
    M Source/WebCore/rendering/RenderFragmentContainer.cpp

  Log Message:
  -----------
  Avoid over-eager clipping of child layers in multicolumn
https://bugs.webkit.org/show_bug.cgi?id=272280
rdar://126413036

Reviewed by Simon Fraser.

This patch aligns WebKit with Gecko / Firefox and Blink / Chromium.

Merge: 
https://chromium.googlesource.com/chromium/src.git/+/e500cbd3ba36bf3216087481790f5aece0e778a5

Self-painting layers (caused by e.g. position:relative) don't contribute to
visual overflow in their parent layout object; see
RenderBox::addOverflowFromChild(). We cannot use the visual overflow rectangle
set on the flow thread when calculating the bounding box of a fragment
established by a child layer.

Therefore, only clip in the flow thread's block direction in
overflowRectForFragmentedFlowPortion(), and leave the inline axis alone. I
simplified the implementation, since it's now way easier to start with an
infinite rectangle, and just limit the dimensions that need it afterwards.

Also got rid of an old check for shouldClipFragmentedFlowContent(), which
must have been residue from the CSS regions implementation.

This also happened to fix some inaccuracies mostly invisible to the naked
eye, when it comes to transform:scale()d text with glyphs that have negative
left bearing or overflow the line box vertically. It looks like we measure and
lay out with the CSS computed font, and then switch to a scaled font when
painting, so that it looks crisp and nice.

Also we used 'renderableInfiniteRect' similar to other cases in WebKit.
Since it handles any overflows in float scales properly.

* Source/WebCore/rendering/RenderFragmentContainer.cpp:
(WebCore::RenderFragmentContainer::overflowRectForFragmentedFlowPortion const):

> Local Tests:
* LayoutTests/fast/multicol/scale-transform-text.html: Add Test Case
* LayoutTests/fast/multicol/scale-transform-text-expected.html: Add Test Case 
Expectation
* LayoutTests/fast/multicol/overflowing-relpos.html: Add Test Case
* LayoutTests/fast/multicol/overflowing-relpos-expected.html: Add Test Case 
Expectation

> WPT Progressions:
* LayoutTests/TestExpectations:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-break/relpos-inline-hit-testing-expected.txt:

> Rebaselines:
* 
LayoutTests/imported/blink/fast/multicol/unbreakable-block-too-tall-at-column-start.html:
 WPE & GTK Specific Pixel Failures
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-scroll-003-expected.txt:
* LayoutTests/fast/multicol/client-rects.html: GTK specific

Canonical link: https://commits.webkit.org/302249@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to