Title: [277570] trunk/Source/WebCore
Revision
277570
Author
za...@apple.com
Date
2021-05-16 08:57:35 -0700 (Sun, 16 May 2021)

Log Message

[LFC] Cleanup FormattingContext class
https://bugs.webkit.org/show_bug.cgi?id=225744

Reviewed by Antti Koivisto.

This final patch makes the FormattingContext interface uncluttered.

* WebCore.xcodeproj/project.pbxproj:
* layout/FormattingState.h:
(WebCore::Layout::FormattingState::setIntrinsicWidthConstraints):
(WebCore::Layout::FormattingState::intrinsicWidthConstraints const):
(WebCore::Layout::FormattingState::setIntrinsicWidthConstraintsForBox):
(WebCore::Layout::FormattingState::intrinsicWidthConstraintsForBox const):
* layout/LayoutContext.cpp:
(WebCore::Layout::LayoutContext::layoutFormattingContextSubtree):
* layout/LayoutUnits.h:
(WebCore::Layout::IntrinsicWidthConstraints::expand):
(WebCore::Layout::IntrinsicWidthConstraints::operator+=):
(WebCore::Layout::IntrinsicWidthConstraints::operator-=):
* layout/formattingContexts/FormattingContext.cpp:
* layout/formattingContexts/FormattingContext.h:
(WebCore::Layout::FormattingContext::root const):
(WebCore::Layout::FormattingContext::formattingState const):
(WebCore::Layout::FormattingContext::isBlockFormattingContext const):
(WebCore::Layout::FormattingContext::isInlineFormattingContext const):
(WebCore::Layout::FormattingContext::isTableFormattingContext const):
(WebCore::Layout::FormattingContext::isTableWrapperBlockFormattingContext const):
(WebCore::Layout::FormattingContext::isFlexFormattingContext const):
(WebCore::Layout::FormattingContext::IntrinsicWidthConstraints::expand): Deleted.
(WebCore::Layout::FormattingContext::IntrinsicWidthConstraints::operator+=): Deleted.
(WebCore::Layout::FormattingContext::IntrinsicWidthConstraints::operator-=): Deleted.
* layout/formattingContexts/FormattingGeometry.cpp:
(WebCore::Layout::FormattingGeometry::computedWidthValue):
(WebCore::Layout::FormattingGeometry::shrinkToFitWidth):
(WebCore::Layout::FormattingGeometry::constrainByMinMaxWidth const):
(WebCore::Layout::FormattingGeometry::constraintsForOutOfFlowContent):
(WebCore::Layout::FormattingGeometry::constraintsForInFlowContent const):
* layout/formattingContexts/FormattingGeometry.h:
* layout/formattingContexts/block/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::computedIntrinsicWidthConstraints):
* layout/formattingContexts/block/BlockFormattingGeometry.cpp:
(WebCore::Layout::BlockFormattingGeometry::intrinsicWidthConstraints):
* layout/formattingContexts/block/BlockFormattingGeometry.h:
* layout/formattingContexts/block/BlockMarginCollapse.cpp:
* layout/formattingContexts/flex/FlexFormattingContext.cpp:
(WebCore::Layout::FlexFormattingContext::computedIntrinsicWidthConstraints):
* layout/formattingContexts/flex/FlexFormattingGeometry.cpp:
(WebCore::Layout::FlexFormattingGeometry::intrinsicWidthConstraints):
* layout/formattingContexts/flex/FlexFormattingGeometry.h:
* layout/formattingContexts/inline/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthConstraints):
* layout/formattingContexts/table/TableFormattingContext.cpp:
(WebCore::Layout::TableFormattingContext::computedIntrinsicWidthConstraints):
(WebCore::Layout::TableFormattingContext::computedPreferredWidthForColumns):
* layout/formattingContexts/table/TableFormattingGeometry.cpp:
(WebCore::Layout::TableFormattingGeometry::intrinsicWidthConstraintsForCell):
* layout/formattingContexts/table/TableFormattingGeometry.h:
* layout/formattingContexts/table/TableGrid.h:
(WebCore::Layout::TableGrid::setWidthConstraints):
(WebCore::Layout::TableGrid::widthConstraints const):
(WebCore::Layout::TableGrid::Slot::widthConstraints const):
(WebCore::Layout::TableGrid::Slot::setWidthConstraints):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (277569 => 277570)


