tree a5d434b88517804cf202a896be8986aff1f7ec04
parent fed0e852cde29d205c14e98692cf1bef116b4104
author zalan@apple.com <zalan@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc> 1655472902 +0000
committer zalan@apple.com <zalan@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc> 1655472902 +0000

Remove redundant logical right computation for grid items in RenderBlock::computeOverflow
https://bugs.webkit.org/show_bug.cgi?id=241689

Reviewed by Simon Fraser.

If the grid content produces layout overflow, we should not need to re-compute it again by looping through the grid items.

1. Decouple "include padding end" and "include child's margin end" logic
2. Decouple "include padding after" and "include padding end" logic.
3. Restore RenderFlexibleBox and RenderGrid computeOverflow calls to pre-r282463 (when clientLogicalRightAndBottomAfterRepositioning was introduced)

* LayoutTests/fast/overflow/grid-horizontal-overflow-with-padding-end-expected.html: Added.
* LayoutTests/fast/overflow/grid-horizontal-overflow-with-padding-end.html: Added.
* Source/WebCore/rendering/RenderBlock.cpp:
(WebCore::RenderBlock::computeOverflow):
(WebCore::RenderBlock::layoutOverflowLogicalBottom):
(WebCore::RenderBlock::clientLogicalRightAndBottomAfterRepositioning const): Deleted.
* Source/WebCore/rendering/RenderBlock.h:
* Source/WebCore/rendering/RenderBox.cpp:
(WebCore::RenderBox::layoutOverflowRectForPropagation const):
* Source/WebCore/rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutBlock):
* Source/WebCore/rendering/RenderGrid.cpp:
(WebCore::RenderGrid::layoutBlock):

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


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@295633 268f45cc-cd09-0410-ab3c-d52691b4dbfc
