[webkit-changes] [WebKit/WebKit] 0eca92: REGRESSION [IFC][line-clamp] walmart.com: Product ...
Alan Baradlay
noreply at github.com
Sat Apr 22 18:52:57 PDT 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 0eca92867e2ba65e35703e903d9324028016bfca
https://github.com/WebKit/WebKit/commit/0eca92867e2ba65e35703e903d9324028016bfca
Author: Alan Baradlay <zalan at apple.com>
Date: 2023-04-22 (Sat, 22 Apr 2023)
Changed paths:
M LayoutTests/fast/block/zero-width-block-with-line-clamp-multiple-lines-expected.html
M LayoutTests/fast/flexbox/line-clamp-with-anchor-content-only-expected.html
M LayoutTests/fast/flexbox/line-clamp-with-anchor-content-only.html
A LayoutTests/fast/flexbox/line-clamp-with-margin-bottom-child-expected.html
A LayoutTests/fast/flexbox/line-clamp-with-margin-bottom-child.html
M Source/WebCore/layout/formattingContexts/inline/InlineFormattingContext.cpp
M Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayBox.h
M Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp
M Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayContentBuilder.h
M Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayLine.h
M Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayLineBuilder.cpp
M Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayLineBuilder.h
Log Message:
-----------
REGRESSION [IFC][line-clamp] walmart.com: Product details text overlaps
https://bugs.webkit.org/show_bug.cgi?id=255693
<rdar://107299009>
Reviewed by Antti Koivisto.
In this patch we start marking clamped content (lines and boxes) as fully truncated.
Fully truncated content does not get painted/participates in hittesting. It ensures that line-clamped content does not overflow sibling, non-clamped content.
Legacy line layout (somewhat) achieves this by adjusting the RenderBlockFlow height.
However in many cases it leads to unexpected content show where we end up painting over padding/border/margin area.
* LayoutTests/fast/flexbox/line-clamp-with-margin-bottom-child-expected.html: Added.
* LayoutTests/fast/flexbox/line-clamp-with-margin-bottom-child.html: Added.
* Source/WebCore/layout/formattingContexts/inline/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::createDisplayContentForLine):
* Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayBox.h:
(WebCore::InlineDisplay::Box::Box):
* Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp:
(WebCore::Layout::InlineDisplayContentBuilder::InlineDisplayContentBuilder):
(WebCore::Layout::InlineDisplayContentBuilder::appendTextDisplayBox):
(WebCore::Layout::InlineDisplayContentBuilder::appendSoftLineBreakDisplayBox):
(WebCore::Layout::InlineDisplayContentBuilder::appendHardLineBreakDisplayBox):
(WebCore::Layout::InlineDisplayContentBuilder::appendAtomicInlineLevelDisplayBox):
(WebCore::Layout::InlineDisplayContentBuilder::appendRootInlineBoxDisplayBox):
(WebCore::Layout::InlineDisplayContentBuilder::appendInlineBoxDisplayBox):
(WebCore::Layout::InlineDisplayContentBuilder::appendSpanningInlineBoxDisplayBox):
(WebCore::Layout::InlineDisplayContentBuilder::appendInlineDisplayBoxAtBidiBoundary):
* Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayContentBuilder.h:
(WebCore::Layout::InlineDisplayContentBuilder::isLineFullyTruncatedInBlockDirection const):
* Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayLine.h:
(WebCore::InlineDisplay::Line::isTruncatedInBlockDirection const):
(WebCore::InlineDisplay::Line::Line):
(WebCore::InlineDisplay::Line::visibleRectIgnoringBlockDirection const):
* Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayLineBuilder.cpp:
(WebCore::Layout::InlineDisplayLineBuilder::build const):
* Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayLineBuilder.h:
Canonical link: https://commits.webkit.org/263289@main
More information about the webkit-changes
mailing list