--- trunk/Source/WebCore/ChangeLog	2021-05-16 15:21:34 UTC (rev 277569)
+++ trunk/Source/WebCore/ChangeLog	2021-05-16 15:57:35 UTC (rev 277570)
@@ -1,3 +1,68 @@
+2021-05-16  Alan Bujtas  <za...@apple.com>
+
+        [LFC] Cleanup FormattingContext class
+        https://bugs.webkit.org/show_bug.cgi?id=225744
+
+        Reviewed by Antti Koivisto.
+
+        This final patch makes the FormattingContext interface uncluttered.
+
+        * WebCore.xcodeproj/project.pbxproj:
+        * layout/FormattingState.h:
+        (WebCore::Layout::FormattingState::setIntrinsicWidthConstraints):
+        (WebCore::Layout::FormattingState::intrinsicWidthConstraints const):
+        (WebCore::Layout::FormattingState::setIntrinsicWidthConstraintsForBox):
+        (WebCore::Layout::FormattingState::intrinsicWidthConstraintsForBox const):
+        * layout/LayoutContext.cpp:
+        (WebCore::Layout::LayoutContext::layoutFormattingContextSubtree):
+        * layout/LayoutUnits.h:
+        (WebCore::Layout::IntrinsicWidthConstraints::expand):
+        (WebCore::Layout::IntrinsicWidthConstraints::operator+=):
+        (WebCore::Layout::IntrinsicWidthConstraints::operator-=):
+        * layout/formattingContexts/FormattingContext.cpp:
+        * layout/formattingContexts/FormattingContext.h:
+        (WebCore::Layout::FormattingContext::root const):
+        (WebCore::Layout::FormattingContext::formattingState const):
+        (WebCore::Layout::FormattingContext::isBlockFormattingContext const):
+        (WebCore::Layout::FormattingContext::isInlineFormattingContext const):
+        (WebCore::Layout::FormattingContext::isTableFormattingContext const):
+        (WebCore::Layout::FormattingContext::isTableWrapperBlockFormattingContext const):
+        (WebCore::Layout::FormattingContext::isFlexFormattingContext const):
+        (WebCore::Layout::FormattingContext::IntrinsicWidthConstraints::expand): Deleted.
+        (WebCore::Layout::FormattingContext::IntrinsicWidthConstraints::operator+=): Deleted.
+        (WebCore::Layout::FormattingContext::IntrinsicWidthConstraints::operator-=): Deleted.
+        * layout/formattingContexts/FormattingGeometry.cpp:
+        (WebCore::Layout::FormattingGeometry::computedWidthValue):
+        (WebCore::Layout::FormattingGeometry::shrinkToFitWidth):
+        (WebCore::Layout::FormattingGeometry::constrainByMinMaxWidth const):
+        (WebCore::Layout::FormattingGeometry::constraintsForOutOfFlowContent):
+        (WebCore::Layout::FormattingGeometry::constraintsForInFlowContent const):
+        * layout/formattingContexts/FormattingGeometry.h:
+        * layout/formattingContexts/block/BlockFormattingContext.cpp:
+        (WebCore::Layout::BlockFormattingContext::computedIntrinsicWidthConstraints):
+        * layout/formattingContexts/block/BlockFormattingGeometry.cpp:
+        (WebCore::Layout::BlockFormattingGeometry::intrinsicWidthConstraints):
+        * layout/formattingContexts/block/BlockFormattingGeometry.h:
+        * layout/formattingContexts/block/BlockMarginCollapse.cpp:
+        * layout/formattingContexts/flex/FlexFormattingContext.cpp:
+        (WebCore::Layout::FlexFormattingContext::computedIntrinsicWidthConstraints):
+        * layout/formattingContexts/flex/FlexFormattingGeometry.cpp:
+        (WebCore::Layout::FlexFormattingGeometry::intrinsicWidthConstraints):
+        * layout/formattingContexts/flex/FlexFormattingGeometry.h:
+        * layout/formattingContexts/inline/InlineFormattingContext.cpp:
+        (WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthConstraints):
+        * layout/formattingContexts/table/TableFormattingContext.cpp:
+        (WebCore::Layout::TableFormattingContext::computedIntrinsicWidthConstraints):
+        (WebCore::Layout::TableFormattingContext::computedPreferredWidthForColumns):
+        * layout/formattingContexts/table/TableFormattingGeometry.cpp:
+        (WebCore::Layout::TableFormattingGeometry::intrinsicWidthConstraintsForCell):
+        * layout/formattingContexts/table/TableFormattingGeometry.h:
+        * layout/formattingContexts/table/TableGrid.h:
+        (WebCore::Layout::TableGrid::setWidthConstraints):
+        (WebCore::Layout::TableGrid::widthConstraints const):
+        (WebCore::Layout::TableGrid::Slot::widthConstraints const):
+        (WebCore::Layout::TableGrid::Slot::setWidthConstraints):
+
 2021-05-16  Sam Weinig  <wei...@apple.com>
 
         Add support for creating/accessing/setting non-sRGB ImageData via canvas

Modified: trunk/Source/WebCore/layout/FormattingState.h (277569 => 277570)


--- trunk/Source/WebCore/layout/FormattingState.h	2021-05-16 15:21:34 UTC (rev 277569)
+++ trunk/Source/WebCore/layout/FormattingState.h	2021-05-16 15:57:35 UTC (rev 277570)
@@ -48,12 +48,12 @@
     void markNeedsLayout(const Box&, StyleDiff);
     bool needsLayout(const Box&);
 
-    void setIntrinsicWidthConstraintsForBox(const Box&,  FormattingContext::IntrinsicWidthConstraints);
-    Optional<FormattingContext::IntrinsicWidthConstraints> intrinsicWidthConstraintsForBox(const Box&) const;
+    void setIntrinsicWidthConstraintsForBox(const Box&,  IntrinsicWidthConstraints);
+    Optional<IntrinsicWidthConstraints> intrinsicWidthConstraintsForBox(const Box&) const;
     void clearIntrinsicWidthConstraints(const Box&);
 
-    void setIntrinsicWidthConstraints(FormattingContext::IntrinsicWidthConstraints intrinsicWidthConstraints) { m_intrinsicWidthConstraints = intrinsicWidthConstraints; }
-    Optional<FormattingContext::IntrinsicWidthConstraints> intrinsicWidthConstraints() const { return m_intrinsicWidthConstraints; }
+    void setIntrinsicWidthConstraints(IntrinsicWidthConstraints intrinsicWidthConstraints) { m_intrinsicWidthConstraints = intrinsicWidthConstraints; }
+    Optional<IntrinsicWidthConstraints> intrinsicWidthConstraints() const { return m_intrinsicWidthConstraints; }
 
     bool isBlockFormattingState() const { return m_type == Type::Block; }
     bool isInlineFormattingState() const { return m_type == Type::Inline; }
@@ -78,14 +78,14 @@
 private:
     LayoutState& m_layoutState;
     Ref<FloatingState> m_floatingState;
