Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: bac664c02d19fd4e21715acbceeaafd191ef9c20
      
https://github.com/WebKit/WebKit/commit/bac664c02d19fd4e21715acbceeaafd191ef9c20
  Author: Alan Baradlay <[email protected]>
  Date:   2023-08-30 (Wed, 30 Aug 2023)

  Changed paths:
    M LayoutTests/compositing/repaint/move-backing-sharing-layer-expected.txt
    M 
LayoutTests/platform/ios-wk2/compositing/repaint/move-backing-sharing-layer-expected.txt
    M Source/WebCore/layout/formattingContexts/flex/FlexLayout.cpp
    M 
Source/WebCore/layout/formattingContexts/inline/InlineFormattingContext.cpp
    M Source/WebCore/layout/formattingContexts/inline/InlineFormattingContext.h
    M 
Source/WebCore/layout/formattingContexts/inline/InlineFormattingGeometry.cpp
    M Source/WebCore/layout/formattingContexts/inline/InlineFormattingGeometry.h
    M Source/WebCore/layout/formattingContexts/inline/InlineItemsBuilder.cpp
    M Source/WebCore/layout/formattingContexts/inline/InlineItemsBuilder.h
    M Source/WebCore/layout/formattingContexts/inline/InlineLine.cpp
    M Source/WebCore/layout/formattingContexts/inline/InlineLine.h
    M Source/WebCore/layout/formattingContexts/inline/InlineLineBox.cpp
    M Source/WebCore/layout/formattingContexts/inline/InlineLineBox.h
    M Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.cpp
    M 
Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp
    M 
Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayContentBuilder.h
    M Source/WebCore/layout/integration/LayoutIntegrationCoverage.cpp
    M Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.cpp

  Log Message:
  -----------
  [IFC] Use opaque InlineItem to compute out-of-flow static position
https://bugs.webkit.org/show_bug.cgi?id=260776

Reviewed by Antti Koivisto.

Let's replace existing out-of-flow handling with using opaque inline items 
instead.
1. Add out-of-flow content to the inline item list as opaque box and run 
regular inline layout.
2. Set static position as part of the inline display content building process 
where we iterate through the runs on the current line.
3. Since this is all part of _inflow_ layout, we don't need the dedicated 
_out_of_flow_ method on InlineFormattingContext anymore.
4. Remove existing logic where we compute the static position by looking at 
adjacent display box geometries.

* LayoutTests/compositing/repaint/move-backing-sharing-layer-expected.txt:
* 
LayoutTests/platform/ios-wk2/compositing/repaint/move-backing-sharing-layer-expected.txt:
* Source/WebCore/layout/formattingContexts/inline/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::layoutOutOfFlowContent): Deleted.
(WebCore::Layout::InlineFormattingContext::computeStaticPositionForOutOfFlowContent):
 Deleted.
* Source/WebCore/layout/formattingContexts/inline/InlineFormattingContext.h:
* Source/WebCore/layout/formattingContexts/inline/InlineFormattingGeometry.cpp:
(WebCore::Layout::firstDisplayBoxIndexForLayoutBox): Deleted.
(WebCore::Layout::lastDisplayBoxIndexForLayoutBox): Deleted.
(WebCore::Layout::previousDisplayBoxIndex): Deleted.
(WebCore::Layout::nextDisplayBoxIndex): Deleted.
(WebCore::Layout::InlineFormattingGeometry::contentLeftAfterLastLine const): 
Deleted.
(WebCore::Layout::InlineFormattingGeometry::staticPositionForOutOfFlowInlineLevelBox
 const): Deleted.
(WebCore::Layout::InlineFormattingGeometry::staticPositionForOutOfFlowBlockLevelBox
 const): Deleted.
* Source/WebCore/layout/formattingContexts/inline/InlineFormattingGeometry.h:
* Source/WebCore/layout/formattingContexts/inline/InlineItemsBuilder.cpp:
(WebCore::Layout::InlineItemsBuilder::build):
(WebCore::Layout::InlineItemsBuilder::collectInlineItems):
* Source/WebCore/layout/formattingContexts/inline/InlineItemsBuilder.h:
* Source/WebCore/layout/formattingContexts/inline/InlineLine.cpp:
(WebCore::Layout::Line::removeOverflowingOurOfFlowContent):
* Source/WebCore/layout/formattingContexts/inline/InlineLine.h:
* Source/WebCore/layout/formattingContexts/inline/InlineLineBox.cpp:
(WebCore::Layout::LineBox::logicalRectForOpaqueBox const):
* Source/WebCore/layout/formattingContexts/inline/InlineLineBox.h:
* Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::placeInlineAndFloatContent):
* 
Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp:
(WebCore::Layout::InlineDisplayContentBuilder::processNonBidiContent):
* Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::layout):

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


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to