Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: da0c8718b475f6260bb52fcb7a4c4303fcf37ca5
      
https://github.com/WebKit/WebKit/commit/da0c8718b475f6260bb52fcb7a4c4303fcf37ca5
  Author: Alan Baradlay <za...@apple.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M 
Source/WebCore/layout/formattingContexts/inline/invalidation/InlineInvalidation.cpp
    M 
Source/WebCore/layout/formattingContexts/inline/invalidation/InlineInvalidation.h
    M Source/WebCore/layout/integration/LayoutIntegrationBoxTree.cpp
    M Source/WebCore/layout/integration/LayoutIntegrationBoxTree.h
    M Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.cpp
    M Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.h
    M Source/WebCore/rendering/RenderBlockFlow.cpp
    M Source/WebCore/rendering/RenderBox.cpp
    M Source/WebCore/rendering/RenderElement.cpp
    M Source/WebCore/rendering/RenderInline.cpp
    M Source/WebCore/rendering/RenderText.cpp

  Log Message:
  -----------
  [IFC][Integration] Decouple style update and invalidation on style change
https://bugs.webkit.org/show_bug.cgi?id=272636

Reviewed by Antti Koivisto.

1. Let's update each layout box as their style changes -as opposed to rely on 
the root updating its direct children
(which fails with first line when text content is nested inside an inline box)

2. Move invalidation over to styleWillChange.
In cases when style mutation changes containing block chain, styleDiDChange is 
too late to find the associated LineLayout object.

* LayoutTests/fast/block/out-of-flow-becomes-float-crash.html:
* 
Source/WebCore/layout/formattingContexts/inline/invalidation/InlineInvalidation.cpp:
(WebCore::Layout::InlineInvalidation::styleWillChange):
(WebCore::Layout::InlineInvalidation::styleChanged): Deleted.
* 
Source/WebCore/layout/formattingContexts/inline/invalidation/InlineInvalidation.h:
* Source/WebCore/layout/integration/LayoutIntegrationBoxTree.cpp:
(WebCore::LayoutIntegration::BoxTree::updateStyle):
(WebCore::LayoutIntegration::BoxTree::updateContent):
* Source/WebCore/layout/integration/LayoutIntegrationBoxTree.h:
* Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::updateStyle):
(WebCore::LayoutIntegration::LineLayout::styleWillChange):
(WebCore::LayoutIntegration::LineLayout::updateTextContent):
* Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.h:
* Source/WebCore/rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::styleDidChange):
* Source/WebCore/rendering/RenderBox.cpp:
(WebCore::RenderBox::styleDidChange):
* Source/WebCore/rendering/RenderElement.cpp:
(WebCore::RenderElement::styleWillChange):
(WebCore::RenderElement::styleDidChange):
* Source/WebCore/rendering/RenderInline.cpp:
(WebCore::RenderInline::styleDidChange):
* Source/WebCore/rendering/RenderText.cpp:
(WebCore::RenderText::styleDidChange):

Canonical link: https://commits.webkit.org/277555@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to