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;
};