[webkit-changes] [WebKit/WebKit] dc8332: [IFC] Do not populate InlineContentBreaker::Contin...
Alan Baradlay
noreply at github.com
Sun Aug 20 17:13:16 PDT 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: dc83324137d024dddf47dfe2c86be3da528b9a3b
https://github.com/WebKit/WebKit/commit/dc83324137d024dddf47dfe2c86be3da528b9a3b
Author: Alan Baradlay <zalan at apple.com>
Date: 2023-08-20 (Sun, 20 Aug 2023)
Changed paths:
M Source/WebCore/layout/formattingContexts/inline/TextOnlySimpleLineBuilder.cpp
M Source/WebCore/layout/formattingContexts/inline/TextOnlySimpleLineBuilder.h
Log Message:
-----------
[IFC] Do not populate InlineContentBreaker::ContinuousContent eagerly with candidate content
https://bugs.webkit.org/show_bug.cgi?id=260403
Reviewed by Antti Koivisto.
InlineContentBreaker::ContinuousContent pre-processes the candidate content to provide trailing/trimming information for InlineContentBreaker.
However we don't need that information until after we feed the content to line breaking.
Let's populate ContinuousContent lazily right before calling handleOverflowingTextContent.
(when content fits, we directly commit to line, otherwise
1. commit to ContinuousContent first
2. call InlineContentBreaker
3. commit the result to line)
This is ~10% progression on PerformanceTests/Layout/line-layout.html.
* Source/WebCore/layout/formattingContexts/inline/TextOnlySimpleLineBuilder.cpp:
(WebCore::Layout::CandidateTextContent::append):
(WebCore::Layout::measuredInlineTextItem):
(WebCore::Layout::appendInlineTextItem):
(WebCore::Layout::TextOnlySimpleLineBuilder::placeInlineTextContent):
(WebCore::Layout::TextOnlySimpleLineBuilder::placeNonWrappingInlineTextContent):
(WebCore::Layout::TextOnlySimpleLineBuilder::handleOverflowingTextContent):
(WebCore::Layout::TextOnlySimpleLineBuilder::revertToTrailingItem):
(WebCore::Layout::TextOnlySimpleLineBuilder::revertToLastNonOverflowingItem):
(WebCore::Layout::TextOnlySimpleLineBuilder::availableWidth const):
(WebCore::Layout::inlineTextItemWidth): Deleted.
(WebCore::Layout::TextOnlySimpleLineBuilder::handleInlineTextContent): Deleted.
* Source/WebCore/layout/formattingContexts/inline/TextOnlySimpleLineBuilder.h:
Canonical link: https://commits.webkit.org/267079@main
More information about the webkit-changes
mailing list