[webkit-changes] [WebKit/WebKit] c38822: Inline-level elements with self-painting layer ren...

Alan Baradlay noreply at github.com
Wed Jun 7 21:41:14 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: c38822c4ed1cacacccbaf4c04dbd02047ad5ebed
      https://github.com/WebKit/WebKit/commit/c38822c4ed1cacacccbaf4c04dbd02047ad5ebed
  Author: Alan Baradlay <zalan at apple.com>
  Date:   2023-06-07 (Wed, 07 Jun 2023)

  Changed paths:
    A LayoutTests/fast/inline/overflow-truncate-with-self-painting-layer-expected.html
    A LayoutTests/fast/inline/overflow-truncate-with-self-painting-layer.html
    A LayoutTests/fast/inline/overflow-truncate-with-self-painting-layer2-expected.html
    A LayoutTests/fast/inline/overflow-truncate-with-self-painting-layer2.html
    M Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.cpp
    M Source/WebCore/rendering/RenderLayer.cpp
    M Source/WebCore/rendering/RenderLayer.h

  Log Message:
  -----------
  Inline-level elements with self-painting layer renders overlapping ellipsis.
https://bugs.webkit.org/show_bug.cgi?id=257811
<rdar://problem/110408920>

Reviewed by Simon Fraser.

"text-overflow: ellipsis" visually replaces partially overflowing content with "..."
We achieve this by
1. skipping partially overflowing content at paint time (text content gets partially truncated, while inline level boxes are skipped completely)
2. paint "..." starting from where the truncated inline content ends
("overflow: hidden" takes care of clipping the remaining, fully overflowing content)

This patch ensures that such truncated boxes don't get painted even when they are on self-painting layers.

* LayoutTests/fast/inline/overflow-truncate-with-self-painting-layer-expected.html: Added.
* LayoutTests/fast/inline/overflow-truncate-with-self-painting-layer.html: Added.
* Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::updateRenderTreePositions): At this point we finished with inline layout and start transferring geometry/state
information over to the render tree. Let's update the associated RenderLayers here.

* Source/WebCore/rendering/RenderLayer.cpp:
(WebCore::RenderLayer::computeHasVisibleContent const):
* Source/WebCore/rendering/RenderLayer.h:
(WebCore::RenderLayer::setIsHiddenByOverflowTruncation):

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




More information about the webkit-changes mailing list