[webkit-changes] [WebKit/WebKit] fd501b: [IFC][Invalidation] Enable multiple, append type o...
Alan Baradlay
noreply at github.com
Sat Sep 9 07:52:06 PDT 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: fd501bda408cb934e51bf96775d26a1d78e5b3fb
https://github.com/WebKit/WebKit/commit/fd501bda408cb934e51bf96775d26a1d78e5b3fb
Author: Alan Baradlay <zalan at apple.com>
Date: 2023-09-09 (Sat, 09 Sep 2023)
Changed paths:
A LayoutTests/fast/text/simple-text-append-with-br-expected.html
A LayoutTests/fast/text/simple-text-append-with-br.html
M Source/WebCore/layout/formattingContexts/inline/invalidation/InlineDamage.h
M Source/WebCore/layout/formattingContexts/inline/invalidation/InlineInvalidation.cpp
M Source/WebCore/layout/formattingContexts/inline/invalidation/InlineInvalidation.h
M Source/WebCore/layout/integration/LayoutIntegrationCoverage.cpp
M Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.h
Log Message:
-----------
[IFC][Invalidation] Enable multiple, append type of damages
https://bugs.webkit.org/show_bug.cgi?id=261346
Reviewed by Antti Koivisto.
Introduce "damage reason" so that invalidation code can check if multiple mutations should
or should not trigger full invalidation (by looking at existing damage types on the current content).
(Currently (and it's a FIXME item) in case of such mutations, we keep re-visiting
the existing display content to dirty the last line, which is certainly not optimal but it's not expensive either)
* LayoutTests/fast/text/simple-text-append-with-br-expected.html: Added.
* LayoutTests/fast/text/simple-text-append-with-br.html: Added.
* Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayLine.h:
(WebCore::InlineDisplay::Line::lastBoxIndex const):
* Source/WebCore/layout/formattingContexts/inline/invalidation/InlineDamage.h:
(WebCore::Layout::InlineDamage::reason const):
(WebCore::Layout::InlineDamage::setDamageReason):
(WebCore::Layout::InlineDamage::reset):
* Source/WebCore/layout/formattingContexts/inline/invalidation/InlineInvalidation.cpp:
(WebCore::Layout::InlineInvalidation::updateInlineDamage):
(WebCore::Layout::InlineInvalidation::applyFullDamageIfNeeded):
(WebCore::Layout::InlineInvalidation::textInserted):
(WebCore::Layout::InlineInvalidation::textWillBeRemoved):
(WebCore::Layout::InlineInvalidation::inlineLevelBoxInserted):
(WebCore::Layout::InlineInvalidation::inlineLevelBoxWillBeRemoved):
* Source/WebCore/layout/formattingContexts/inline/invalidation/InlineInvalidation.h:
* Source/WebCore/layout/integration/LayoutIntegrationCoverage.cpp:
(WebCore::LayoutIntegration::shouldInvalidateLineLayoutPathAfterChangeFor):
* Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.h:
(WebCore::LayoutIntegration::LineLayout::damageReason const):
Canonical link: https://commits.webkit.org/267829@main
More information about the webkit-changes
mailing list