[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