Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 63b0b4f091fe9ab5136c710e3b0b7c8d889a6647
https://github.com/WebKit/WebKit/commit/63b0b4f091fe9ab5136c710e3b0b7c8d889a6647
Author: Antti Koivisto <[email protected]>
Date: 2024-08-09 (Fri, 09 Aug 2024)
Changed paths:
M Source/WebCore/Sources.txt
M Source/WebCore/WebCore.xcodeproj/project.pbxproj
M Source/WebCore/layout/LayoutState.cpp
M Source/WebCore/layout/LayoutState.h
M Source/WebCore/layout/formattingContexts/FormattingContext.cpp
M
Source/WebCore/layout/formattingContexts/inline/InlineFormattingContext.cpp
M Source/WebCore/layout/formattingContexts/inline/InlineFormattingContext.h
M Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.cpp
M Source/WebCore/layout/integration/LayoutIntegrationBoxTree.cpp
A
Source/WebCore/layout/integration/LayoutIntegrationFormattingContextLayout.cpp
A
Source/WebCore/layout/integration/LayoutIntegrationFormattingContextLayout.h
M
Source/WebCore/layout/integration/inline/LayoutIntegrationBoxGeometryUpdater.cpp
M
Source/WebCore/layout/integration/inline/LayoutIntegrationBoxGeometryUpdater.h
M Source/WebCore/layout/layouttree/LayoutBox.cpp
M Source/WebCore/layout/layouttree/LayoutElementBox.cpp
M Source/WebCore/layout/layouttree/LayoutElementBox.h
M Source/WebCore/layout/layouttree/LayoutTreeBuilder.cpp
M Source/WebCore/rendering/RenderBlockFlow.cpp
M Source/WebCore/rendering/RenderView.cpp
Log Message:
-----------
[LFC] Perform nested float layout from IFC
https://bugs.webkit.org/show_bug.cgi?id=277732
rdar://133374470
Reviewed by Alan Baradlay.
Add a mechanism to call back into render tree layout code from formatting
context layout
and use it for IFC floats. This mechanism will be important for flex where we
must invoke
nested layout from the middle.
* Source/WebCore/Sources.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/layout/LayoutState.cpp:
(WebCore::Layout::LayoutState::LayoutState):
(WebCore::Layout::LayoutState::layoutWithFormattingContextForBox):
Keep callback function in LayoutState.
* Source/WebCore/layout/LayoutState.h:
* Source/WebCore/layout/formattingContexts/FormattingContext.cpp:
* Source/WebCore/layout/formattingContexts/inline/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::InlineFormattingContext):
(WebCore::Layout::InlineFormattingContext::layoutFloatContentOnly):
Use the nested layout mechanism for floats.
(WebCore::Layout::InlineFormattingContext::geometryForBox const):
(WebCore::Layout::InlineFormattingContext::geometryForBox):
(WebCore::Layout::InlineFormattingContext::rebuildInlineItemListIfNeeded):
(WebCore::Layout::InlineFormattingContext::layoutWithFormattingContextForBox):
* Source/WebCore/layout/formattingContexts/inline/InlineFormattingContext.h:
* Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::tryPlacingFloatBox):
Use the nested layout mechanism for floats.
* Source/WebCore/layout/integration/LayoutIntegrationBoxTree.cpp:
(WebCore::LayoutIntegration::elementAttributes):
Fix the node type for render tree tables show they establish a formatting
context.
*
Source/WebCore/layout/integration/LayoutIntegrationFormattingContextLayout.cpp:
Added.
(WebCore::LayoutIntegration::layoutWithFormattingContextForBox):
Integration layout function that calls back into render tree and updates the
geometry after.
* Source/WebCore/layout/integration/LayoutIntegrationFormattingContextLayout.h:
Added.
*
Source/WebCore/layout/integration/inline/LayoutIntegrationBoxGeometryUpdater.cpp:
(WebCore::LayoutIntegration::BoxGeometryUpdater::BoxGeometryUpdater):
(WebCore::LayoutIntegration::BoxGeometryUpdater::setGeometriesForLayout):
(WebCore::LayoutIntegration::BoxGeometryUpdater::updateGeometryAfterLayout):
Add function for post-layout geometry update.
*
Source/WebCore/layout/integration/inline/LayoutIntegrationBoxGeometryUpdater.h:
* Source/WebCore/layout/layouttree/LayoutElementBox.cpp:
(WebCore::Layout::ElementBox::rendererForIntegration const):
* Source/WebCore/layout/layouttree/LayoutElementBox.h:
* Source/WebCore/layout/layouttree/LayoutTreeBuilder.cpp:
(WebCore::Layout::printLayoutTreeForLiveDocuments):
* Source/WebCore/rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::layoutModernLines):
Don't layout floats before entering IFC.
* Source/WebCore/rendering/RenderView.cpp:
(WebCore::RenderView::RenderView):
Establish the layout callback function.
Canonical link: https://commits.webkit.org/282042@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