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