Diff
Modified: trunk/Source/WebCore/ChangeLog (287046 => 287047)
--- trunk/Source/WebCore/ChangeLog 2021-12-14 22:04:50 UTC (rev 287046)
+++ trunk/Source/WebCore/ChangeLog 2021-12-14 22:10:59 UTC (rev 287047)
@@ -1,3 +1,72 @@
+2021-12-14 Alan Bujtas <[email protected]>
+
+ [LFC] Let BoxGeometry have logical values only
+ https://bugs.webkit.org/show_bug.cgi?id=234304
+
+ Reviewed by Antti Koivisto.
+
+ This helps when converting logical (layout) values to physical (display) values.
+
+ * display/css/DisplayFillLayerImageGeometry.cpp:
+ (WebCore::Display::geometryForLayer):
+ * layout/formattingContexts/FormattingContext.cpp:
+ (WebCore::Layout::FormattingContext::validateGeometryConstraintsAfterLayout const):
+ * layout/formattingContexts/FormattingGeometry.cpp:
+ (WebCore::Layout::FormattingGeometry::outOfFlowNonReplacedVerticalGeometry const):
+ (WebCore::Layout::FormattingGeometry::outOfFlowNonReplacedHorizontalGeometry const):
+ (WebCore::Layout::FormattingGeometry::outOfFlowReplacedVerticalGeometry const):
+ (WebCore::Layout::FormattingGeometry::outOfFlowReplacedHorizontalGeometry const):
+ (WebCore::Layout::FormattingGeometry::computedPadding const):
+ * layout/formattingContexts/FormattingQuirks.cpp:
+ (WebCore::Layout::FormattingQuirks::heightValueOfNearestContainingBlockWithFixedHeight const):
+ * layout/formattingContexts/block/BlockFormattingGeometry.cpp:
+ (WebCore::Layout::BlockFormattingGeometry::inFlowNonReplacedContentHeightAndMargin const):
+ (WebCore::Layout::BlockFormattingGeometry::inFlowNonReplacedContentWidthAndMargin const):
+ * layout/formattingContexts/inline/InlineLine.cpp:
+ (WebCore::Layout::Line::initialize):
+ (WebCore::Layout::Line::addBorderAndPaddingEndForInlineBoxDecorationClone):
+ * layout/formattingContexts/inline/InlineLineBox.cpp:
+ (WebCore::Layout::LineBox::logicalBorderBoxForInlineBox const):
+ * layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:
+ (WebCore::Layout::LineBoxBuilder::constructAndAlignInlineLevelBoxes):
+ * layout/formattingContexts/inline/InlineLineBuilder.cpp:
+ (WebCore::Layout::LineBuilder::inlineItemWidth const):
+ * layout/formattingContexts/table/TableFormattingContext.cpp:
+ (WebCore::Layout::TableFormattingContext::setUsedGeometryForCells):
+ * layout/layouttree/LayoutBoxGeometry.cpp:
+ (WebCore::Layout::BoxGeometry::paddingBox const):
+ * layout/layouttree/LayoutBoxGeometry.h:
+ (WebCore::Layout::BoxGeometry::verticalBorder const):
+ (WebCore::Layout::BoxGeometry::horizontalBorder const):
+ (WebCore::Layout::BoxGeometry::borderAndPaddingStart const):
+ (WebCore::Layout::BoxGeometry::borderAndPaddingEnd const):
+ (WebCore::Layout::BoxGeometry::contentBoxTop const):
+ (WebCore::Layout::BoxGeometry::contentBoxLeft const):
+ (WebCore::Layout::BoxGeometry::paddingBoxTop const):
+ (WebCore::Layout::BoxGeometry::paddingBoxLeft const):
+ (WebCore::Layout::BoxGeometry::paddingBoxHeight const):
+ (WebCore::Layout::BoxGeometry::paddingBoxWidth const):
+ (WebCore::Layout::BoxGeometry::borderBoxHeight const):
+ (WebCore::Layout::BoxGeometry::borderBoxWidth const):
+ (WebCore::Layout::BoxGeometry::paddingBefore const):
+ (WebCore::Layout::BoxGeometry::paddingStart const):
+ (WebCore::Layout::BoxGeometry::paddingAfter const):
+ (WebCore::Layout::BoxGeometry::paddingEnd const):
+ (WebCore::Layout::BoxGeometry::verticalPadding const):
+ (WebCore::Layout::BoxGeometry::horizontalPadding const):
+ (WebCore::Layout::BoxGeometry::borderBefore const):
+ (WebCore::Layout::BoxGeometry::borderStart const):
+ (WebCore::Layout::BoxGeometry::borderAfter const):
+ (WebCore::Layout::BoxGeometry::borderEnd const):
+ (WebCore::Layout::BoxGeometry::paddingTop const): Deleted.
+ (WebCore::Layout::BoxGeometry::paddingLeft const): Deleted.
+ (WebCore::Layout::BoxGeometry::paddingBottom const): Deleted.
+ (WebCore::Layout::BoxGeometry::paddingRight const): Deleted.
+ (WebCore::Layout::BoxGeometry::borderTop const): Deleted.
+ (WebCore::Layout::BoxGeometry::borderLeft const): Deleted.
+ (WebCore::Layout::BoxGeometry::borderBottom const): Deleted.
+ (WebCore::Layout::BoxGeometry::borderRight const): Deleted.
+
2021-12-14 Patrick Angle <[email protected]>
Web Inspector: After r286657, anonymous layers are providing an empty string for their grouping text
Modified: trunk/Source/WebCore/display/css/DisplayFillLayerImageGeometry.cpp (287046 => 287047)
--- trunk/Source/WebCore/display/css/DisplayFillLayerImageGeometry.cpp 2021-12-14 22:04:50 UTC (rev 287046)
+++ trunk/Source/WebCore/display/css/DisplayFillLayerImageGeometry.cpp 2021-12-14 22:10:59 UTC (rev 287047)
@@ -263,15 +263,15 @@
LayoutUnit right;
LayoutUnit bottom;
if (fillLayer.origin() != FillBox::Border) {
- left = geometry.borderLeft();
- right = geometry.borderRight();
- top = geometry.borderTop();
- bottom = geometry.borderBottom();
+ left = geometry.borderStart();
+ right = geometry.borderEnd();
+ top = geometry.borderBefore();
+ bottom = geometry.borderAfter();
if (fillLayer.origin() == FillBox::Content) {
- left += geometry.paddingLeft().value_or(0);
- right += geometry.paddingRight().value_or(0);
- top += geometry.paddingTop().value_or(0);
- bottom += geometry.paddingBottom().value_or(0);
+ left += geometry.paddingStart().value_or(0);
+ right += geometry.paddingEnd().value_or(0);
+ top += geometry.paddingBefore().value_or(0);
+ bottom += geometry.paddingAfter().value_or(0);
}
}
Modified: trunk/Source/WebCore/layout/formattingContexts/FormattingContext.cpp (287046 => 287047)
--- trunk/Source/WebCore/layout/formattingContexts/FormattingContext.cpp 2021-12-14 22:04:50 UTC (rev 287046)
+++ trunk/Source/WebCore/layout/formattingContexts/FormattingContext.cpp 2021-12-14 22:10:59 UTC (rev 287047)
@@ -291,8 +291,8 @@
if (layoutBox.isOutOfFlowPositioned() && !layoutBox.isReplacedBox()) {
// top + margin-top + border-top-width + padding-top + height + padding-bottom + border-bottom-width + margin-bottom + bottom = height of containing block
auto containingBlockHeight = containingBlockGeometry.contentBoxHeight();
- ASSERT(BoxGeometry::borderBoxTop(boxGeometry) + boxGeometry.marginBefore() + boxGeometry.borderTop() + boxGeometry.paddingTop().value_or(0) + boxGeometry.contentBoxHeight()
- + boxGeometry.paddingBottom().value_or(0) + boxGeometry.borderBottom() + boxGeometry.marginAfter() == containingBlockHeight);
+ ASSERT(BoxGeometry::borderBoxTop(boxGeometry) + boxGeometry.marginBefore() + boxGeometry.borderBefore() + boxGeometry.paddingBefore().value_or(0) + boxGeometry.contentBoxHeight()
+ + boxGeometry.paddingAfter().value_or(0) + boxGeometry.borderAfter() + boxGeometry.marginAfter() == containingBlockHeight);
}
}
}
Modified: trunk/Source/WebCore/layout/formattingContexts/FormattingGeometry.cpp (287046 => 287047)
--- trunk/Source/WebCore/layout/formattingContexts/FormattingGeometry.cpp 2021-12-14 22:04:50 UTC (rev 287046)
+++ trunk/Source/WebCore/layout/formattingContexts/FormattingGeometry.cpp 2021-12-14 22:10:59 UTC (rev 287047)
@@ -360,10 +360,10 @@
auto height = overriddenVerticalValues.height ? overriddenVerticalValues.height.value() : computedHeight(layoutBox, containingBlockHeight);
auto computedVerticalMargin = FormattingGeometry::computedVerticalMargin(layoutBox, horizontalConstraints);
UsedVerticalMargin::NonCollapsedValues usedVerticalMargin;
- auto paddingTop = boxGeometry.paddingTop().value_or(0);
- auto paddingBottom = boxGeometry.paddingBottom().value_or(0);
- auto borderTop = boxGeometry.borderTop();
- auto borderBottom = boxGeometry.borderBottom();
+ auto paddingTop = boxGeometry.paddingBefore().value_or(0);
+ auto paddingBottom = boxGeometry.paddingAfter().value_or(0);
+ auto borderTop = boxGeometry.borderBefore();
+ auto borderBottom = boxGeometry.borderAfter();
if (!top && !height && !bottom)
top = staticVerticalPositionForOutOfFlowPositioned(layoutBox, verticalConstraints);
@@ -480,10 +480,10 @@
auto width = overriddenHorizontalValues.width ? overriddenHorizontalValues.width : computedWidth(layoutBox, containingBlockWidth);
auto computedHorizontalMargin = FormattingGeometry::computedHorizontalMargin(layoutBox, horizontalConstraints);
UsedHorizontalMargin usedHorizontalMargin;
- auto paddingLeft = boxGeometry.paddingLeft().value_or(0);
- auto paddingRight = boxGeometry.paddingRight().value_or(0);
- auto borderLeft = boxGeometry.borderLeft();
- auto borderRight = boxGeometry.borderRight();
+ auto paddingLeft = boxGeometry.paddingStart().value_or(0);
+ auto paddingRight = boxGeometry.paddingEnd().value_or(0);
+ auto borderLeft = boxGeometry.borderStart();
+ auto borderRight = boxGeometry.borderEnd();
if (!left && !width && !right) {
// If all three of 'left', 'width', and 'right' are 'auto': First set any 'auto' values for 'margin-left' and 'margin-right' to 0.
// Then, if the 'direction' property of the element establishing the static-position containing block is 'ltr' set 'left' to the static
@@ -608,10 +608,10 @@
auto computedVerticalMargin = FormattingGeometry::computedVerticalMargin(replacedBox, horizontalConstraints);
std::optional<LayoutUnit> usedMarginBefore = computedVerticalMargin.before;
std::optional<LayoutUnit> usedMarginAfter = computedVerticalMargin.after;
- auto paddingTop = boxGeometry.paddingTop().value_or(0);
- auto paddingBottom = boxGeometry.paddingBottom().value_or(0);
- auto borderTop = boxGeometry.borderTop();
- auto borderBottom = boxGeometry.borderBottom();
+ auto paddingTop = boxGeometry.paddingBefore().value_or(0);
+ auto paddingBottom = boxGeometry.paddingAfter().value_or(0);
+ auto borderTop = boxGeometry.borderBefore();
+ auto borderBottom = boxGeometry.borderAfter();
if (!top && !bottom) {
// #1
@@ -693,10 +693,10 @@
std::optional<LayoutUnit> usedMarginStart = computedHorizontalMargin.start;
std::optional<LayoutUnit> usedMarginEnd = computedHorizontalMargin.end;
auto width = inlineReplacedContentWidthAndMargin(replacedBox, horizontalConstraints, verticalConstraints, overriddenHorizontalValues).contentWidth;
- auto paddingLeft = boxGeometry.paddingLeft().value_or(0);
- auto paddingRight = boxGeometry.paddingRight().value_or(0);
- auto borderLeft = boxGeometry.borderLeft();
- auto borderRight = boxGeometry.borderRight();
+ auto paddingLeft = boxGeometry.paddingStart().value_or(0);
+ auto paddingRight = boxGeometry.paddingEnd().value_or(0);
+ auto borderLeft = boxGeometry.borderStart();
+ auto borderRight = boxGeometry.borderEnd();
if (!left && !right) {
// #1
@@ -1109,8 +1109,8 @@
auto& style = layoutBox.style();
LOG_WITH_STREAM(FormattingContextLayout, stream << "[Padding] -> layoutBox: " << &layoutBox);
return Edges {
- { valueForLength(style.paddingLeft(), containingBlockWidth), valueForLength(style.paddingRight(), containingBlockWidth) },
- { valueForLength(style.paddingTop(), containingBlockWidth), valueForLength(style.paddingBottom(), containingBlockWidth) }
+ { valueForLength(style.paddingStart(), containingBlockWidth), valueForLength(style.paddingEnd(), containingBlockWidth) },
+ { valueForLength(style.paddingBefore(), containingBlockWidth), valueForLength(style.paddingAfter(), containingBlockWidth) }
};
}
Modified: trunk/Source/WebCore/layout/formattingContexts/FormattingQuirks.cpp (287046 => 287047)
--- trunk/Source/WebCore/layout/formattingContexts/FormattingQuirks.cpp 2021-12-14 22:04:50 UTC (rev 287046)
+++ trunk/Source/WebCore/layout/formattingContexts/FormattingQuirks.cpp 2021-12-14 22:10:59 UTC (rev 287047)
@@ -63,8 +63,8 @@
auto verticalMargin = formattingGeometry.computedVerticalMargin(*containingBlock, horizontalConstraints);
auto& boxGeometry = formattingContext.geometryForBox(*containingBlock, FormattingContext::EscapeReason::FindFixedHeightAncestorQuirk);
- auto verticalPadding = boxGeometry.paddingTop().value_or(0) + boxGeometry.paddingBottom().value_or(0);
- auto verticalBorder = boxGeometry.borderTop() + boxGeometry.borderBottom();
+ auto verticalPadding = boxGeometry.paddingBefore().value_or(0) + boxGeometry.paddingAfter().value_or(0);
+ auto verticalBorder = boxGeometry.borderBefore() + boxGeometry.borderAfter();
bodyAndDocumentVerticalMarginPaddingAndBorder += verticalMargin.before.value_or(0) + verticalMargin.after.value_or(0) + verticalPadding + verticalBorder;
}
Modified: trunk/Source/WebCore/layout/formattingContexts/block/BlockFormattingGeometry.cpp (287046 => 287047)
--- trunk/Source/WebCore/layout/formattingContexts/block/BlockFormattingGeometry.cpp 2021-12-14 22:04:50 UTC (rev 287046)
+++ trunk/Source/WebCore/layout/formattingContexts/block/BlockFormattingGeometry.cpp 2021-12-14 22:10:59 UTC (rev 287047)
@@ -71,7 +71,7 @@
auto& boxGeometry = formattingContext().geometryForBox(layoutBox);
auto computedVerticalMargin = FormattingGeometry::computedVerticalMargin(layoutBox, horizontalConstraints);
auto nonCollapsedMargin = UsedVerticalMargin::NonCollapsedValues { computedVerticalMargin.before.value_or(0), computedVerticalMargin.after.value_or(0) };
- auto borderAndPaddingTop = boxGeometry.borderTop() + boxGeometry.paddingTop().value_or(0);
+ auto borderAndPaddingTop = boxGeometry.borderBefore() + boxGeometry.paddingBefore().value_or(0);
auto height = overriddenVerticalValues.height ? overriddenVerticalValues.height.value() : computedHeight(layoutBox);
if (height)
@@ -153,10 +153,10 @@
auto width = overriddenHorizontalValues.width ? overriddenHorizontalValues.width : computedWidth(layoutBox, containingBlockWidth);
auto computedHorizontalMargin = FormattingGeometry::computedHorizontalMargin(layoutBox, horizontalConstraints);
UsedHorizontalMargin usedHorizontalMargin;
- auto borderLeft = boxGeometry.borderLeft();
- auto borderRight = boxGeometry.borderRight();
- auto paddingLeft = boxGeometry.paddingLeft().value_or(0);
- auto paddingRight = boxGeometry.paddingRight().value_or(0);
+ auto borderLeft = boxGeometry.borderStart();
+ auto borderRight = boxGeometry.borderEnd();
+ auto paddingLeft = boxGeometry.paddingStart().value_or(0);
+ auto paddingRight = boxGeometry.paddingEnd().value_or(0);
// #1
if (width) {
Modified: trunk/Source/WebCore/layout/formattingContexts/inline/InlineLine.cpp (287046 => 287047)
--- trunk/Source/WebCore/layout/formattingContexts/inline/InlineLine.cpp 2021-12-14 22:04:50 UTC (rev 287046)
+++ trunk/Source/WebCore/layout/formattingContexts/inline/InlineLine.cpp 2021-12-14 22:10:59 UTC (rev 287047)
@@ -67,7 +67,7 @@
// https://drafts.csswg.org/css-break/#break-decoration
// clone: Each box fragment is independently wrapped with the border, padding, and margin.
auto& inlineBoxGeometry = formattingContext().geometryForBox(inlineBoxStartItem.layoutBox());
- auto marginBorderAndPaddingStart = inlineBoxGeometry.marginStart() + inlineBoxGeometry.borderLeft() + inlineBoxGeometry.paddingLeft().value_or(0_lu);
+ auto marginBorderAndPaddingStart = inlineBoxGeometry.marginStart() + inlineBoxGeometry.borderStart() + inlineBoxGeometry.paddingStart().value_or(0_lu);
auto runLogicalLeft = lastRunLogicalRight();
m_runs.append({ inlineBoxStartItem, runLogicalLeft, marginBorderAndPaddingStart });
// Do not let negative margin make the content shorter than it already is.
@@ -434,7 +434,7 @@
return { };
// https://drafts.csswg.org/css-break/#break-decoration
auto& inlineBoxGeometry = formattingContext().geometryForBox(inlineBoxStartItem.layoutBox());
- auto borderAndPaddingEnd = inlineBoxGeometry.borderRight() + inlineBoxGeometry.paddingRight().value_or(0_lu);
+ auto borderAndPaddingEnd = inlineBoxGeometry.borderEnd() + inlineBoxGeometry.paddingEnd().value_or(0_lu);
m_inlineBoxListWithClonedDecorationEnd.add(&inlineBoxStartItem.layoutBox(), borderAndPaddingEnd);
m_clonedEndDecorationWidthForInlineBoxRuns += borderAndPaddingEnd;
return borderAndPaddingEnd;
Modified: trunk/Source/WebCore/layout/formattingContexts/inline/InlineLineBox.cpp (287046 => 287047)
--- trunk/Source/WebCore/layout/formattingContexts/inline/InlineLineBox.cpp 2021-12-14 22:04:50 UTC (rev 287046)
+++ trunk/Source/WebCore/layout/formattingContexts/inline/InlineLineBox.cpp 2021-12-14 22:10:59 UTC (rev 287047)
@@ -114,7 +114,7 @@
// This logical rect is as tall as the "text" content is. Let's adjust with vertical border and padding.
auto verticalBorderAndPadding = boxGeometry.verticalBorder() + boxGeometry.verticalPadding().value_or(0_lu);
logicalRect.expandVertically(verticalBorderAndPadding);
- logicalRect.moveVertically(-(boxGeometry.borderTop() + boxGeometry.paddingTop().value_or(0_lu)));
+ logicalRect.moveVertically(-(boxGeometry.borderBefore() + boxGeometry.paddingBefore().value_or(0_lu)));
return logicalRect;
}
Modified: trunk/Source/WebCore/layout/formattingContexts/inline/InlineLineBoxBuilder.cpp (287046 => 287047)
--- trunk/Source/WebCore/layout/formattingContexts/inline/InlineLineBoxBuilder.cpp 2021-12-14 22:04:50 UTC (rev 287046)
+++ trunk/Source/WebCore/layout/formattingContexts/inline/InlineLineBoxBuilder.cpp 2021-12-14 22:10:59 UTC (rev 287047)
@@ -275,9 +275,9 @@
auto& inlineBoxGeometry = formattingContext().geometryForBox(layoutBox);
// Even negative horizontal margin makes the line "contentful".
if (run.isInlineBoxStart())
- return inlineBoxGeometry.marginStart() || inlineBoxGeometry.borderLeft() || inlineBoxGeometry.paddingLeft().value_or(0_lu);
+ return inlineBoxGeometry.marginStart() || inlineBoxGeometry.borderStart() || inlineBoxGeometry.paddingStart().value_or(0_lu);
if (run.isInlineBoxEnd())
- return inlineBoxGeometry.marginEnd() || inlineBoxGeometry.borderRight() || inlineBoxGeometry.paddingRight().value_or(0_lu);
+ return inlineBoxGeometry.marginEnd() || inlineBoxGeometry.borderEnd() || inlineBoxGeometry.paddingEnd().value_or(0_lu);
ASSERT_NOT_REACHED();
return true;
};
@@ -301,7 +301,7 @@
auto& formattingState = layoutState().formattingStateForInlineFormattingContext(downcast<ContainerBox>(layoutBox));
auto& lastLine = formattingState.lines().last();
auto inlineBlockBaseline = lastLine.lineBoxLogicalRect().top() + lastLine.baseline();
- ascent = inlineLevelBoxGeometry.marginBefore() + inlineLevelBoxGeometry.borderTop() + inlineLevelBoxGeometry.paddingTop().value_or(0) + inlineBlockBaseline;
+ ascent = inlineLevelBoxGeometry.marginBefore() + inlineLevelBoxGeometry.borderBefore() + inlineLevelBoxGeometry.paddingBefore().value_or(0) + inlineBlockBaseline;
}
} else if (layoutBox.isReplacedBox())
ascent = downcast<ReplacedBox>(layoutBox).baseline().value_or(marginBoxHeight);
Modified: trunk/Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.cpp (287046 => 287047)
--- trunk/Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.cpp 2021-12-14 22:04:50 UTC (rev 287046)
+++ trunk/Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.cpp 2021-12-14 22:10:59 UTC (rev 287047)
@@ -253,17 +253,17 @@
return boxGeometry.marginBoxWidth();
if (inlineItem.isInlineBoxStart()) {
- auto logicalWidth = boxGeometry.marginStart() + boxGeometry.borderLeft() + boxGeometry.paddingLeft().value_or(0);
+ auto logicalWidth = boxGeometry.marginStart() + boxGeometry.borderStart() + boxGeometry.paddingStart().value_or(0);
#if ENABLE(CSS_BOX_DECORATION_BREAK)
auto& style = m_isFirstLine ? inlineItem.firstLineStyle() : inlineItem.style();
if (style.boxDecorationBreak() == BoxDecorationBreak::Clone)
- logicalWidth += boxGeometry.borderRight() + boxGeometry.paddingRight().value_or(0_lu);
+ logicalWidth += boxGeometry.borderEnd() + boxGeometry.paddingEnd().value_or(0_lu);
#endif
return logicalWidth;
}
if (inlineItem.isInlineBoxEnd())
- return boxGeometry.marginEnd() + boxGeometry.borderRight() + boxGeometry.paddingRight().value_or(0);
+ return boxGeometry.marginEnd() + boxGeometry.borderEnd() + boxGeometry.paddingEnd().value_or(0);
// Non-replaced inline box (e.g. inline-block)
return boxGeometry.marginBoxWidth();
Modified: trunk/Source/WebCore/layout/formattingContexts/table/TableFormattingContext.cpp (287046 => 287047)
--- trunk/Source/WebCore/layout/formattingContexts/table/TableFormattingContext.cpp 2021-12-14 22:04:50 UTC (rev 287046)
+++ trunk/Source/WebCore/layout/formattingContexts/table/TableFormattingContext.cpp 2021-12-14 22:10:59 UTC (rev 287047)
@@ -123,8 +123,8 @@
// FIXME: Find out if it is ok to use the regular padding here to align the content box inside a tall cell or we need to
// use some kind of intrinsic padding similar to RenderTableCell.
- auto paddingTop = cellBoxGeometry.paddingTop().value_or(LayoutUnit { });
- auto paddingBottom = cellBoxGeometry.paddingBottom().value_or(LayoutUnit { });
+ auto paddingTop = cellBoxGeometry.paddingBefore().value_or(LayoutUnit { });
+ auto paddingBottom = cellBoxGeometry.paddingAfter().value_or(LayoutUnit { });
auto intrinsicPaddingTop = LayoutUnit { };
auto intrinsicPaddingBottom = LayoutUnit { };
@@ -138,7 +138,7 @@
case VerticalAlign::Baseline: {
auto rowBaseline = LayoutUnit { rowList[cell->startRow()].baseline() };
auto cellBaseline = LayoutUnit { cell->baseline() };
- intrinsicPaddingTop = std::max(0_lu, rowBaseline - cellBaseline - cellBoxGeometry.borderTop());
+ intrinsicPaddingTop = std::max(0_lu, rowBaseline - cellBaseline - cellBoxGeometry.borderBefore());
intrinsicPaddingBottom = std::max(0_lu, cellLogicalHeight - cellBoxGeometry.verticalMarginBorderAndPadding() - intrinsicPaddingTop - cellBoxGeometry.contentBoxHeight());
break;
}
Modified: trunk/Source/WebCore/layout/layouttree/LayoutBoxGeometry.cpp (287046 => 287047)
--- trunk/Source/WebCore/layout/layouttree/LayoutBoxGeometry.cpp 2021-12-14 22:04:50 UTC (rev 287046)
+++ trunk/Source/WebCore/layout/layouttree/LayoutBoxGeometry.cpp 2021-12-14 22:10:59 UTC (rev 287047)
@@ -88,10 +88,10 @@
auto borderBox = this->borderBox();
Rect paddingBox;
- paddingBox.setTop(borderBox.top() + borderTop());
- paddingBox.setLeft(borderBox.left() + borderLeft());
- paddingBox.setHeight(borderBox.bottom() - verticalSpaceForScrollbar() - borderBottom() - borderTop());
- paddingBox.setWidth(borderBox.width() - borderRight() - horizontalSpaceForScrollbar() - borderLeft());
+ paddingBox.setTop(borderBox.top() + borderBefore());
+ paddingBox.setLeft(borderBox.left() + borderStart());
+ paddingBox.setHeight(borderBox.bottom() - verticalSpaceForScrollbar() - borderAfter() - borderBefore());
+ paddingBox.setWidth(borderBox.width() - borderEnd() - horizontalSpaceForScrollbar() - borderStart());
return paddingBox;
}
Modified: trunk/Source/WebCore/layout/layouttree/LayoutBoxGeometry.h (287046 => 287047)
--- trunk/Source/WebCore/layout/layouttree/LayoutBoxGeometry.h 2021-12-14 22:04:50 UTC (rev 287046)
+++ trunk/Source/WebCore/layout/layouttree/LayoutBoxGeometry.h 2021-12-14 22:10:59 UTC (rev 287047)
@@ -63,39 +63,39 @@
LayoutUnit marginAfter() const;
LayoutUnit marginEnd() const;
- LayoutUnit borderTop() const;
- LayoutUnit borderLeft() const;
- LayoutUnit borderBottom() const;
- LayoutUnit borderRight() const;
- LayoutUnit verticalBorder() const { return borderTop() + borderBottom(); }
- LayoutUnit horizontalBorder() const { return borderLeft() + borderRight(); }
+ LayoutUnit borderBefore() const;
+ LayoutUnit borderAfter() const;
+ LayoutUnit borderStart() const;
+ LayoutUnit borderEnd() const;
+ LayoutUnit verticalBorder() const { return borderBefore() + borderAfter(); }
+ LayoutUnit horizontalBorder() const { return borderStart() + borderEnd(); }
- std::optional<LayoutUnit> paddingTop() const;
- std::optional<LayoutUnit> paddingLeft() const;
- std::optional<LayoutUnit> paddingBottom() const;
- std::optional<LayoutUnit> paddingRight() const;
+ std::optional<LayoutUnit> paddingBefore() const;
+ std::optional<LayoutUnit> paddingAfter() const;
+ std::optional<LayoutUnit> paddingStart() const;
+ std::optional<LayoutUnit> paddingEnd() const;
std::optional<LayoutUnit> verticalPadding() const;
std::optional<LayoutUnit> horizontalPadding() const;
- LayoutUnit borderAndPaddingStart() const { return borderLeft() + paddingLeft().value_or(0); }
- LayoutUnit borderAndPaddingEnd() const { return borderRight() + paddingRight().value_or(0); }
+ LayoutUnit borderAndPaddingStart() const { return borderStart() + paddingStart().value_or(0); }
+ LayoutUnit borderAndPaddingEnd() const { return borderEnd() + paddingEnd().value_or(0); }
- LayoutUnit contentBoxTop() const { return paddingBoxTop() + paddingTop().value_or(0); }
- LayoutUnit contentBoxLeft() const { return paddingBoxLeft() + paddingLeft().value_or(0); }
+ LayoutUnit contentBoxTop() const { return paddingBoxTop() + paddingBefore().value_or(0); }
+ LayoutUnit contentBoxLeft() const { return paddingBoxLeft() + paddingStart().value_or(0); }
LayoutUnit contentBoxBottom() const { return contentBoxTop() + contentBoxHeight(); }
LayoutUnit contentBoxRight() const { return contentBoxLeft() + contentBoxWidth(); }
LayoutUnit contentBoxHeight() const;
LayoutUnit contentBoxWidth() const;
- LayoutUnit paddingBoxTop() const { return borderTop(); }
- LayoutUnit paddingBoxLeft() const { return borderLeft(); }
+ LayoutUnit paddingBoxTop() const { return borderBefore(); }
+ LayoutUnit paddingBoxLeft() const { return borderStart(); }
LayoutUnit paddingBoxBottom() const { return paddingBoxTop() + paddingBoxHeight(); }
LayoutUnit paddingBoxRight() const { return paddingBoxLeft() + paddingBoxWidth(); }
- LayoutUnit paddingBoxHeight() const { return paddingTop().value_or(0) + contentBoxHeight() + paddingBottom().value_or(0); }
- LayoutUnit paddingBoxWidth() const { return paddingLeft().value_or(0) + contentBoxWidth() + paddingRight().value_or(0); }
+ LayoutUnit paddingBoxHeight() const { return paddingBefore().value_or(0) + contentBoxHeight() + paddingAfter().value_or(0); }
+ LayoutUnit paddingBoxWidth() const { return paddingStart().value_or(0) + contentBoxWidth() + paddingEnd().value_or(0); }
- LayoutUnit borderBoxHeight() const { return borderTop() + paddingBoxHeight() + verticalSpaceForScrollbar() + borderBottom(); }
- LayoutUnit borderBoxWidth() const { return borderLeft() + paddingBoxWidth() + horizontalSpaceForScrollbar() + borderRight(); }
+ LayoutUnit borderBoxHeight() const { return borderBefore() + paddingBoxHeight() + verticalSpaceForScrollbar() + borderAfter(); }
+ LayoutUnit borderBoxWidth() const { return borderStart() + paddingBoxWidth() + horizontalSpaceForScrollbar() + borderEnd(); }
LayoutUnit marginBoxHeight() const { return marginBefore() + borderBoxHeight() + marginAfter(); }
LayoutUnit marginBoxWidth() const { return marginStart() + borderBoxWidth() + marginEnd(); }
@@ -342,7 +342,7 @@
return m_horizontalMargin.end;
}
-inline std::optional<LayoutUnit> BoxGeometry::paddingTop() const
+inline std::optional<LayoutUnit> BoxGeometry::paddingBefore() const
{
ASSERT(m_hasValidPadding);
if (!m_padding)
@@ -350,7 +350,7 @@
return m_padding->vertical.top;
}
-inline std::optional<LayoutUnit> BoxGeometry::paddingLeft() const
+inline std::optional<LayoutUnit> BoxGeometry::paddingStart() const
{
ASSERT(m_hasValidPadding);
if (!m_padding)
@@ -358,7 +358,7 @@
return m_padding->horizontal.left;
}
-inline std::optional<LayoutUnit> BoxGeometry::paddingBottom() const
+inline std::optional<LayoutUnit> BoxGeometry::paddingAfter() const
{
ASSERT(m_hasValidPadding);
if (!m_padding)
@@ -366,7 +366,7 @@
return m_padding->vertical.bottom;
}
-inline std::optional<LayoutUnit> BoxGeometry::paddingRight() const
+inline std::optional<LayoutUnit> BoxGeometry::paddingEnd() const
{
ASSERT(m_hasValidPadding);
if (!m_padding)
@@ -376,8 +376,8 @@
inline std::optional<LayoutUnit> BoxGeometry::verticalPadding() const
{
- auto paddingTop = this->paddingTop();
- auto paddingBottom = this->paddingBottom();
+ auto paddingTop = this->paddingBefore();
+ auto paddingBottom = this->paddingAfter();
if (!paddingTop && !paddingBottom)
return { };
return paddingTop.value_or(0) + paddingBottom.value_or(0);
@@ -385,32 +385,32 @@
inline std::optional<LayoutUnit> BoxGeometry::horizontalPadding() const
{
- auto paddingLeft = this->paddingLeft();
- auto paddingRight = this->paddingRight();
+ auto paddingLeft = this->paddingStart();
+ auto paddingRight = this->paddingEnd();
if (!paddingLeft && !paddingRight)
return { };
return paddingLeft.value_or(0) + paddingRight.value_or(0);
}
-inline LayoutUnit BoxGeometry::borderTop() const
+inline LayoutUnit BoxGeometry::borderBefore() const
{
ASSERT(m_hasValidBorder);
return m_border.vertical.top;
}
-inline LayoutUnit BoxGeometry::borderLeft() const
+inline LayoutUnit BoxGeometry::borderStart() const
{
ASSERT(m_hasValidBorder);
return m_border.horizontal.left;
}
-inline LayoutUnit BoxGeometry::borderBottom() const
+inline LayoutUnit BoxGeometry::borderAfter() const
{
ASSERT(m_hasValidBorder);
return m_border.vertical.bottom;
}
-inline LayoutUnit BoxGeometry::borderRight() const
+inline LayoutUnit BoxGeometry::borderEnd() const
{
ASSERT(m_hasValidBorder);
return m_border.horizontal.right;