-    HashMap<const Box*, FormattingContext::IntrinsicWidthConstraints> m_intrinsicWidthConstraintsForBoxes;
-    Optional<FormattingContext::IntrinsicWidthConstraints> m_intrinsicWidthConstraints;
+    HashMap<const Box*, IntrinsicWidthConstraints> m_intrinsicWidthConstraintsForBoxes;
+    Optional<IntrinsicWidthConstraints> m_intrinsicWidthConstraints;
     // FIXME: This needs WeakListHashSet
     OutOfFlowBoxList m_outOfFlowBoxes;
     Type m_type;
 };
 
-inline void FormattingState::setIntrinsicWidthConstraintsForBox(const Box& layoutBox, FormattingContext::IntrinsicWidthConstraints intrinsicWidthConstraints)
+inline void FormattingState::setIntrinsicWidthConstraintsForBox(const Box& layoutBox, IntrinsicWidthConstraints intrinsicWidthConstraints)
 {
     ASSERT(!m_intrinsicWidthConstraintsForBoxes.contains(&layoutBox));
     ASSERT(&m_layoutState.formattingStateForBox(layoutBox) == this);
@@ -98,7 +98,7 @@
     m_intrinsicWidthConstraintsForBoxes.remove(&layoutBox);
 }
 
-inline Optional<FormattingContext::IntrinsicWidthConstraints> FormattingState::intrinsicWidthConstraintsForBox(const Box& layoutBox) const
+inline Optional<IntrinsicWidthConstraints> FormattingState::intrinsicWidthConstraintsForBox(const Box& layoutBox) const
 {
     ASSERT(&m_layoutState.formattingStateForBox(layoutBox) == this);
     auto iterator = m_intrinsicWidthConstraintsForBoxes.find(&layoutBox);

Modified: trunk/Source/WebCore/layout/LayoutContext.cpp (277569 => 277570)


--- trunk/Source/WebCore/layout/LayoutContext.cpp	2021-05-16 15:21:34 UTC (rev 277569)
+++ trunk/Source/WebCore/layout/LayoutContext.cpp	2021-05-16 15:57:35 UTC (rev 277570)
@@ -100,7 +100,7 @@
     auto& boxGeometry = layoutState().geometryForBox(formattingContextRoot);
 
     if (formattingContextRoot.hasInFlowOrFloatingChild()) {
-        auto constraintsForInFlowContent = FormattingContext::ConstraintsForInFlowContent { { boxGeometry.contentBoxLeft(), boxGeometry.contentBoxWidth() }, { boxGeometry.contentBoxTop(), { } } };
+        auto constraintsForInFlowContent = ConstraintsForInFlowContent { { boxGeometry.contentBoxLeft(), boxGeometry.contentBoxWidth() }, { boxGeometry.contentBoxTop(), { } } };
         formattingContext->layoutInFlowContent(invalidationState, constraintsForInFlowContent);
     }
 
@@ -108,7 +108,7 @@
     // It constructs an FC for descendant boxes and runs layout on them. The formattingContextRoot is laid out in the FC in which it lives (parent formatting context).
     // It also means that the formattingContextRoot has to have a valid/clean geometry at this point.
     {
-        auto constraints = FormattingContext::ConstraintsForOutOfFlowContent { { boxGeometry.paddingBoxLeft(), boxGeometry.paddingBoxWidth() },
+        auto constraints = ConstraintsForOutOfFlowContent { { boxGeometry.paddingBoxLeft(), boxGeometry.paddingBoxWidth() },
             { boxGeometry.paddingBoxTop(), boxGeometry.paddingBoxHeight() }, boxGeometry.contentBoxWidth() };
         formattingContext->layoutOutOfFlowContent(invalidationState, constraints);
     }

Modified: trunk/Source/WebCore/layout/LayoutUnits.h (277569 => 277570)


--- trunk/Source/WebCore/layout/LayoutUnits.h	2021-05-16 15:21:34 UTC (rev 277569)
+++ trunk/Source/WebCore/layout/LayoutUnits.h	2021-05-16 15:57:35 UTC (rev 277570)
@@ -169,6 +169,29 @@
     Optional<LayoutUnit> logicalHeight;
 };
 
+struct ConstraintsForInFlowContent {
+    HorizontalConstraints horizontal;
+    VerticalConstraints vertical;
+};
+
+struct ConstraintsForOutOfFlowContent {
+    HorizontalConstraints horizontal;
+    VerticalConstraints vertical;
+    // Borders and padding are resolved against the containing block's content box as if the box was an in-flow box.
+    LayoutUnit borderAndPaddingConstraints;
+};
+
+struct IntrinsicWidthConstraints {
+    void expand(LayoutUnit horizontalValue);
+    IntrinsicWidthConstraints& operator+=(const IntrinsicWidthConstraints&);
+    IntrinsicWidthConstraints& operator+=(LayoutUnit);
+    IntrinsicWidthConstraints& operator-=(const IntrinsicWidthConstraints&);
+    IntrinsicWidthConstraints& operator-=(LayoutUnit);
+
+    LayoutUnit minimum;
+    LayoutUnit maximum;
+};
+
 struct OverriddenHorizontalValues {
     Optional<LayoutUnit> width;
     Optional<UsedHorizontalMargin> margin;
@@ -208,6 +231,38 @@
 #endif
 }
 
+inline void IntrinsicWidthConstraints::expand(LayoutUnit horizontalValue)
+{
+    minimum += horizontalValue;
+    maximum += horizontalValue;
+}
+
+inline IntrinsicWidthConstraints& IntrinsicWidthConstraints::operator+=(const IntrinsicWidthConstraints& other)
+{
+    minimum += other.minimum;
+    maximum += other.maximum;
+    return *this;
+}
+
+inline IntrinsicWidthConstraints& IntrinsicWidthConstraints::operator+=(LayoutUnit value)
+{
+    expand(value);
+    return *this;
+}
+
+inline IntrinsicWidthConstraints& IntrinsicWidthConstraints::operator-=(const IntrinsicWidthConstraints& other)
+{
+    minimum -= other.minimum;
+    maximum -= other.maximum;
+    return *this;
+}
+
+inline IntrinsicWidthConstraints& IntrinsicWidthConstraints::operator-=(LayoutUnit value)
+{
+    expand(-value);
+    return *this;
+}
+
 struct SlotPosition {
     SlotPosition() = default;
     SlotPosition(size_t column, size_t row);

Modified: trunk/Source/WebCore/layout/formattingContexts/FormattingContext.h (277569 => 277570)


--- trunk/Source/WebCore/layout/formattingContexts/FormattingContext.h	2021-05-16 15:21:34 UTC (rev 277569)
+++ trunk/Source/WebCore/layout/formattingContexts/FormattingContext.h	2021-05-16 15:57:35 UTC (rev 277570)
@@ -51,41 +51,16 @@
 class FormattingContext {
     WTF_MAKE_ISO_ALLOCATED(FormattingContext);
 public:
-    FormattingContext(const ContainerBox& formattingContextRoot, FormattingState&);
     virtual ~FormattingContext();
 
-    struct ConstraintsForInFlowContent {
-        HorizontalConstraints horizontal;
-        VerticalConstraints vertical;
-    };
     virtual void layoutInFlowContent(InvalidationState&, const ConstraintsForInFlowContent&) = 0;
-
-    struct ConstraintsForOutOfFlowContent {
-        HorizontalConstraints horizontal;
-        VerticalConstraints vertical;
-        // Borders and padding are resolved against the containing block's content box as if the box was an in-flow box.
-        LayoutUnit borderAndPaddingConstraints;
-    };
     void layoutOutOfFlowContent(InvalidationState&, const ConstraintsForOutOfFlowContent&);
-
-    struct IntrinsicWidthConstraints {
-        void expand(LayoutUnit horizontalValue);
-        IntrinsicWidthConstraints& operator+=(const IntrinsicWidthConstraints&);
-        IntrinsicWidthConstraints& operator+=(LayoutUnit);
-        IntrinsicWidthConstraints& operator-=(const IntrinsicWidthConstraints&);
-        IntrinsicWidthConstraints& operator-=(LayoutUnit);
-
-        LayoutUnit minimum;
-        LayoutUnit maximum;
-    };
     virtual IntrinsicWidthConstraints computedIntrinsicWidthConstraints() = 0;
     virtual LayoutUnit usedContentHeight() const = 0;
 
-    bool isBlockFormattingContext() const { return root().establishesBlockFormattingContext(); }
-    bool isInlineFormattingContext() const { return root().establishesInlineFormattingContext(); }
-    bool isTableFormattingContext() const { return root().establishesTableFormattingContext(); }
-    bool isTableWrapperBlockFormattingContext() const { return isBlockFormattingContext() && root().isTableWrapperBox(); }
-    bool isFlexFormattingContext() const { return root().establishesFlexFormattingContext(); }
+    const ContainerBox& root() const { return *m_root; }
+    LayoutState& layoutState() const;
+    const FormattingState& formattingState() const { return m_formattingState; }
 
     enum class EscapeReason {
         TableQuirkNeedsGeometryFromEstablishedFormattingContext,
@@ -97,16 +72,17 @@
         TableNeedsAccessToTableWrapper
     };
     const BoxGeometry& geometryForBox(const Box&, Optional<EscapeReason> = WTF::nullopt) const;
-    const ContainerBox& root() const { return *m_root; }
 
-    LayoutState& layoutState() const;
-    const FormattingState& formattingState() const { return m_formattingState; }
+    bool isBlockFormattingContext() const { return root().establishesBlockFormattingContext(); }
+    bool isInlineFormattingContext() const { return root().establishesInlineFormattingContext(); }
+    bool isTableFormattingContext() const { return root().establishesTableFormattingContext(); }
+    bool isTableWrapperBlockFormattingContext() const { return isBlockFormattingContext() && root().isTableWrapperBox(); }
+    bool isFlexFormattingContext() const { return root().establishesFlexFormattingContext(); }
 
 protected:
-    using LayoutQueue = Vector<const Box*>;
+    FormattingContext(const ContainerBox& formattingContextRoot, FormattingState&);
 
     FormattingState& formattingState() { return m_formattingState; }
-
     void computeBorderAndPadding(const Box&, const HorizontalConstraints&);
 
 #ifndef NDEBUG
@@ -113,6 +89,7 @@
     virtual void validateGeometryConstraintsAfterLayout() const;
 #endif
 
+    using LayoutQueue = Vector<const Box*>;
 private:
     FormattingGeometry geometry() const;
     FormattingQuirks quirks() const;
@@ -125,41 +102,9 @@
     FormattingState& m_formattingState;
 };
 
-inline void FormattingContext::IntrinsicWidthConstraints::expand(LayoutUnit horizontalValue)
-{
-    minimum += horizontalValue;
-    maximum += horizontalValue;
 }
-
-inline FormattingContext::IntrinsicWidthConstraints& FormattingContext::IntrinsicWidthConstraints::operator+=(const IntrinsicWidthConstraints& other)
-{
-    minimum += other.minimum;
-    maximum += other.maximum;
-    return *this;
 }
 
-inline FormattingContext::IntrinsicWidthConstraints& FormattingContext::IntrinsicWidthConstraints::operator+=(LayoutUnit value)
-{
-    expand(value);
-    return *this;
-}
-
-inline FormattingContext::IntrinsicWidthConstraints& FormattingContext::IntrinsicWidthConstraints::operator-=(const IntrinsicWidthConstraints& other)
-{
-    minimum -= other.minimum;
-    maximum -= other.maximum;
-    return *this;
-}
-
-inline FormattingContext::IntrinsicWidthConstraints& FormattingContext::IntrinsicWidthConstraints::operator-=(LayoutUnit value)
-{
-    expand(-value);
-    return *this;
-}
-
-}
-}
-
 #define SPECIALIZE_TYPE_TRAITS_LAYOUT_FORMATTING_CONTEXT(ToValueTypeName, predicate) \
 SPECIALIZE_TYPE_TRAITS_BEGIN(WebCore::Layout::ToValueTypeName) \
     static bool isType(const WebCore::Layout::FormattingContext& formattingContext) { return formattingContext.predicate; } \

