Title: [287047] trunk/Source/WebCore
Revision
287047
Author
[email protected]
Date
2021-12-14 14:10:59 -0800 (Tue, 14 Dec 2021)

Log Message

[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.

Modified Paths

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;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to