Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 3dd3f19f008d969a4db58dbd81093dc69aa28137
      
https://github.com/WebKit/WebKit/commit/3dd3f19f008d969a4db58dbd81093dc69aa28137
  Author: Elika Etemad <[email protected]>
  Date:   2026-02-10 (Tue, 10 Feb 2026)

  Changed paths:
    M 
LayoutTests/compositing/overflow/rtl-scrollbar-layer-positioning-expected.txt
    M 
LayoutTests/compositing/tiling/perspective-on-scroller-tile-coverage-expected.txt
    M 
LayoutTests/css2.1/20110323/abspos-containing-block-initial-001-expected.txt
    M LayoutTests/css3/scroll-snap/scroll-snap-offsets-expected.txt
    M LayoutTests/css3/scroll-snap/scroll-snap-offsets-rtl-expected.txt
    M 
LayoutTests/fast/scrolling/mac/negative-z-index-overflow-scroll-expected.txt
    M LayoutTests/http/tests/misc/ftp-eplf-directory-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-overflow/scrollable-overflow-transform-005.tentative-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-overflow/scrollable-overflow-zero-one-axis-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/css/cssom-view/scrollWidthHeight-expected.txt
    M LayoutTests/interaction-region/text-input-expected.txt
    M LayoutTests/overflow/overflow-transform-perspective-expected.txt
    M 
LayoutTests/platform/glib/compositing/overflow/ancestor-overflow-expected.txt
    M 
LayoutTests/platform/glib/compositing/tiling/visiblerect-accumulated-offset-expected.txt
    M 
LayoutTests/platform/glib/overflow/overflow-transform-perspective-expected.txt
    M LayoutTests/platform/gtk/tables/mozilla/bugs/bug44505-expected.txt
    M 
LayoutTests/platform/gtk/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt
    M 
LayoutTests/platform/ios/compositing/overflow/ancestor-overflow-expected.txt
    M 
LayoutTests/platform/ios/compositing/tiling/perspective-on-scroller-tile-coverage-expected.txt
    M 
LayoutTests/platform/ios/compositing/tiling/visiblerect-accumulated-offset-expected.txt
    M 
LayoutTests/platform/ios/css2.1/20110323/abspos-containing-block-initial-001-expected.txt
    M LayoutTests/platform/ios/http/tests/misc/ftp-eplf-directory-expected.txt
    M 
LayoutTests/platform/ios/overflow/overflow-transform-perspective-expected.txt
    M LayoutTests/platform/ios/tables/mozilla/bugs/bug44505-expected.txt
    M 
LayoutTests/platform/ios/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt
    M 
LayoutTests/platform/mac-sequoia-wk2/tables/mozilla/bugs/bug44505-expected.txt
    M 
LayoutTests/platform/mac-sequoia-wk2/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt
    R LayoutTests/platform/mac-wk2/tables/mozilla/bugs/bug44505-expected.txt
    R 
LayoutTests/platform/mac-wk2/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt
    M 
LayoutTests/platform/mac/compositing/overflow/ancestor-overflow-expected.txt
    M 
LayoutTests/platform/mac/compositing/tiling/visiblerect-accumulated-offset-expected.txt
    M LayoutTests/platform/mac/tables/mozilla/bugs/bug44505-expected.txt
    M 
LayoutTests/platform/mac/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt
    M 
LayoutTests/platform/win/compositing/tiling/visiblerect-accumulated-offset-expected.txt
    M 
LayoutTests/platform/win/overflow/overflow-transform-perspective-expected.txt
    M LayoutTests/platform/wpe/tables/mozilla/bugs/bug44505-expected.txt
    M 
LayoutTests/platform/wpe/tables/mozilla_expected_failures/bugs/bug2479-5-expected.png
    M 
LayoutTests/platform/wpe/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt
    M Source/WebCore/platform/graphics/LayoutRect.cpp
    M Source/WebCore/platform/graphics/LayoutRect.h
    M Source/WebCore/rendering/RenderBlock.cpp
    M Source/WebCore/rendering/RenderBlockFlow.cpp
    M Source/WebCore/rendering/RenderBox.cpp
    M Source/WebCore/rendering/RenderBox.h
    M Source/WebCore/rendering/RenderBoxInlines.h
    M Source/WebCore/rendering/RenderFlexibleBox.cpp
    M Source/WebCore/rendering/RenderGrid.cpp
    M Source/WebCore/rendering/RenderOverflow.h

  Log Message:
  -----------
  Block container inline-axis overflow includes padding + block-level child 
margins
https://bugs.webkit.org/show_bug.cgi?id=286753
rdar://144312078

Reviewed by Alan Baradlay.

The CSS specs recently expanded the scrollable overflow area of block containers
in the inline axis to include the padding edge as appended to the outer (margin)
edge of child block-level boxes.

See discussion in https://github.com/w3c/csswg-drafts/issues/129
and https://github.com/w3c/csswg-drafts/issues/8660

This patch updates our implementation by
- Adding some options to ComputeOverflowOptions to enable this behavior.
- Passing in those options when calling computeOverflow from RenderBlockFlow.
- Adding/rearranging some helper functions to calculate it.
- Renaming some methods for clarity.

