Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 3637bd1b58352db313aef075f91e59b27a693281
      
https://github.com/WebKit/WebKit/commit/3637bd1b58352db313aef075f91e59b27a693281
  Author: Antti Koivisto <[email protected]>
  Date:   2024-08-12 (Mon, 12 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/LayoutBox.h
    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/282112@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