Modified: trunk/Source/WebCore/layout/formattingContexts/FormattingGeometry.cpp (277569 => 277570)


--- trunk/Source/WebCore/layout/formattingContexts/FormattingGeometry.cpp	2021-05-16 15:21:34 UTC (rev 277569)
+++ trunk/Source/WebCore/layout/formattingContexts/FormattingGeometry.cpp	2021-05-16 15:57:35 UTC (rev 277570)
@@ -143,7 +143,7 @@
         // FIXME: Consider splitting up computedIntrinsicWidthConstraints so that we could computed the min and max values separately.
         auto intrinsicWidthConstraints = [&] {
             if (!containerBox.hasInFlowOrFloatingChild())
-                return FormattingContext::IntrinsicWidthConstraints { 0_lu, containingBlockWidth };
+                return IntrinsicWidthConstraints { 0_lu, containingBlockWidth };
             ASSERT(containerBox.establishesFormattingContext());
             auto& formattingState = layoutState().ensureFormattingState(containerBox);
             if (auto intrinsicWidthConstraints = formattingState.intrinsicWidthConstraints())
@@ -299,7 +299,7 @@
     // 'padding-left', 'padding-right', 'border-right-width', 'margin-right', and the widths of any relevant scroll bars.
 
     // Then the shrink-to-fit width is: min(max(preferred minimum width, available width), preferred width).
-    auto intrinsicWidthConstraints = FormattingContext::IntrinsicWidthConstraints { };
+    auto intrinsicWidthConstraints = IntrinsicWidthConstraints { };
     auto hasContent = is<ContainerBox>(formattingContextRoot) && downcast<ContainerBox>(formattingContextRoot).hasInFlowOrFloatingChild();
     // The used width of the containment box is determined as if performing a normal layout of the box, except that it is treated as having no content.
     auto shouldIgnoreContent = formattingContextRoot.isSizeContainmentBox();  
@@ -1128,7 +1128,7 @@
     return { computedValue(style.marginLeft(), containingBlockWidth), computedValue(style.marginRight(), containingBlockWidth) };
 }
 
-FormattingContext::IntrinsicWidthConstraints FormattingGeometry::constrainByMinMaxWidth(const Box& layoutBox, FormattingContext::IntrinsicWidthConstraints intrinsicWidth) const
+IntrinsicWidthConstraints FormattingGeometry::constrainByMinMaxWidth(const Box& layoutBox, IntrinsicWidthConstraints intrinsicWidth) const
 {
     auto& style = layoutBox.style();
     auto minWidth = fixedValue(style.logicalMinWidth());
@@ -1150,7 +1150,7 @@
     return intrinsicWidth;
 }
 
-FormattingContext::ConstraintsForOutOfFlowContent FormattingGeometry::constraintsForOutOfFlowContent(const ContainerBox& containerBox)
+ConstraintsForOutOfFlowContent FormattingGeometry::constraintsForOutOfFlowContent(const ContainerBox& containerBox)
 {
     auto& boxGeometry = formattingContext().geometryForBox(containerBox);
     return {
@@ -1159,7 +1159,7 @@
         boxGeometry.contentBoxWidth() };
 }
 
-FormattingContext::ConstraintsForInFlowContent FormattingGeometry::constraintsForInFlowContent(const ContainerBox& containerBox, Optional<FormattingContext::EscapeReason> escapeReason) const
+ConstraintsForInFlowContent FormattingGeometry::constraintsForInFlowContent(const ContainerBox& containerBox, Optional<FormattingContext::EscapeReason> escapeReason) const
 {
     auto& boxGeometry = formattingContext().geometryForBox(containerBox, escapeReason);
     return { { boxGeometry.contentBoxLeft(), boxGeometry.contentBoxWidth() }, { boxGeometry.contentBoxTop(), computedHeight(containerBox) } };

Modified: trunk/Source/WebCore/layout/formattingContexts/FormattingGeometry.h (277569 => 277570)


--- trunk/Source/WebCore/layout/formattingContexts/FormattingGeometry.h	2021-05-16 15:21:34 UTC (rev 277569)
+++ trunk/Source/WebCore/layout/formattingContexts/FormattingGeometry.h	2021-05-16 15:57:35 UTC (rev 277570)
@@ -79,12 +79,12 @@
     Optional<LayoutUnit> computedMinWidth(const Box&, LayoutUnit containingBlockWidth);
     Optional<LayoutUnit> computedMaxWidth(const Box&, LayoutUnit containingBlockWidth);
 
-    FormattingContext::IntrinsicWidthConstraints constrainByMinMaxWidth(const Box&, FormattingContext::IntrinsicWidthConstraints) const;
+    IntrinsicWidthConstraints constrainByMinMaxWidth(const Box&, IntrinsicWidthConstraints) const;
 
     LayoutUnit contentHeightForFormattingContextRoot(const ContainerBox&) const;
 
-    FormattingContext::ConstraintsForOutOfFlowContent constraintsForOutOfFlowContent(const ContainerBox&);
-    FormattingContext::ConstraintsForInFlowContent constraintsForInFlowContent(const ContainerBox&, Optional<FormattingContext::EscapeReason> = WTF::nullopt) const;
+    ConstraintsForOutOfFlowContent constraintsForOutOfFlowContent(const ContainerBox&);
+    ConstraintsForInFlowContent constraintsForInFlowContent(const ContainerBox&, Optional<FormattingContext::EscapeReason> = WTF::nullopt) const;
 
     Optional<LayoutUnit> computedHeight(const Box&, Optional<LayoutUnit> containingBlockHeight = WTF::nullopt) const;
     Optional<LayoutUnit> computedWidth(const Box&, LayoutUnit containingBlockWidth);

Modified: trunk/Source/WebCore/layout/formattingContexts/block/BlockFormattingContext.cpp (277569 => 277570)


--- trunk/Source/WebCore/layout/formattingContexts/block/BlockFormattingContext.cpp	2021-05-16 15:21:34 UTC (rev 277569)
+++ trunk/Source/WebCore/layout/formattingContexts/block/BlockFormattingContext.cpp	2021-05-16 15:57:35 UTC (rev 277570)
@@ -426,7 +426,7 @@
     updateMarginAfterForPreviousSibling(layoutBox);
 }
 
