[webkit-changes] [WebKit/WebKit] c69be3: Trimmed inline-start margins for flex items in hor...
Sammy Gill
noreply at github.com
Fri Apr 7 08:18:20 PDT 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: c69be377e17c2977681fef9113d13d91b62d1ee4
https://github.com/WebKit/WebKit/commit/c69be377e17c2977681fef9113d13d91b62d1ee4
Author: Sammy Gill <sammy.gill at apple.com>
Date: 2023-04-07 (Fri, 07 Apr 2023)
Changed paths:
A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-inline-start-expected.txt
A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-inline-start.html
A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-multi-line-inline-start-expected.txt
A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-multi-line-inline-start.html
A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-inline-start-expected.txt
A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-inline-start.html
A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-multi-line-inline-start-expected.txt
A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-multi-line-inline-start.html
M Source/WebCore/css/ComputedStyleExtractor.cpp
M Source/WebCore/rendering/RenderBlock.cpp
M Source/WebCore/rendering/RenderBox.cpp
M Source/WebCore/rendering/RenderFlexibleBox.cpp
Log Message:
-----------
Trimmed inline-start margins for flex items in horizontal writing mode should be reflected in computed style.
https://bugs.webkit.org/show_bug.cgi?id=253714
rdar://106559056
Reviewed by Alan Baradlay.
Currently, we trim the inline-start margin of a flex item when we call
flexItem.box.setMarginStart inside either RenderFlexibleBox::trimCrossAxisMarginStart
or RenderFlexibleBox::trimMainAxisMarginStart. Instead, we can replace
these calls with setTrimmedMarginForChild with an argument of
MarginTrimType::InlineStart to both trim the margin and set the
appropriate bit in the rare data object. In horizontal writing-mode
this bit should correspond to margin-left. Once layout has finished,
this bit can be used to determine if the box has a trimmed inline-start
margin.
When ComputedStyleExtractor tries to obtain the "margin-left," value, it
will first need to check if this margin has been trimmed. This can be
done by calling box->hasTrimedMargin(PhysicalDirection::Left).
hasTrimmedMargin will first map this PhysicalDirection to a MarginTrimType
and then check if the appropriate rare data bit has been set. If this
returns true, then the box should have a trimmed inline-start (left)
margin and ComputedStyleExtractor should consult the box's m_marginBox
to get the trimmed value.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-inline-start-expected.txt: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-inline-start.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-multi-line-inline-start-expected.txt: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-multi-line-inline-start.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-inline-start-expected.txt: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-inline-start.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-multi-line-inline-start-expected.txt: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-multi-line-inline-start.html: Added.
* Source/WebCore/css/ComputedStyleExtractor.cpp:
(WebCore::rendererContainingBlockHasMarginTrim):
(WebCore::isLayoutDependent):
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
* Source/WebCore/rendering/RenderBlock.cpp:
(WebCore::RenderBlock::setTrimmedMarginForChild):
* Source/WebCore/rendering/RenderBox.cpp:
(WebCore::RenderBox::physicalToFlowRelativeDirectionMapping const):
(WebCore::RenderBox::hasTrimmedMargin const):
* Source/WebCore/rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::trimMainAxisMarginStart):
(WebCore::RenderFlexibleBox::trimCrossAxisMarginStart):
Canonical link: https://commits.webkit.org/262708@main
More information about the webkit-changes
mailing list