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

Reply via email to