-FormattingContext::IntrinsicWidthConstraints BlockFormattingContext::computedIntrinsicWidthConstraints()
+IntrinsicWidthConstraints BlockFormattingContext::computedIntrinsicWidthConstraints()
 {
     auto& formattingState = this->formattingState();
     ASSERT(!formattingState.intrinsicWidthConstraints());

Modified: trunk/Source/WebCore/layout/formattingContexts/block/BlockFormattingGeometry.cpp (277569 => 277570)


--- trunk/Source/WebCore/layout/formattingContexts/block/BlockFormattingGeometry.cpp	2021-05-16 15:21:34 UTC (rev 277569)
+++ trunk/Source/WebCore/layout/formattingContexts/block/BlockFormattingGeometry.cpp	2021-05-16 15:57:35 UTC (rev 277570)
@@ -332,7 +332,7 @@
     return contentWidthAndMargin;
 }
 
-FormattingContext::IntrinsicWidthConstraints BlockFormattingGeometry::intrinsicWidthConstraints(const Box& layoutBox)
+IntrinsicWidthConstraints BlockFormattingGeometry::intrinsicWidthConstraints(const Box& layoutBox)
 {
     auto fixedMarginBorderAndPadding = [&](auto& layoutBox) {
         auto& style = layoutBox.style();
@@ -344,7 +344,7 @@
             + fixedValue(style.marginEnd()).valueOr(0);
     };
 
-    auto computedIntrinsicWidthConstraints = [&]() -> FormattingContext::IntrinsicWidthConstraints {
+    auto computedIntrinsicWidthConstraints = [&]() -> IntrinsicWidthConstraints {
         auto logicalWidth = layoutBox.style().logicalWidth();
         // Minimum/maximum width can't be depending on the containing block's width.
         auto needsResolvedContainingBlockWidth = logicalWidth.isCalculated() || logicalWidth.isPercent() || logicalWidth.isRelative();
@@ -381,7 +381,7 @@
             return intrinsicWidthConstraints;
         }
 
-        auto intrinsicWidthConstraints = FormattingContext::IntrinsicWidthConstraints { };
+        auto intrinsicWidthConstraints = IntrinsicWidthConstraints { };
         auto& formattingState = layoutState().formattingStateForBox(layoutBox);
         for (auto& child : childrenOfType<Box>(downcast<ContainerBox>(layoutBox))) {
             if (child.isOutOfFlowPositioned() || (child.isFloatAvoider() && !child.hasFloatClear()))

Modified: trunk/Source/WebCore/layout/formattingContexts/block/BlockFormattingGeometry.h (277569 => 277570)


--- trunk/Source/WebCore/layout/formattingContexts/block/BlockFormattingGeometry.h	2021-05-16 15:21:34 UTC (rev 277569)
+++ trunk/Source/WebCore/layout/formattingContexts/block/BlockFormattingGeometry.h	2021-05-16 15:57:35 UTC (rev 277570)
@@ -44,7 +44,7 @@
     LayoutUnit staticVerticalPosition(const Box&, const VerticalConstraints&) const;
     LayoutUnit staticHorizontalPosition(const Box&, const HorizontalConstraints&) const;
 
-    FormattingContext::IntrinsicWidthConstraints intrinsicWidthConstraints(const Box&);
+    IntrinsicWidthConstraints intrinsicWidthConstraints(const Box&);
 
     ContentWidthAndMargin computedContentWidthAndMargin(const Box&, const HorizontalConstraints&, Optional<LayoutUnit> availableWidthFloatAvoider);
 

Modified: trunk/Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp (277569 => 277570)


--- trunk/Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp	2021-05-16 15:21:34 UTC (rev 277569)
+++ trunk/Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp	2021-05-16 15:57:35 UTC (rev 277570)
@@ -59,7 +59,7 @@
     return LayoutUnit { lines.last().bottom() - lines.first().top() };
 }
 
-FormattingContext::IntrinsicWidthConstraints FlexFormattingContext::computedIntrinsicWidthConstraints()
+IntrinsicWidthConstraints FlexFormattingContext::computedIntrinsicWidthConstraints()
 {
     return { };
 }

Modified: trunk/Source/WebCore/layout/formattingContexts/flex/FlexFormattingGeometry.cpp (277569 => 277570)


--- trunk/Source/WebCore/layout/formattingContexts/flex/FlexFormattingGeometry.cpp	2021-05-16 15:21:34 UTC (rev 277569)
+++ trunk/Source/WebCore/layout/formattingContexts/flex/FlexFormattingGeometry.cpp	2021-05-16 15:57:35 UTC (rev 277570)
@@ -40,7 +40,7 @@
 {
 }
 
-FormattingContext::IntrinsicWidthConstraints FlexFormattingGeometry::intrinsicWidthConstraints(const ContainerBox& flexItem)
+IntrinsicWidthConstraints FlexFormattingGeometry::intrinsicWidthConstraints(const ContainerBox& flexItem)
 {
     auto fixedMarginBorderAndPadding = [&](auto& layoutBox) {
         auto& style = layoutBox.style();
@@ -52,7 +52,7 @@
             + fixedValue(style.marginEnd()).valueOr(0);
     };
 
-    auto computedIntrinsicWidthConstraints = [&]() -> FormattingContext::IntrinsicWidthConstraints {
+    auto computedIntrinsicWidthConstraints = [&]() -> IntrinsicWidthConstraints {
         auto logicalWidth = flexItem.style().logicalWidth();
         // Minimum/maximum width can't be depending on the containing block's width.
         auto needsResolvedContainingBlockWidth = logicalWidth.isCalculated() || logicalWidth.isPercent() || logicalWidth.isRelative();

Modified: trunk/Source/WebCore/layout/formattingContexts/flex/FlexFormattingGeometry.h (277569 => 277570)


--- trunk/Source/WebCore/layout/formattingContexts/flex/FlexFormattingGeometry.h	2021-05-16 15:21:34 UTC (rev 277569)
+++ trunk/Source/WebCore/layout/formattingContexts/flex/FlexFormattingGeometry.h	2021-05-16 15:57:35 UTC (rev 277570)
@@ -37,7 +37,7 @@
 public:
     FlexFormattingGeometry(const FlexFormattingContext&);
 
-    FormattingContext::IntrinsicWidthConstraints intrinsicWidthConstraints(const ContainerBox&);
+    IntrinsicWidthConstraints intrinsicWidthConstraints(const ContainerBox&);
 
 private:
     const FlexFormattingContext& formattingContext() const { return downcast<FlexFormattingContext>(FormattingGeometry::formattingContext()); }

Modified: trunk/Source/WebCore/layout/formattingContexts/inline/InlineFormattingContext.cpp (277569 => 277570)


--- trunk/Source/WebCore/layout/formattingContexts/inline/InlineFormattingContext.cpp	2021-05-16 15:21:34 UTC (rev 277569)
+++ trunk/Source/WebCore/layout/formattingContexts/inline/InlineFormattingContext.cpp	2021-05-16 15:57:35 UTC (rev 277570)
@@ -243,7 +243,7 @@
     }
 }
 
-FormattingContext::IntrinsicWidthConstraints InlineFormattingContext::computedIntrinsicWidthConstraints()
+IntrinsicWidthConstraints InlineFormattingContext::computedIntrinsicWidthConstraints()
 {
     auto& layoutState = this->layoutState();
     ASSERT(!formattingState().intrinsicWidthConstraints());

Modified: trunk/Source/WebCore/layout/formattingContexts/table/TableFormattingContext.cpp (277569 => 277570)


--- trunk/Source/WebCore/layout/formattingContexts/table/TableFormattingContext.cpp	2021-05-16 15:21:34 UTC (rev 277569)
+++ trunk/Source/WebCore/layout/formattingContexts/table/TableFormattingContext.cpp	2021-05-16 15:57:35 UTC (rev 277570)
@@ -304,7 +304,7 @@
     cellBoxGeometry.setContentBoxHeight(geometry().cellHeigh(cellBox));
 }
 
-FormattingContext::IntrinsicWidthConstraints TableFormattingContext::computedIntrinsicWidthConstraints()
+IntrinsicWidthConstraints TableFormattingContext::computedIntrinsicWidthConstraints()
 {
     ASSERT(!root().isSizeContainmentBox());
     // Tables have a slighty different concept of shrink to fit. It's really only different with non-auto "width" values, where
@@ -371,7 +371,7 @@
     return tableGrid;
 }
 
-FormattingContext::IntrinsicWidthConstraints TableFormattingContext::computedPreferredWidthForColumns()
+IntrinsicWidthConstraints TableFormattingContext::computedPreferredWidthForColumns()
 {
     auto& formattingState = this->formattingState();
     auto& grid = formattingState.tableGrid();
@@ -413,7 +413,7 @@
         fixedWidthColumns.append(fixedWidth());
     }
 
-    Vector<FormattingContext::IntrinsicWidthConstraints> columnIntrinsicWidths(columnList.size());
+    Vector<IntrinsicWidthConstraints> columnIntrinsicWidths(columnList.size());
     // 3. Collect he min/max width for each column but ignore column spans for now.
     Vector<SlotPosition> spanningCellPositionList;
     size_t numberOfActualColumns = 0;
@@ -429,7 +429,7 @@
                 continue;
             }
             auto columnFixedWidth = fixedWidthColumns[columnIndex];
-            auto widthConstraints = !columnFixedWidth ? slot.widthConstraints() : FormattingContext::IntrinsicWidthConstraints { *columnFixedWidth, *columnFixedWidth };
+            auto widthConstraints = !columnFixedWidth ? slot.widthConstraints() : IntrinsicWidthConstraints { *columnFixedWidth, *columnFixedWidth };
             columnIntrinsicWidths[columnIndex].minimum = std::max(widthConstraints.minimum, columnIntrinsicWidths[columnIndex].minimum);
             columnIntrinsicWidths[columnIndex].maximum = std::max(widthConstraints.maximum, columnIntrinsicWidths[columnIndex].maximum);
         }

Modified: trunk/Source/WebCore/layout/formattingContexts/table/TableFormattingGeometry.cpp (277569 => 277570)


--- trunk/Source/WebCore/layout/formattingContexts/table/TableFormattingGeometry.cpp	2021-05-16 15:21:34 UTC (rev 277569)
+++ trunk/Source/WebCore/layout/formattingContexts/table/TableFormattingGeometry.cpp	2021-05-16 15:57:35 UTC (rev 277570)
@@ -120,15 +120,15 @@
     return columnBox.columnWidth();
 }
 
