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

Reply via email to