Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 5b298bedb216083ca2c89eff8d0347fd2c2dcf03
      
https://github.com/WebKit/WebKit/commit/5b298bedb216083ca2c89eff8d0347fd2c2dcf03
  Author: Antti Koivisto <an...@apple.com>
  Date:   2023-12-10 (Sun, 10 Dec 2023)

  Changed paths:
    M LayoutTests/compositing/repaint/move-backing-sharing-layer-expected.txt
    M 
LayoutTests/fast/repaint/absolute-position-change-containing-block-expected.txt
    M 
LayoutTests/fast/repaint/incorrect-repaint-when-container-changes-from-overflow-visible-to-hidden-expected.txt
    M 
LayoutTests/platform/ios-wk2/compositing/repaint/move-backing-sharing-layer-expected.txt
    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/RenderBlockFlow.h

  Log Message:
  -----------
  [IFC] Optimize out-of-flow positioned boxes in inline layout
https://bugs.webkit.org/show_bug.cgi?id=266065
rdar://problem/119461223

Reviewed by Alan Baradlay.

We have nothing but out-of-flow boxes so we don't need to run the actual line 
layout.
Instead, we can just set the static positions to the point where all these 
boxes would end up.
This is a common case when using transforms to animate positioned boxes.

* Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::shouldSwitchToLegacyOnInvalidation 
const): Deleted.

No need to switch to legacy in this case anymore.

* Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.h:
* Source/WebCore/rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::invalidateLineLayoutPath):
(WebCore::hasSimpleStaticPositionForOutOfFlowChildren):
(WebCore::RenderBlockFlow::layoutModernLines):

Bail out before creating LineLayout.

(WebCore::RenderBlockFlow::setStaticPositionsForSimpleOutOfFlowContent):

We only need to reset the static positions in this case.

* Source/WebCore/rendering/RenderBlockFlow.h:

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


_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to