-FormattingContext::IntrinsicWidthConstraints TableFormattingGeometry::intrinsicWidthConstraintsForCell(const TableGrid::Cell& cell)
+IntrinsicWidthConstraints TableFormattingGeometry::intrinsicWidthConstraintsForCell(const TableGrid::Cell& cell)
 {
     auto& cellBox = cell.box();
     auto& style = cellBox.style();
 
-    auto computedIntrinsicWidthConstraints = [&]() -> FormattingContext::IntrinsicWidthConstraints {
+    auto computedIntrinsicWidthConstraints = [&]() -> IntrinsicWidthConstraints {
         // Even fixed width cells expand to their minimum content width
         // <td style="width: 10px">test_content</td> will size to max(minimum content width, computed width).
-        auto intrinsicWidthConstraints = FormattingContext::IntrinsicWidthConstraints { };
+        auto intrinsicWidthConstraints = IntrinsicWidthConstraints { };
         if (cellBox.hasChild())
             intrinsicWidthConstraints = LayoutContext::createFormattingContext(cellBox, layoutState())->computedIntrinsicWidthConstraints();
         if (auto fixedWidth = fixedValue(style.logicalWidth()))

Modified: trunk/Source/WebCore/layout/formattingContexts/table/TableFormattingGeometry.h (277569 => 277570)


--- trunk/Source/WebCore/layout/formattingContexts/table/TableFormattingGeometry.h	2021-05-16 15:21:34 UTC (rev 277569)
+++ trunk/Source/WebCore/layout/formattingContexts/table/TableFormattingGeometry.h	2021-05-16 15:57:35 UTC (rev 277570)
@@ -39,7 +39,7 @@
     LayoutUnit cellHeigh(const ContainerBox&) const;
     Edges computedCellBorder(const TableGrid::Cell&) const;
     Optional<LayoutUnit> computedColumnWidth(const ContainerBox& columnBox);
-    FormattingContext::IntrinsicWidthConstraints intrinsicWidthConstraintsForCell(const TableGrid::Cell&);
+    IntrinsicWidthConstraints intrinsicWidthConstraintsForCell(const TableGrid::Cell&);
     InlineLayoutUnit usedBaselineForCell(const ContainerBox& cellBox);
 
 private:

Modified: trunk/Source/WebCore/layout/formattingContexts/table/TableGrid.h (277569 => 277570)


--- trunk/Source/WebCore/layout/formattingContexts/table/TableGrid.h	2021-05-16 15:21:34 UTC (rev 277569)
+++ trunk/Source/WebCore/layout/formattingContexts/table/TableGrid.h	2021-05-16 15:57:35 UTC (rev 277570)
@@ -58,8 +58,8 @@
     void setCollapsedBorder(const Edges& collapsedBorder) { m_collapsedBorder = collapsedBorder; }
     Optional<Edges> collapsedBorder() const { return m_collapsedBorder; }
 
-    void setWidthConstraints(FormattingContext::IntrinsicWidthConstraints intrinsicWidthConstraints) { m_intrinsicWidthConstraints = intrinsicWidthConstraints; }
-    Optional<FormattingContext::IntrinsicWidthConstraints> widthConstraints() const { return m_intrinsicWidthConstraints; }
+    void setWidthConstraints(IntrinsicWidthConstraints intrinsicWidthConstraints) { m_intrinsicWidthConstraints = intrinsicWidthConstraints; }
+    Optional<IntrinsicWidthConstraints> widthConstraints() const { return m_intrinsicWidthConstraints; }
 
     bool isEmpty() const { return m_slotMap.isEmpty(); }
     // Column represents a vertical set of slots in the grid. A column has horizontal position and width.
@@ -187,8 +187,8 @@
         const Cell& cell() const { return *m_cell; }
         Cell& cell() { return *m_cell; }
 
-        const FormattingContext::IntrinsicWidthConstraints& widthConstraints() const { return m_widthConstraints; }
-        void setWidthConstraints(const FormattingContext::IntrinsicWidthConstraints& widthConstraints) { m_widthConstraints = widthConstraints; }
+        const IntrinsicWidthConstraints& widthConstraints() const { return m_widthConstraints; }
+        void setWidthConstraints(const IntrinsicWidthConstraints& widthConstraints) { m_widthConstraints = widthConstraints; }
 
         // Initial slot position for a spanning cell.
         // <td></td><td colspan=2></td> [1, 0] slot has column span of 2.
@@ -205,7 +205,7 @@
         WeakPtr<Cell> m_cell;
         bool m_isColumnSpanned { false };
         bool m_isRowSpanned { false };
-        FormattingContext::IntrinsicWidthConstraints m_widthConstraints;
+        IntrinsicWidthConstraints m_widthConstraints;
     };
 
     const Columns& columns() const { return m_columns; }
@@ -231,7 +231,7 @@
 
     LayoutUnit m_horizontalSpacing;
     LayoutUnit m_verticalSpacing;
-    Optional<FormattingContext::IntrinsicWidthConstraints> m_intrinsicWidthConstraints;
+    Optional<IntrinsicWidthConstraints> m_intrinsicWidthConstraints;
     Optional<Edges> m_collapsedBorder;
 };
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to