[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