Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: e20aa5ee8e8a4d457bef5e5d22524ad0df517b1d
https://github.com/WebKit/WebKit/commit/e20aa5ee8e8a4d457bef5e5d22524ad0df517b1d
Author: Alan Baradlay <[email protected]>
Date: 2024-09-23 (Mon, 23 Sep 2024)
Changed paths:
M
Source/WebCore/layout/integration/LayoutIntegrationFormattingContextLayout.cpp
M
Source/WebCore/layout/integration/inline/LayoutIntegrationBoxGeometryUpdater.cpp
M
Source/WebCore/layout/integration/inline/LayoutIntegrationBoxGeometryUpdater.h
M Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.cpp
M Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.h
M Source/WebCore/rendering/RenderBlockFlow.cpp
Log Message:
-----------
[LFC][Integration] Always resolve margin/padding values (BoxGeometryUpdater)
https://bugs.webkit.org/show_bug.cgi?id=280039
Reviewed by Antti Koivisto.
This is in preparation for using BoxGeometryUpdater from FFC and also moving
more
logic from render tree to LFC.
With the exception of some table/cell/fieldset special decoration handling, we
should be able to
compute margin, border and padding values without calling layout on the
renderer itself.
(which we already skip for the intrinsic width computation codepath).
This will enable us to use less and less renderer layout logic to the point
where we
only need to call into a render layout when it is a formatting context root (to
initiate layout on its descendants).
This change also ensures that BoxGeometry does not hold any stale values even
temporarily from starting running InlineFormattingContext::layout
until calling layoutWithFormattingContextForBox on each (non-inline box) inline
level boxes.
-special case table cell's "intrinsic padding" values and collapsed borders.
-also fieldset border which is really unfortunate.
Eventually all these logic will get moved over to updater.
*
Source/WebCore/layout/integration/LayoutIntegrationFormattingContextLayout.cpp:
(WebCore::LayoutIntegration::layoutWithFormattingContextForBox):
*
Source/WebCore/layout/integration/inline/LayoutIntegrationBoxGeometryUpdater.cpp:
(WebCore::LayoutIntegration::usedValueOrZero):
(WebCore::LayoutIntegration::BoxGeometryUpdater::updateListMarkerDimensions):
(WebCore::LayoutIntegration::horizontalLogicalMargin):
(WebCore::LayoutIntegration::logicalBorder):
(WebCore::LayoutIntegration::logicalPadding):
(WebCore::LayoutIntegration::BoxGeometryUpdater::updateLayoutBoxDimensions):
(WebCore::LayoutIntegration::BoxGeometryUpdater::updateInlineBoxDimensions):
(WebCore::LayoutIntegration::BoxGeometryUpdater::setGeometriesForLayout):
(WebCore::LayoutIntegration::BoxGeometryUpdater::setGeometriesForIntrinsicWidth):
(WebCore::LayoutIntegration::BoxGeometryUpdater::updateInlineContentConstraints):
(WebCore::LayoutIntegration::BoxGeometryUpdater::updateGeometryAfterLayout):
(WebCore::LayoutIntegration::BoxGeometryUpdater::updateBoxGeometry):
(WebCore::LayoutIntegration::fixedValueOrZero): Deleted.
*
Source/WebCore/layout/integration/inline/LayoutIntegrationBoxGeometryUpdater.h:
* Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::updateInlineContentDimensions):
(WebCore::LayoutIntegration::LineLayout::updateInlineContentConstraints):
* Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.h:
* Source/WebCore/rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::layoutInlineContent):
Canonical link: https://commits.webkit.org/284074@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