[webkit-changes] [WebKit/WebKit] d7c47c: [IFC][Invalidation] Overlapping text when mutating...
Alan Baradlay
noreply at github.com
Thu Aug 15 10:44:29 PDT 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: d7c47c0f80c4da0ba51c5388fe4ec65672718ec1
https://github.com/WebKit/WebKit/commit/d7c47c0f80c4da0ba51c5388fe4ec65672718ec1
Author: Alan Baradlay <zalan at apple.com>
Date: 2024-08-15 (Thu, 15 Aug 2024)
Changed paths:
A LayoutTests/fast/dynamic/overlapping-content-when-inline-block-content-changes-expected.html
A LayoutTests/fast/dynamic/overlapping-content-when-inline-block-content-changes.html
M Source/WebCore/layout/formattingContexts/inline/invalidation/InlineInvalidation.cpp
M Source/WebCore/layout/formattingContexts/inline/invalidation/InlineInvalidation.h
M Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.cpp
M Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.h
M Source/WebCore/rendering/RenderBlockFlow.cpp
Log Message:
-----------
[IFC][Invalidation] Overlapping text when mutating inline-block content
https://bugs.webkit.org/show_bug.cgi?id=278102
Reviewed by Antti Koivisto.
We check for damage extent (and based on that trigger partial layout) when
- box gets added/removed
- text content changes
- style changes on any of the boxes participating in inline layout
However we ignore the case when the geometry change my come from content
change inside an inline level box (e.g. inline-block).
In such cases we have to let the parent IFC know about the change so that it can
compute the damage extent.
In this patch we simply opt out of partial layout when this happens.
* LayoutTests/fast/dynamic/overlapping-content-when-inline-block-content-changes-expected.html: Added.
* LayoutTests/fast/dynamic/overlapping-content-when-inline-block-content-changes.html: Added.
* Source/WebCore/layout/formattingContexts/inline/invalidation/InlineInvalidation.cpp:
(WebCore::Layout::InlineInvalidation::inlineLevelBoxContentWillChange):
* Source/WebCore/layout/formattingContexts/inline/invalidation/InlineInvalidation.h:
* Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::boxContentWillChange):
* Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.h:
* Source/WebCore/rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::layoutModernLines):
Canonical link: https://commits.webkit.org/282296@main
To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications
More information about the webkit-changes
mailing list