[webkit-changes] [WebKit/WebKit] bac664: [IFC] Use opaque InlineItem to compute out-of-flow...
Alan Baradlay
noreply at github.com
Wed Aug 30 09:29:27 PDT 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: bac664c02d19fd4e21715acbceeaafd191ef9c20
https://github.com/WebKit/WebKit/commit/bac664c02d19fd4e21715acbceeaafd191ef9c20
Author: Alan Baradlay <zalan at apple.com>
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
More information about the webkit-changes
mailing list