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