Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 35416b6b8ce498954d542f25d74cb15f3a35f089 https://github.com/WebKit/WebKit/commit/35416b6b8ce498954d542f25d74cb15f3a35f089 Author: Sammy Gill <sammy.g...@apple.com> Date: 2023-02-27 (Mon, 27 Feb 2023)
Changed paths: A LayoutTests/fast/inline/legacy-margin-trim/block-container-float-inline-start-trim-float-drives-container-intrinsic-size-expected.html A LayoutTests/fast/inline/legacy-margin-trim/block-container-float-inline-start-trim-float-drives-container-intrinsic-size-orthogonal-expected.html A LayoutTests/fast/inline/legacy-margin-trim/block-container-float-inline-start-trim-float-drives-container-intrinsic-size-orthogonal.html A LayoutTests/fast/inline/legacy-margin-trim/block-container-float-inline-start-trim-float-drives-container-intrinsic-size-rtl-expected.html A LayoutTests/fast/inline/legacy-margin-trim/block-container-float-inline-start-trim-float-drives-container-intrinsic-size-rtl.html A LayoutTests/fast/inline/legacy-margin-trim/block-container-float-inline-start-trim-float-drives-container-intrinsic-size.html A LayoutTests/fast/inline/legacy-margin-trim/block-container-float-inline-trim-float-drives-container-intrinsic-size-inline-layout-expected.html A LayoutTests/fast/inline/legacy-margin-trim/block-container-float-inline-trim-float-drives-container-intrinsic-size-inline-layout.html A LayoutTests/fast/inline/legacy-margin-trim/block-container-float-inline-trim-text-drives-container-intrinsic-size-inline-layout-expected.html A LayoutTests/fast/inline/legacy-margin-trim/block-container-float-inline-trim-text-drives-container-intrinsic-size-inline-layout-vert-lr-expected.html A LayoutTests/fast/inline/legacy-margin-trim/block-container-float-inline-trim-text-drives-container-intrinsic-size-inline-layout-vert-lr.html A LayoutTests/fast/inline/legacy-margin-trim/block-container-float-inline-trim-text-drives-container-intrinsic-size-inline-layout.html A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-float-inline-start-trim-float-drives-container-intrinsic-size-expected.html A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-float-inline-start-trim-float-drives-container-intrinsic-size-orthogonal-expected.html A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-float-inline-start-trim-float-drives-container-intrinsic-size-orthogonal.html A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-float-inline-start-trim-float-drives-container-intrinsic-size-rtl-expected.html A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-float-inline-start-trim-float-drives-container-intrinsic-size-rtl.html A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-float-inline-start-trim-float-drives-container-intrinsic-size.html A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-float-inline-trim-float-drives-container-intrinsic-size-inline-layout-expected.html A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-float-inline-trim-float-drives-container-intrinsic-size-inline-layout.html A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-float-inline-trim-text-drives-container-intrinsic-size-inline-layout-expected.html A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-float-inline-trim-text-drives-container-intrinsic-size-inline-layout-vert-lr-expected.html A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-float-inline-trim-text-drives-container-intrinsic-size-inline-layout-vert-lr.html A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-float-inline-trim-text-drives-container-intrinsic-size-inline-layout.html M Source/WebCore/layout/integration/LayoutIntegrationCoverage.cpp M Source/WebCore/rendering/RenderBlockFlow.cpp Log Message: ----------- Floats' trimmed margins should not contribute to containing block's intrinsic sizing (legacy line layout) https://bugs.webkit.org/show_bug.cgi?id=252976 rdar://105960289 Reviewed by Alan Baradlay. When a containing block establishes and inline formatting context and it is being sized under some sort of intrinsic sizing constraint (e.g. width: min-content), then the margins of any float within that containing block should not contribute to the intrinsic sizing if it is specified under margin-trim. The logic is the same as in the block layout case and we can use the same helper to check whether a margin should contribute to the sizing: shouldChildInlineMarginContributeToContainerIntrinsicSize. container { display: block; inline-size: min-content; font-family: monospace; font-size: 10px; margin-trim: inline; border: 1px solid black; } item { display: block; float: left; width: 50px; height: 50px; margin-inline: 200px; background-color: green; } </style> <container> longwordinfluencescontainerintrinsicsize <item></item> text that should be after the float </container> Normally, the logical width of the containing block here would be drove by the float and its margin box size, but since margin-trim: inline is specified neither of its inline margins will be taken into consideration. Only the border box width will be used. <style> container { display: block; width: min-content; font-family: monospace; font-size: 10px; margin-trim: inline-start; border: 1px solid black; } item { display: block; float: left; width: 50px; height: 50px; margin-inline: 30px; background-color: green; } </style> <body> <container> <item></item> many l e t t e r s s e p a r a t e d b y s p a c e s </container> In this case normally the containing block logical width would be drove by the item's margin box with both inline margins, but since margin-trim: inline-start is specified that margin will not be used. Instead the logical width of the containing block is the float's border box logical width + the inline-end margin. * LayoutTests/fast/inline/legacy-margin-trim/block-container-float-inline-start-trim-float-drives-container-intrinsic-size-expected.html: Added. * LayoutTests/fast/inline/legacy-margin-trim/block-container-float-inline-start-trim-float-drives-container-intrinsic-size-orthogonal-expected.html: Added. * LayoutTests/fast/inline/legacy-margin-trim/block-container-float-inline-start-trim-float-drives-container-intrinsic-size-orthogonal.html: Added. * LayoutTests/fast/inline/legacy-margin-trim/block-container-float-inline-start-trim-float-drives-container-intrinsic-size-rtl-expected.html: Added. * LayoutTests/fast/inline/legacy-margin-trim/block-container-float-inline-start-trim-float-drives-container-intrinsic-size-rtl.html: Added. * LayoutTests/fast/inline/legacy-margin-trim/block-container-float-inline-start-trim-float-drives-container-intrinsic-size.html: Added. * LayoutTests/fast/inline/legacy-margin-trim/block-container-float-inline-trim-float-drives-container-intrinsic-size-inline-layout-expected.html: Added. * LayoutTests/fast/inline/legacy-margin-trim/block-container-float-inline-trim-float-drives-container-intrinsic-size-inline-layout.html: Added. * LayoutTests/fast/inline/legacy-margin-trim/block-container-float-inline-trim-text-drives-container-intrinsic-size-inline-layout-expected.html: Added. * LayoutTests/fast/inline/legacy-margin-trim/block-container-float-inline-trim-text-drives-container-intrinsic-size-inline-layout-vert-lr-expected.html: Added. * LayoutTests/fast/inline/legacy-margin-trim/block-container-float-inline-trim-text-drives-container-intrinsic-size-inline-layout-vert-lr.html: Added. * LayoutTests/fast/inline/legacy-margin-trim/block-container-float-inline-trim-text-drives-container-intrinsic-size-inline-layout.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-float-inline-start-trim-float-drives-container-intrinsic-size-expected.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-float-inline-start-trim-float-drives-container-intrinsic-size-rtl-expected.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-float-inline-start-trim-float-drives-container-intrinsic-size-rtl.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-float-inline-start-trim-float-drives-container-intrinsic-size.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-float-inline-trim-float-drives-container-intrinsic-size-inline-layout-expected.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-float-inline-trim-float-drives-container-intrinsic-size-inline-layout.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-float-inline-trim-text-drives-container-intrinsic-size-inline-layout-expected.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-float-inline-trim-text-drives-container-intrinsic-size-inline-layout-vert-lr-expected.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-float-inline-trim-text-drives-container-intrinsic-size-inline-layout-vert-lr.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-float-inline-trim-text-drives-container-intrinsic-size-inline-layout.html: Added. * Source/WebCore/layout/integration/LayoutIntegrationCoverage.cpp: (WebCore::LayoutIntegration::canUseForChild): * Source/WebCore/rendering/RenderBlockFlow.cpp: (WebCore::RenderBlockFlow::computeInlinePreferredLogicalWidths const): Canonical link: https://commits.webkit.org/260906@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes