Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 7b53201b5eeb31379032bac023bccc125877e993 https://github.com/WebKit/WebKit/commit/7b53201b5eeb31379032bac023bccc125877e993 Author: Alan Baradlay <za...@apple.com> Date: 2023-09-09 (Sat, 09 Sep 2023)
Changed paths: M Source/WebCore/layout/formattingContexts/inline/InlineItemsBuilder.cpp M Source/WebCore/layout/formattingContexts/inline/InlineItemsBuilder.h Log Message: ----------- [IFC][Partial layout] InlineItemsBuilder::m_isNonBidiTextAndForcedLineBreakOnlyContent may get stale with partial content https://bugs.webkit.org/show_bug.cgi?id=261373 Reviewed by Antti Koivisto. m_isNonBidiTextAndForcedLineBreakOnlyContent tells whether the _entire_ IFC content is text and/or forced line break only. This patch fixes the case where the partial content is indeed text and/or forced line break, but the non-mutated part of the content has other type of boxes. As the first step of inline item collection on partial content, we traverse the inline tree starting from the root all the way to the damaged box while pushing/poping subtree roots. It ensures that we can continue collecting mutated content even when it is nested inside inline boxes e.g. This is old <span>content but here <span>we've got some newly appended and nested content</span><span> During this initialization we can also check for m_isNonBidiTextAndForcedLineBreakOnlyContent. * Source/WebCore/layout/formattingContexts/inline/InlineItemsBuilder.cpp: (WebCore::Layout::isNonBidiTextOrForcedLineBreak): (WebCore::Layout::InlineItemsBuilder::traverseUntilDamaged): (WebCore::Layout::InlineItemsBuilder::initializeLayoutQueue): (WebCore::Layout::InlineItemsBuilder::collectInlineItems): (WebCore::Layout::traverseUntilDamaged): Deleted. (WebCore::Layout::initializeLayoutQueue): Deleted. * Source/WebCore/layout/formattingContexts/inline/InlineItemsBuilder.h: Canonical link: https://commits.webkit.org/267835@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes