[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