Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: da0c8718b475f6260bb52fcb7a4c4303fcf37ca5
https://github.com/WebKit/WebKit/commit/da0c8718b475f6260bb52fcb7a4c4303fcf37ca5
Author: Alan Baradlay <[email protected]>
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
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes