[webkit-changes] [WebKit/WebKit] d0f46b: [IFC][Integration] Allow RenderView layout by IFC
Antti Koivisto
noreply at github.com
Thu Oct 5 11:06:03 PDT 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: d0f46be6d47ee24ab4a015d8fcc577ea71c0062b
https://github.com/WebKit/WebKit/commit/d0f46be6d47ee24ab4a015d8fcc577ea71c0062b
Author: Antti Koivisto <antti at apple.com>
Date: 2023-10-05 (Thu, 05 Oct 2023)
Changed paths:
M Source/WebCore/layout/integration/LayoutIntegrationBoxTree.cpp
M Source/WebCore/layout/integration/LayoutIntegrationCoverage.cpp
M Source/WebCore/layout/integration/LayoutIntegrationCoverage.h
M Source/WebCore/rendering/RenderView.cpp
M Source/WebCore/rendering/RenderView.h
Log Message:
-----------
[IFC][Integration] Allow RenderView layout by IFC
https://bugs.webkit.org/show_bug.cgi?id=262705
rdar://116525525
Reviewed by Alan Baradlay.
In some cases (like if the document element has display:inline) root content will be laid out by IFC.
We currently use the LFC initial containing block box as a place to parent subtrees that are not
fully connected via ancestor chain (because we don't yet create layout boxes for all blocks).
Because of this the natural solution of just making RenderView::layoutBox() same as
RenderView::initialContainBlock() does not work. Instead this patch makes RenderView::layoutBox()
return a separate box parented to the initial containing block box.
* Source/WebCore/layout/integration/LayoutIntegrationBoxTree.cpp:
(WebCore::LayoutIntegration::BoxTree::BoxTree):
* Source/WebCore/layout/integration/LayoutIntegrationCoverage.cpp:
(WebCore::LayoutIntegration::canUseForLineLayoutWithReason):
* Source/WebCore/layout/integration/LayoutIntegrationCoverage.h:
* Source/WebCore/rendering/RenderView.cpp:
(WebCore::RenderView::~RenderView):
Ensure we delete line layout if it exits before we delete the initial containing block.
* Source/WebCore/rendering/RenderView.h:
Canonical link: https://commits.webkit.org/268927@main
More information about the webkit-changes
mailing list