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