Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 27bd238f9e476cd70845f5976581d6df0dd28aad
      
https://github.com/WebKit/WebKit/commit/27bd238f9e476cd70845f5976581d6df0dd28aad
  Author: Antti Koivisto <[email protected]>
  Date:   2026-01-12 (Mon, 12 Jan 2026)

  Changed paths:
    M 
Source/WebCore/layout/formattingContexts/inline/InlineFormattingContext.cpp
    M 
Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayContent.cpp
    M 
Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayContent.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
    M Source/WebCore/layout/integration/inline/InlineIteratorLineBoxModernPath.h
    M Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.cpp
    M Source/WebCore/layout/integration/inline/LayoutIntegrationPagination.cpp

  Log Message:
  -----------
  Move InlineDisplay::Line::Ellipsis to a side structure
https://bugs.webkit.org/show_bug.cgi?id=305327
rdar://167984446

Reviewed by Alan Baradlay.

Shrink the popular Line struct by moving this rare optional struct to a 
separate vector in Content.

* Source/WebCore/layout/formattingContexts/inline/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::createDisplayContentForInlineContent):
* 
Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayContent.cpp:
(WebCore::InlineDisplay::Content::set):
(WebCore::InlineDisplay::Content::append):
(WebCore::InlineDisplay::Content::insert):
(WebCore::InlineDisplay::Content::remove):
(WebCore::InlineDisplay::Content::setLineEllipsis):
(WebCore::InlineDisplay::Content::lineEllipsis const):

Ellipses are kept in a Vector that is constructed on demand and is sized to fit 
the highest line index
with an ellipsis.

(WebCore::InlineDisplay::Content::moveLineInBlockDirection):
(WebCore::InlineDisplay::Content::shrinkLineInBlockDirection):

Add some line mutation functions for things that affect ellipses.

* 
Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayContent.h:
* Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayLine.h:
(WebCore::InlineDisplay::Line::hasEllipsis const):
(WebCore::InlineDisplay::Line::setHasEllipsis):
(WebCore::InlineDisplay::Line::moveInBlockDirection):
(WebCore::InlineDisplay::Line::shrinkInBlockDirection):
(WebCore::InlineDisplay::Line::setEllipsis): Deleted.
(WebCore::InlineDisplay::Line::ellipsis const): Deleted.
(WebCore::InlineDisplay::Line::visibleRectIgnoringBlockDirection const): 
Deleted.
* 
Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayLineBuilder.cpp:
(WebCore::Layout::makeRoomForLinkBoxOnClampedLineIfNeeded):
(WebCore::Layout::moveDisplayBoxToClampedLine):
(WebCore::Layout::InlineDisplayLineBuilder::addLegacyLineClampTrailingLinkBoxIfApplicable):
(WebCore::Layout::InlineDisplayLineBuilder::applyEllipsisIfNeeded):
* 
Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayLineBuilder.h:
* Source/WebCore/layout/integration/inline/InlineIteratorLineBoxModernPath.h:
(WebCore::InlineIterator::LineBoxIteratorModernPath::ellipsisVisualRectIgnoringBlockDirection
 const):
(WebCore::InlineIterator::LineBoxIteratorModernPath::ellipsisText const):
(WebCore::InlineIterator::LineBoxIteratorModernPath::lineEllipsis const):
* Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::hasEllipsisInBlockDirectionOnLastFormattedLine
 const):
(WebCore::LayoutIntegration::LineLayout::hitTest):
(WebCore::LayoutIntegration::LineLayout::shiftLinesBy):
* Source/WebCore/layout/integration/inline/LayoutIntegrationPagination.cpp:
(WebCore::LayoutIntegration::adjustLinePositionsForPagination):

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to