* LayoutTests/compositing/overflow/rtl-scrollbar-layer-positioning-expected.txt:
* 
LayoutTests/compositing/tiling/perspective-on-scroller-tile-coverage-expected.txt:
* LayoutTests/css2.1/20110323/abspos-containing-block-initial-001-expected.txt:
* LayoutTests/css3/scroll-snap/scroll-snap-offsets-expected.txt:
* LayoutTests/css3/scroll-snap/scroll-snap-offsets-rtl-expected.txt:
* LayoutTests/fast/scrolling/mac/negative-z-index-overflow-scroll-expected.txt:
* LayoutTests/http/tests/misc/ftp-eplf-directory-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-overflow/scrollable-overflow-transform-005.tentative-expected.txt:

Rebaseline.

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-overflow/scrollable-overflow-zero-one-axis-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/cssom-view/scrollWidthHeight-expected.txt:

Pass more tests.

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-overflow/scrollable-overflow-zero-one-axis-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/cssom-view/scrollWidthHeight-expected.txt:
* LayoutTests/interaction-region/text-input-expected.txt:
* LayoutTests/overflow/overflow-transform-perspective-expected.txt:
* LayoutTests/platform/glib/compositing/overflow/ancestor-overflow-expected.txt:
* 
LayoutTests/platform/glib/compositing/tiling/visiblerect-accumulated-offset-expected.txt:
* 
LayoutTests/platform/glib/overflow/overflow-transform-perspective-expected.txt:
* LayoutTests/platform/gtk/tables/mozilla/bugs/bug44505-expected.txt:
* 
LayoutTests/platform/gtk/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
* LayoutTests/platform/ios/compositing/overflow/ancestor-overflow-expected.txt:
* 
LayoutTests/platform/ios/compositing/tiling/perspective-on-scroller-tile-coverage-expected.txt:
* 
LayoutTests/platform/ios/compositing/tiling/visiblerect-accumulated-offset-expected.txt:
* 
LayoutTests/platform/ios/css2.1/20110323/abspos-containing-block-initial-001-expected.txt:
* LayoutTests/platform/ios/http/tests/misc/ftp-eplf-directory-expected.txt:
* LayoutTests/platform/ios/overflow/overflow-transform-perspective-expected.txt:
* LayoutTests/platform/ios/tables/mozilla/bugs/bug44505-expected.txt:
* 
LayoutTests/platform/ios/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
* 
LayoutTests/platform/mac-sequoia-wk2/tables/mozilla/bugs/bug44505-expected.txt:
* 
LayoutTests/platform/mac-sequoia-wk2/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
* LayoutTests/platform/mac-wk2/tables/mozilla/bugs/bug44505-expected.txt: 
Removed.
* 
LayoutTests/platform/mac-wk2/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
 Removed.
* LayoutTests/platform/mac/compositing/overflow/ancestor-overflow-expected.txt:
* 
LayoutTests/platform/mac/compositing/tiling/visiblerect-accumulated-offset-expected.txt:
* LayoutTests/platform/mac/tables/mozilla/bugs/bug44505-expected.txt:
* 
LayoutTests/platform/mac/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
* 
LayoutTests/platform/win/compositing/tiling/visiblerect-accumulated-offset-expected.txt:
* LayoutTests/platform/win/overflow/overflow-transform-perspective-expected.txt:
* LayoutTests/platform/wpe/tables/mozilla/bugs/bug44505-expected.txt:
* 
LayoutTests/platform/wpe/tables/mozilla_expected_failures/bugs/bug2479-5-expected.png:
* 
LayoutTests/platform/wpe/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:

Rebaseline.

* Source/WebCore/platform/graphics/LayoutRect.cpp:
(WebCore::LayoutRect::uniteXEvenIfEmpty):
(WebCore::LayoutRect::uniteYEvenIfEmpty):
* Source/WebCore/platform/graphics/LayoutRect.h:
(WebCore::LayoutRect::containsX const):
(WebCore::LayoutRect::containsY const):

Add utility functions.

* Source/WebCore/rendering/RenderBlock.cpp:
(WebCore::RenderBlock::computeOverflow):
* Source/WebCore/rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::layoutBlock):

Make RenderBlockFlow add inline-axis child margins and self padding to overflow.

* Source/WebCore/rendering/RenderBox.cpp:
(WebCore::RenderBox::addOverflowWithRendererOffset):
(WebCore::RenderBox::clampToAllowedLayoutOverflow):
(WebCore::RenderBox::addLayoutOverflow):
(WebCore::RenderBox::addMarginBoxOverflow):
* Source/WebCore/rendering/RenderBox.h:
* Source/WebCore/rendering/RenderBoxInlines.h:
(WebCore::RenderBox::scrollableContentAreaOverflowRect const):
(WebCore::RenderBox::scrollablePaddingAreaOverflowRect const):

Extract some logic into helper methods and add per-axis arguments for
computeOverflow() methods.

* Source/WebCore/rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutBlock):
* Source/WebCore/rendering/RenderGrid.cpp:
(WebCore::RenderGrid::layoutMasonry):

Update call site to new argument format.

* Source/WebCore/rendering/RenderOverflow.h:
(WebCore::RenderOverflow::addContentOverflowX):
(WebCore::RenderOverflow::addContentOverflowY):

Provide per-axis variants of addContentOverflow methods.

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



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

Reply via email to