[webkit-changes] [WebKit/WebKit] 8c4976: REGRESSION(STP169): wpt/css/css-overflow/webkit-li...

Alan Baradlay noreply at github.com
Sat May 13 06:08:12 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 8c497617ec2a904ffb93e425f5b6ca882e1fe56a
      https://github.com/WebKit/WebKit/commit/8c497617ec2a904ffb93e425f5b6ca882e1fe56a
  Author: Alan Baradlay <zalan at apple.com>
  Date:   2023-05-13 (Sat, 13 May 2023)

  Changed paths:
    M LayoutTests/TestExpectations
    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
    A LayoutTests/imported/w3c/web-platform-tests/css/css-overflow/webkit-line-clamp-038-expected.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-overflow/webkit-line-clamp-038.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-overflow/webkit-line-clamp-039-expected.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-overflow/webkit-line-clamp-039.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-overflow/webkit-line-clamp-040-expected.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-overflow/webkit-line-clamp-040.html
    M LayoutTests/platform/ios/fast/overflow/line-clamp-expected.txt
    M LayoutTests/platform/mac/fast/overflow/line-clamp-expected.txt
    M Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp
    M Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayContentBuilder.h
    M Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.cpp
    M Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.h
    M Source/WebCore/rendering/RenderBlockFlow.cpp
    M Source/WebCore/rendering/RenderDeprecatedFlexibleBox.cpp
    M Source/WebCore/rendering/RenderDeprecatedFlexibleBox.h
    M Source/WebCore/rendering/RenderLayoutState.h

  Log Message:
  -----------
  REGRESSION(STP169): wpt/css/css-overflow/webkit-line-clamp-040.html
https://bugs.webkit.org/show_bug.cgi?id=256371
<rdar://108949870>

Reviewed by Antti Koivisto.

This is a partial revert of 263289 at main where we stopped painting _clamped_ content.
This behavior violates the most recent version of -webkit-line-clamp spec which says (and I am paraphrasing here)
_clamped_ content should get painted as is and let clipping do its work to hide when applicable.
We may produce content like this:

  second line is
  where we clamp...
  but we keep painting content
  because reasons

263289 at main fixed some overlapping (clamped) content by not painting it, where this patch takes a different approach
where we size the flex box based on the clamped content (and let the flex items expand to their unclamped size).

1. LineLayout::contentBoxLogicalHeight now ignores the block direction clamping and clamping logic should
   consult LineLayout::clampedContentLogicalHeight to figure out the clamped content height.
2. Turn clamped content height into a flex box relative content bottom.
3. Use clamped content bottom to size the flex box.

* LayoutTests/fast/block/zero-width-block-with-line-clamp-multiple-lines-expected.html: back to pre-263289 at main behavior.
* LayoutTests/fast/flexbox/line-clamp-with-anchor-content-only-expected.html: back to pre-263289 at main behavior.

* LayoutTests/TestExpectations:
* LayoutTests/fast/inline/line-clamp-with-text-align-expected.html:
* LayoutTests/fast/inline/line-clamp-with-text-align.html:
* LayoutTests/imported/w3c/web-platform-tests/css/css-overflow/webkit-line-clamp-038-expected.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/css-overflow/webkit-line-clamp-038.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/css-overflow/webkit-line-clamp-039-expected.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/css-overflow/webkit-line-clamp-039.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/css-overflow/webkit-line-clamp-040-expected.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/css-overflow/webkit-line-clamp-040.html: Added.
* LayoutTests/platform/ios/fast/overflow/line-clamp-expected.txt:
* LayoutTests/platform/mac/fast/overflow/line-clamp-expected.txt:
* Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp:
(WebCore::Layout::InlineDisplayContentBuilder::InlineDisplayContentBuilder):
* Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayContentBuilder.h:
* Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::clampedContentLogicalHeight const):
(WebCore::LayoutIntegration::LineLayout::contentBoxLogicalHeight const):
* Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.h:
* Source/WebCore/rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::layoutModernLines):
* Source/WebCore/rendering/RenderDeprecatedFlexibleBox.cpp:
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):
(WebCore::RenderDeprecatedFlexibleBox::applyModernLineClamp):
(WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):
* Source/WebCore/rendering/RenderDeprecatedFlexibleBox.h:
* Source/WebCore/rendering/RenderLayoutState.h:

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




More information about the webkit-changes mailing list