Changeset 268456 in webkit


Ignore:
Timestamp:
Oct 14, 2020 7:00:47 AM (3 years ago)
Author:
Alan Bujtas
Message:

[LFC] Use the term overridden instead of override to indicate priority values
https://bugs.webkit.org/show_bug.cgi?id=217657

Reviewed by Antti Koivisto.

The OverriddenHorizontal/Vertical structures are used to pass in priority values (e.g. use the "max-height" value instead of the computed "height" value) to geometry computation functions.

  • layout/FormattingContext.h:
  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::complicatedCases const):
(WebCore::Layout::FormattingContext::Geometry::floatingNonReplacedWidthAndMargin):
(WebCore::Layout::FormattingContext::Geometry::floatingReplacedHeightAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::floatingReplacedWidthAndMargin):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::floatingHeightAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::floatingWidthAndMargin):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedHeightAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedWidthAndMargin):

  • layout/LayoutUnits.h:
  • layout/blockformatting/BlockFormattingContext.h:
  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedWidthAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowReplacedWidthAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowWidthAndMargin):

  • layout/blockformatting/tablewrapper/TableWrapperBlockFormattingContext.cpp:

(WebCore::Layout::TableWrapperBlockFormattingContext::computeWidthAndMarginForTableBox):
(WebCore::Layout::TableWrapperBlockFormattingContext::computeHeightAndMarginForTableBox):

  • layout/blockformatting/tablewrapper/TableWrapperBlockFormattingContext.h:
  • layout/blockformatting/tablewrapper/TableWrapperBlockFormattingContextQuirks.cpp:

(WebCore::Layout::TableWrapperBlockFormattingContext::Quirks::overriddenTableHeight const):
(WebCore::Layout::TableWrapperBlockFormattingContext::Quirks::overrideTableHeight const): Deleted.

  • layout/inlineformatting/InlineFormattingContext.h:
  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::InlineFormattingContext::Geometry::inlineBlockWidthAndMargin):
(WebCore::Layout::InlineFormattingContext::Geometry::inlineBlockHeightAndMargin const):

Location:
trunk/Source/WebCore
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r268454 r268456  
     12020-10-14  Zalan Bujtas  <zalan@apple.com>
     2
     3        [LFC] Use the term overridden instead of override to indicate priority values
     4        https://bugs.webkit.org/show_bug.cgi?id=217657
     5
     6        Reviewed by Antti Koivisto.
     7
     8        The OverriddenHorizontal/Vertical structures are used to pass in priority values (e.g. use the "max-height" value instead of the computed "height" value) to geometry computation functions.
     9
     10        * layout/FormattingContext.h:
     11        * layout/FormattingContextGeometry.cpp:
     12        (WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedVerticalGeometry const):
     13        (WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGeometry):
     14        (WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedVerticalGeometry const):
     15        (WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedHorizontalGeometry):
     16        (WebCore::Layout::FormattingContext::Geometry::complicatedCases const):
     17        (WebCore::Layout::FormattingContext::Geometry::floatingNonReplacedWidthAndMargin):
     18        (WebCore::Layout::FormattingContext::Geometry::floatingReplacedHeightAndMargin const):
     19        (WebCore::Layout::FormattingContext::Geometry::floatingReplacedWidthAndMargin):
     20        (WebCore::Layout::FormattingContext::Geometry::outOfFlowVerticalGeometry const):
     21        (WebCore::Layout::FormattingContext::Geometry::outOfFlowHorizontalGeometry):
     22        (WebCore::Layout::FormattingContext::Geometry::floatingHeightAndMargin const):
     23        (WebCore::Layout::FormattingContext::Geometry::floatingWidthAndMargin):
     24        (WebCore::Layout::FormattingContext::Geometry::inlineReplacedHeightAndMargin const):
     25        (WebCore::Layout::FormattingContext::Geometry::inlineReplacedWidthAndMargin):
     26        * layout/LayoutUnits.h:
     27        * layout/blockformatting/BlockFormattingContext.h:
     28        * layout/blockformatting/BlockFormattingContextGeometry.cpp:
     29        (WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin):
     30        (WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedWidthAndMargin):
     31        (WebCore::Layout::BlockFormattingContext::Geometry::inFlowReplacedWidthAndMargin):
     32        (WebCore::Layout::BlockFormattingContext::Geometry::inFlowHeightAndMargin):
     33        (WebCore::Layout::BlockFormattingContext::Geometry::inFlowWidthAndMargin):
     34        * layout/blockformatting/tablewrapper/TableWrapperBlockFormattingContext.cpp:
     35        (WebCore::Layout::TableWrapperBlockFormattingContext::computeWidthAndMarginForTableBox):
     36        (WebCore::Layout::TableWrapperBlockFormattingContext::computeHeightAndMarginForTableBox):
     37        * layout/blockformatting/tablewrapper/TableWrapperBlockFormattingContext.h:
     38        * layout/blockformatting/tablewrapper/TableWrapperBlockFormattingContextQuirks.cpp:
     39        (WebCore::Layout::TableWrapperBlockFormattingContext::Quirks::overriddenTableHeight const):
     40        (WebCore::Layout::TableWrapperBlockFormattingContext::Quirks::overrideTableHeight const): Deleted.
     41        * layout/inlineformatting/InlineFormattingContext.h:
     42        * layout/inlineformatting/InlineFormattingContextGeometry.cpp:
     43        (WebCore::Layout::InlineFormattingContext::Geometry::inlineBlockWidthAndMargin):
     44        (WebCore::Layout::InlineFormattingContext::Geometry::inlineBlockHeightAndMargin const):
     45
    1462020-10-14  Andres Gonzalez  <andresg_22@apple.com>
    247
  • trunk/Source/WebCore/layout/FormattingContext.h

    r268122 r268456  
    5353class InvalidationState;
    5454class LayoutState;
    55 struct OverrideHorizontalValues;
    56 struct OverrideVerticalValues;
     55struct OverriddenHorizontalValues;
     56struct OverriddenVerticalValues;
    5757struct VerticalGeometry;
    5858
     
    124124    class Geometry {
    125125    public:
    126         VerticalGeometry outOfFlowVerticalGeometry(const Box&, const HorizontalConstraints&, const VerticalConstraints&, const OverrideVerticalValues&) const;
    127         HorizontalGeometry outOfFlowHorizontalGeometry(const Box&, const HorizontalConstraints&, const VerticalConstraints&, const OverrideHorizontalValues&);
    128 
    129         ContentHeightAndMargin floatingHeightAndMargin(const Box&, const HorizontalConstraints&, const OverrideVerticalValues&) const;
    130         ContentWidthAndMargin floatingWidthAndMargin(const Box&, const HorizontalConstraints&, const OverrideHorizontalValues&);
    131 
    132         ContentHeightAndMargin inlineReplacedHeightAndMargin(const ReplacedBox&, const HorizontalConstraints&, Optional<VerticalConstraints>, const OverrideVerticalValues&) const;
    133         ContentWidthAndMargin inlineReplacedWidthAndMargin(const ReplacedBox&, const HorizontalConstraints&, Optional<VerticalConstraints>, const OverrideHorizontalValues&);
     126        VerticalGeometry outOfFlowVerticalGeometry(const Box&, const HorizontalConstraints&, const VerticalConstraints&, const OverriddenVerticalValues&) const;
     127        HorizontalGeometry outOfFlowHorizontalGeometry(const Box&, const HorizontalConstraints&, const VerticalConstraints&, const OverriddenHorizontalValues&);
     128
     129        ContentHeightAndMargin floatingHeightAndMargin(const Box&, const HorizontalConstraints&, const OverriddenVerticalValues&) const;
     130        ContentWidthAndMargin floatingWidthAndMargin(const Box&, const HorizontalConstraints&, const OverriddenHorizontalValues&);
     131
     132        ContentHeightAndMargin inlineReplacedHeightAndMargin(const ReplacedBox&, const HorizontalConstraints&, Optional<VerticalConstraints>, const OverriddenVerticalValues&) const;
     133        ContentWidthAndMargin inlineReplacedWidthAndMargin(const ReplacedBox&, const HorizontalConstraints&, Optional<VerticalConstraints>, const OverriddenHorizontalValues&);
    134134
    135135        LayoutSize inFlowPositionedPositionOffset(const Box&, const HorizontalConstraints&) const;
    136136
    137         ContentHeightAndMargin complicatedCases(const Box&, const HorizontalConstraints&, const OverrideVerticalValues&) const;
     137        ContentHeightAndMargin complicatedCases(const Box&, const HorizontalConstraints&, const OverriddenVerticalValues&) const;
    138138        LayoutUnit shrinkToFitWidth(const Box&, LayoutUnit availableWidth);
    139139
     
    172172
    173173    private:
    174         VerticalGeometry outOfFlowReplacedVerticalGeometry(const ReplacedBox&, const HorizontalConstraints&, const VerticalConstraints&, const OverrideVerticalValues&) const;
    175         HorizontalGeometry outOfFlowReplacedHorizontalGeometry(const ReplacedBox&, const HorizontalConstraints&, const VerticalConstraints&, const OverrideHorizontalValues&);
    176 
    177         VerticalGeometry outOfFlowNonReplacedVerticalGeometry(const ContainerBox&, const HorizontalConstraints&, const VerticalConstraints&, const OverrideVerticalValues&) const;
    178         HorizontalGeometry outOfFlowNonReplacedHorizontalGeometry(const ContainerBox&, const HorizontalConstraints&, const OverrideHorizontalValues&);
    179 
    180         ContentHeightAndMargin floatingReplacedHeightAndMargin(const ReplacedBox&, const HorizontalConstraints&, const OverrideVerticalValues&) const;
    181         ContentWidthAndMargin floatingReplacedWidthAndMargin(const ReplacedBox&, const HorizontalConstraints&, const OverrideHorizontalValues&);
    182 
    183         ContentWidthAndMargin floatingNonReplacedWidthAndMargin(const Box&, const HorizontalConstraints&, const OverrideHorizontalValues&);
     174        VerticalGeometry outOfFlowReplacedVerticalGeometry(const ReplacedBox&, const HorizontalConstraints&, const VerticalConstraints&, const OverriddenVerticalValues&) const;
     175        HorizontalGeometry outOfFlowReplacedHorizontalGeometry(const ReplacedBox&, const HorizontalConstraints&, const VerticalConstraints&, const OverriddenHorizontalValues&);
     176
     177        VerticalGeometry outOfFlowNonReplacedVerticalGeometry(const ContainerBox&, const HorizontalConstraints&, const VerticalConstraints&, const OverriddenVerticalValues&) const;
     178        HorizontalGeometry outOfFlowNonReplacedHorizontalGeometry(const ContainerBox&, const HorizontalConstraints&, const OverriddenHorizontalValues&);
     179
     180        ContentHeightAndMargin floatingReplacedHeightAndMargin(const ReplacedBox&, const HorizontalConstraints&, const OverriddenVerticalValues&) const;
     181        ContentWidthAndMargin floatingReplacedWidthAndMargin(const ReplacedBox&, const HorizontalConstraints&, const OverriddenHorizontalValues&);
     182
     183        ContentWidthAndMargin floatingNonReplacedWidthAndMargin(const Box&, const HorizontalConstraints&, const OverriddenHorizontalValues&);
    184184
    185185        LayoutUnit staticVerticalPositionForOutOfFlowPositioned(const Box&, const VerticalConstraints&) const;
  • trunk/Source/WebCore/layout/FormattingContextGeometry.cpp

    r268133 r268456  
    353353}
    354354
    355 VerticalGeometry FormattingContext::Geometry::outOfFlowNonReplacedVerticalGeometry(const ContainerBox& layoutBox, const HorizontalConstraints& horizontalConstraints, const VerticalConstraints& verticalConstraints, const OverrideVerticalValues& overrideVerticalValues) const
     355VerticalGeometry FormattingContext::Geometry::outOfFlowNonReplacedVerticalGeometry(const ContainerBox& layoutBox, const HorizontalConstraints& horizontalConstraints, const VerticalConstraints& verticalConstraints, const OverriddenVerticalValues& overriddenVerticalValues) const
    356356{
    357357    ASSERT(layoutBox.isOutOfFlowPositioned() && !layoutBox.isReplacedBox());
     
    390390    auto top = computedValue(style.logicalTop(), containingBlockWidth);
    391391    auto bottom = computedValue(style.logicalBottom(), containingBlockWidth);
    392     auto height = overrideVerticalValues.height ? overrideVerticalValues.height.value() : computedHeight(layoutBox, containingBlockHeight);
     392    auto height = overriddenVerticalValues.height ? overriddenVerticalValues.height.value() : computedHeight(layoutBox, containingBlockHeight);
    393393    auto computedVerticalMargin = Geometry::computedVerticalMargin(layoutBox, horizontalConstraints);
    394394    UsedVerticalMargin::NonCollapsedValues usedVerticalMargin;
     
    472472}
    473473
    474 HorizontalGeometry FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGeometry(const ContainerBox& layoutBox, const HorizontalConstraints& horizontalConstraints, const OverrideHorizontalValues& overrideHorizontalValues)
     474HorizontalGeometry FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGeometry(const ContainerBox& layoutBox, const HorizontalConstraints& horizontalConstraints, const OverriddenHorizontalValues& overriddenHorizontalValues)
    475475{
    476476    ASSERT(layoutBox.isOutOfFlowPositioned() && !layoutBox.isReplacedBox());
     
    510510    auto left = computedValue(style.logicalLeft(), containingBlockWidth);
    511511    auto right = computedValue(style.logicalRight(), containingBlockWidth);
    512     auto width = overrideHorizontalValues.width ? overrideHorizontalValues.width : computedWidth(layoutBox, containingBlockWidth);
     512    auto width = overriddenHorizontalValues.width ? overriddenHorizontalValues.width : computedWidth(layoutBox, containingBlockWidth);
    513513    auto computedHorizontalMargin = Geometry::computedHorizontalMargin(layoutBox, horizontalConstraints);
    514514    UsedHorizontalMargin usedHorizontalMargin;
     
    615615}
    616616
    617 VerticalGeometry FormattingContext::Geometry::outOfFlowReplacedVerticalGeometry(const ReplacedBox& replacedBox, const HorizontalConstraints& horizontalConstraints, const VerticalConstraints& verticalConstraints, const OverrideVerticalValues& overrideVerticalValues) const
     617VerticalGeometry FormattingContext::Geometry::outOfFlowReplacedVerticalGeometry(const ReplacedBox& replacedBox, const HorizontalConstraints& horizontalConstraints, const VerticalConstraints& verticalConstraints, const OverriddenVerticalValues& overriddenVerticalValues) const
    618618{
    619619    ASSERT(replacedBox.isOutOfFlowPositioned());
     
    638638    auto top = computedValue(style.logicalTop(), containingBlockWidth);
    639639    auto bottom = computedValue(style.logicalBottom(), containingBlockWidth);
    640     auto height = inlineReplacedHeightAndMargin(replacedBox, horizontalConstraints, verticalConstraints, overrideVerticalValues).contentHeight;
     640    auto height = inlineReplacedHeightAndMargin(replacedBox, horizontalConstraints, verticalConstraints, overriddenVerticalValues).contentHeight;
    641641    auto computedVerticalMargin = Geometry::computedVerticalMargin(replacedBox, horizontalConstraints);
    642642    Optional<LayoutUnit> usedMarginBefore = computedVerticalMargin.before;
     
    697697}
    698698
    699 HorizontalGeometry FormattingContext::Geometry::outOfFlowReplacedHorizontalGeometry(const ReplacedBox& replacedBox, const HorizontalConstraints& horizontalConstraints, const VerticalConstraints& verticalConstraints, const OverrideHorizontalValues& overrideHorizontalValues)
     699HorizontalGeometry FormattingContext::Geometry::outOfFlowReplacedHorizontalGeometry(const ReplacedBox& replacedBox, const HorizontalConstraints& horizontalConstraints, const VerticalConstraints& verticalConstraints, const OverriddenHorizontalValues& overriddenHorizontalValues)
    700700{
    701701    ASSERT(replacedBox.isOutOfFlowPositioned());
     
    726726    Optional<LayoutUnit> usedMarginStart = computedHorizontalMargin.start;
    727727    Optional<LayoutUnit> usedMarginEnd = computedHorizontalMargin.end;
    728     auto width = inlineReplacedWidthAndMargin(replacedBox, horizontalConstraints, verticalConstraints, overrideHorizontalValues).contentWidth;
     728    auto width = inlineReplacedWidthAndMargin(replacedBox, horizontalConstraints, verticalConstraints, overriddenHorizontalValues).contentWidth;
    729729    auto paddingLeft = boxGeometry.paddingLeft().valueOr(0);
    730730    auto paddingRight = boxGeometry.paddingRight().valueOr(0);
     
    801801}
    802802
    803 ContentHeightAndMargin FormattingContext::Geometry::complicatedCases(const Box& layoutBox, const HorizontalConstraints& horizontalConstraints, const OverrideVerticalValues& overrideVerticalValues) const
     803ContentHeightAndMargin FormattingContext::Geometry::complicatedCases(const Box& layoutBox, const HorizontalConstraints& horizontalConstraints, const OverriddenVerticalValues& overriddenVerticalValues) const
    804804{
    805805    ASSERT(!layoutBox.isReplacedBox());
     
    816816    // 2. If 'height' is 'auto', the height depends on the element's descendants per 10.6.7.
    817817
    818     auto height = overrideVerticalValues.height ? overrideVerticalValues.height.value() : computedHeight(layoutBox);
     818    auto height = overriddenVerticalValues.height ? overriddenVerticalValues.height.value() : computedHeight(layoutBox);
    819819    auto computedVerticalMargin = Geometry::computedVerticalMargin(layoutBox, horizontalConstraints);
    820820    // #1
     
    852852}
    853853
    854 ContentWidthAndMargin FormattingContext::Geometry::floatingNonReplacedWidthAndMargin(const Box& layoutBox, const HorizontalConstraints& horizontalConstraints, const OverrideHorizontalValues& overrideHorizontalValues)
     854ContentWidthAndMargin FormattingContext::Geometry::floatingNonReplacedWidthAndMargin(const Box& layoutBox, const HorizontalConstraints& horizontalConstraints, const OverriddenHorizontalValues& overriddenHorizontalValues)
    855855{
    856856    ASSERT(layoutBox.isFloatingPositioned() && !layoutBox.isReplacedBox());
     
    866866    auto usedHorizontallMargin = UsedHorizontalMargin { computedHorizontalMargin.start.valueOr(0), computedHorizontalMargin.end.valueOr(0) };
    867867    // #2
    868     auto width = overrideHorizontalValues.width ? overrideHorizontalValues.width : computedWidth(layoutBox, horizontalConstraints.logicalWidth);
     868    auto width = overriddenHorizontalValues.width ? overriddenHorizontalValues.width : computedWidth(layoutBox, horizontalConstraints.logicalWidth);
    869869    if (!width)
    870870        width = shrinkToFitWidth(layoutBox, horizontalConstraints.logicalWidth);
     
    874874}
    875875
    876 ContentHeightAndMargin FormattingContext::Geometry::floatingReplacedHeightAndMargin(const ReplacedBox& replacedBox, const HorizontalConstraints& horizontalConstraints, const OverrideVerticalValues& overrideVerticalValues) const
     876ContentHeightAndMargin FormattingContext::Geometry::floatingReplacedHeightAndMargin(const ReplacedBox& replacedBox, const HorizontalConstraints& horizontalConstraints, const OverriddenVerticalValues& overriddenVerticalValues) const
    877877{
    878878    ASSERT(replacedBox.isFloatingPositioned());
     
    881881    // replaced elements in normal flow and floating replaced elements
    882882    LOG_WITH_STREAM(FormattingContextLayout, stream << "[Height][Margin] -> floating replaced -> redirected to inline replaced");
    883     return inlineReplacedHeightAndMargin(replacedBox, horizontalConstraints, { }, overrideVerticalValues);
    884 }
    885 
    886 ContentWidthAndMargin FormattingContext::Geometry::floatingReplacedWidthAndMargin(const ReplacedBox& replacedBox, const HorizontalConstraints& horizontalConstraints, const OverrideHorizontalValues& overrideHorizontalValues)
     883    return inlineReplacedHeightAndMargin(replacedBox, horizontalConstraints, { }, overriddenVerticalValues);
     884}
     885
     886ContentWidthAndMargin FormattingContext::Geometry::floatingReplacedWidthAndMargin(const ReplacedBox& replacedBox, const HorizontalConstraints& horizontalConstraints, const OverriddenHorizontalValues& overriddenHorizontalValues)
    887887{
    888888    ASSERT(replacedBox.isFloatingPositioned());
     
    896896    LOG_WITH_STREAM(FormattingContextLayout, stream << "[Height][Margin] -> floating replaced -> redirected to inline replaced");
    897897    auto usedMargin = UsedHorizontalMargin { computedHorizontalMargin.start.valueOr(0), computedHorizontalMargin.end.valueOr(0) };
    898     return inlineReplacedWidthAndMargin(replacedBox, horizontalConstraints, { }, { overrideHorizontalValues.width, usedMargin });
    899 }
    900 
    901 VerticalGeometry FormattingContext::Geometry::outOfFlowVerticalGeometry(const Box& layoutBox, const HorizontalConstraints& horizontalConstraints, const VerticalConstraints& verticalConstraints, const OverrideVerticalValues& overrideVerticalValues) const
     898    return inlineReplacedWidthAndMargin(replacedBox, horizontalConstraints, { }, { overriddenHorizontalValues.width, usedMargin });
     899}
     900
     901VerticalGeometry FormattingContext::Geometry::outOfFlowVerticalGeometry(const Box& layoutBox, const HorizontalConstraints& horizontalConstraints, const VerticalConstraints& verticalConstraints, const OverriddenVerticalValues& overriddenVerticalValues) const
    902902{
    903903    ASSERT(layoutBox.isOutOfFlowPositioned());
    904904
    905905    if (!layoutBox.isReplacedBox())
    906         return outOfFlowNonReplacedVerticalGeometry(downcast<ContainerBox>(layoutBox), horizontalConstraints, verticalConstraints, overrideVerticalValues);
    907     return outOfFlowReplacedVerticalGeometry(downcast<ReplacedBox>(layoutBox), horizontalConstraints, verticalConstraints, overrideVerticalValues);
    908 }
    909 
    910 HorizontalGeometry FormattingContext::Geometry::outOfFlowHorizontalGeometry(const Box& layoutBox, const HorizontalConstraints& horizontalConstraints, const VerticalConstraints& verticalConstraints, const OverrideHorizontalValues& overrideHorizontalValues)
     906        return outOfFlowNonReplacedVerticalGeometry(downcast<ContainerBox>(layoutBox), horizontalConstraints, verticalConstraints, overriddenVerticalValues);
     907    return outOfFlowReplacedVerticalGeometry(downcast<ReplacedBox>(layoutBox), horizontalConstraints, verticalConstraints, overriddenVerticalValues);
     908}
     909
     910HorizontalGeometry FormattingContext::Geometry::outOfFlowHorizontalGeometry(const Box& layoutBox, const HorizontalConstraints& horizontalConstraints, const VerticalConstraints& verticalConstraints, const OverriddenHorizontalValues& overriddenHorizontalValues)
    911911{
    912912    ASSERT(layoutBox.isOutOfFlowPositioned());
    913913
    914914    if (!layoutBox.isReplacedBox())
    915         return outOfFlowNonReplacedHorizontalGeometry(downcast<ContainerBox>(layoutBox), horizontalConstraints, overrideHorizontalValues);
    916     return outOfFlowReplacedHorizontalGeometry(downcast<ReplacedBox>(layoutBox), horizontalConstraints, verticalConstraints, overrideHorizontalValues);
    917 }
    918 
    919 ContentHeightAndMargin FormattingContext::Geometry::floatingHeightAndMargin(const Box& layoutBox, const HorizontalConstraints& horizontalConstraints, const OverrideVerticalValues& overrideVerticalValues) const
     915        return outOfFlowNonReplacedHorizontalGeometry(downcast<ContainerBox>(layoutBox), horizontalConstraints, overriddenHorizontalValues);
     916    return outOfFlowReplacedHorizontalGeometry(downcast<ReplacedBox>(layoutBox), horizontalConstraints, verticalConstraints, overriddenHorizontalValues);
     917}
     918
     919ContentHeightAndMargin FormattingContext::Geometry::floatingHeightAndMargin(const Box& layoutBox, const HorizontalConstraints& horizontalConstraints, const OverriddenVerticalValues& overriddenVerticalValues) const
    920920{
    921921    ASSERT(layoutBox.isFloatingPositioned());
    922922
    923923    if (!layoutBox.isReplacedBox())
    924         return complicatedCases(layoutBox, horizontalConstraints, overrideVerticalValues);
    925     return floatingReplacedHeightAndMargin(downcast<ReplacedBox>(layoutBox), horizontalConstraints, overrideVerticalValues);
    926 }
    927 
    928 ContentWidthAndMargin FormattingContext::Geometry::floatingWidthAndMargin(const Box& layoutBox, const HorizontalConstraints& horizontalConstraints, const OverrideHorizontalValues& overrideHorizontalValues)
     924        return complicatedCases(layoutBox, horizontalConstraints, overriddenVerticalValues);
     925    return floatingReplacedHeightAndMargin(downcast<ReplacedBox>(layoutBox), horizontalConstraints, overriddenVerticalValues);
     926}
     927
     928ContentWidthAndMargin FormattingContext::Geometry::floatingWidthAndMargin(const Box& layoutBox, const HorizontalConstraints& horizontalConstraints, const OverriddenHorizontalValues& overriddenHorizontalValues)
    929929{
    930930    ASSERT(layoutBox.isFloatingPositioned());
    931931
    932932    if (!layoutBox.isReplacedBox())
    933         return floatingNonReplacedWidthAndMargin(layoutBox, horizontalConstraints, overrideHorizontalValues);
    934     return floatingReplacedWidthAndMargin(downcast<ReplacedBox>(layoutBox), horizontalConstraints, overrideHorizontalValues);
    935 }
    936 
    937 ContentHeightAndMargin FormattingContext::Geometry::inlineReplacedHeightAndMargin(const ReplacedBox& replacedBox, const HorizontalConstraints& horizontalConstraints, Optional<VerticalConstraints> verticalConstraints, const OverrideVerticalValues& overrideVerticalValues) const
     933        return floatingNonReplacedWidthAndMargin(layoutBox, horizontalConstraints, overriddenHorizontalValues);
     934    return floatingReplacedWidthAndMargin(downcast<ReplacedBox>(layoutBox), horizontalConstraints, overriddenHorizontalValues);
     935}
     936
     937ContentHeightAndMargin FormattingContext::Geometry::inlineReplacedHeightAndMargin(const ReplacedBox& replacedBox, const HorizontalConstraints& horizontalConstraints, Optional<VerticalConstraints> verticalConstraints, const OverriddenVerticalValues& overriddenVerticalValues) const
    938938{
    939939    // 10.6.2 Inline replaced elements, block-level replaced elements in normal flow, 'inline-block' replaced elements in normal flow and floating replaced elements
     
    953953    auto& style = replacedBox.style();
    954954
    955     auto height = overrideVerticalValues.height ? overrideVerticalValues.height.value() : computedHeight(replacedBox, verticalConstraints ? verticalConstraints->logicalHeight : WTF::nullopt);
    956     auto heightIsAuto = !overrideVerticalValues.height && isHeightAuto(replacedBox);
     955    auto height = overriddenVerticalValues.height ? overriddenVerticalValues.height.value() : computedHeight(replacedBox, verticalConstraints ? verticalConstraints->logicalHeight : WTF::nullopt);
     956    auto heightIsAuto = !overriddenVerticalValues.height && isHeightAuto(replacedBox);
    957957    auto widthIsAuto = style.logicalWidth().isAuto();
    958958
     
    978978}
    979979
    980 ContentWidthAndMargin FormattingContext::Geometry::inlineReplacedWidthAndMargin(const ReplacedBox& replacedBox, const HorizontalConstraints& horizontalConstraints, Optional<VerticalConstraints> verticalConstraints, const OverrideHorizontalValues& overrideHorizontalValues)
     980ContentWidthAndMargin FormattingContext::Geometry::inlineReplacedWidthAndMargin(const ReplacedBox& replacedBox, const HorizontalConstraints& horizontalConstraints, Optional<VerticalConstraints> verticalConstraints, const OverriddenHorizontalValues& overriddenHorizontalValues)
    981981{
    982982    // 10.3.2 Inline, replaced elements
     
    10021002
    10031003    auto usedMarginStart = [&] {
    1004         if (overrideHorizontalValues.margin)
    1005             return overrideHorizontalValues.margin->start;
     1004        if (overriddenHorizontalValues.margin)
     1005            return overriddenHorizontalValues.margin->start;
    10061006        return computedHorizontalMargin.start.valueOr(0_lu);
    10071007    };
    10081008
    10091009    auto usedMarginEnd = [&] {
    1010         if (overrideHorizontalValues.margin)
    1011             return overrideHorizontalValues.margin->end;
     1010        if (overriddenHorizontalValues.margin)
     1011            return overriddenHorizontalValues.margin->end;
    10121012        return computedHorizontalMargin.end.valueOr(0_lu);
    10131013    };
    10141014
    1015     auto width = overrideHorizontalValues.width ? overrideHorizontalValues.width : computedWidth(replacedBox, horizontalConstraints.logicalWidth);
     1015    auto width = overriddenHorizontalValues.width ? overriddenHorizontalValues.width : computedWidth(replacedBox, horizontalConstraints.logicalWidth);
    10161016    auto heightIsAuto = isHeightAuto(replacedBox);
    10171017    auto height = computedHeight(replacedBox, verticalConstraints ? verticalConstraints->logicalHeight : WTF::nullopt);
  • trunk/Source/WebCore/layout/LayoutUnits.h

    r264488 r268456  
    170170};
    171171
    172 struct OverrideHorizontalValues {
     172struct OverriddenHorizontalValues {
    173173    Optional<LayoutUnit> width;
    174174    Optional<UsedHorizontalMargin> margin;
    175175};
    176176
    177 struct OverrideVerticalValues {
     177struct OverriddenVerticalValues {
    178178    // Consider collapsing it.
    179179    Optional<LayoutUnit> height;
  • trunk/Source/WebCore/layout/blockformatting/BlockFormattingContext.h

    r263946 r268456  
    7777        Geometry(const BlockFormattingContext&);
    7878
    79         ContentHeightAndMargin inFlowHeightAndMargin(const Box&, const HorizontalConstraints&, const OverrideVerticalValues&);
    80         ContentWidthAndMargin inFlowWidthAndMargin(const Box&, const HorizontalConstraints&, const OverrideHorizontalValues&);
     79        ContentHeightAndMargin inFlowHeightAndMargin(const Box&, const HorizontalConstraints&, const OverriddenVerticalValues&);
     80        ContentWidthAndMargin inFlowWidthAndMargin(const Box&, const HorizontalConstraints&, const OverriddenHorizontalValues&);
    8181
    8282        Point staticPosition(const Box&, const HorizontalConstraints&, const VerticalConstraints&) const;
     
    8989
    9090    private:
    91         ContentHeightAndMargin inFlowNonReplacedHeightAndMargin(const Box&, const HorizontalConstraints&, const OverrideVerticalValues&);
    92         ContentWidthAndMargin inFlowNonReplacedWidthAndMargin(const Box&, const HorizontalConstraints&, const OverrideHorizontalValues&);
    93         ContentWidthAndMargin inFlowReplacedWidthAndMargin(const ReplacedBox&, const HorizontalConstraints&, const OverrideHorizontalValues&);
     91        ContentHeightAndMargin inFlowNonReplacedHeightAndMargin(const Box&, const HorizontalConstraints&, const OverriddenVerticalValues&);
     92        ContentWidthAndMargin inFlowNonReplacedWidthAndMargin(const Box&, const HorizontalConstraints&, const OverriddenHorizontalValues&);
     93        ContentWidthAndMargin inFlowReplacedWidthAndMargin(const ReplacedBox&, const HorizontalConstraints&, const OverriddenHorizontalValues&);
    9494
    9595        const BlockFormattingContext& formattingContext() const { return downcast<BlockFormattingContext>(FormattingContext::Geometry::formattingContext()); }
  • trunk/Source/WebCore/layout/blockformatting/BlockFormattingContextGeometry.cpp

    r268133 r268456  
    4343namespace Layout {
    4444
    45 ContentHeightAndMargin BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin(const Box& layoutBox, const HorizontalConstraints& horizontalConstraints, const OverrideVerticalValues& overrideVerticalValues)
     45ContentHeightAndMargin BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin(const Box& layoutBox, const HorizontalConstraints& horizontalConstraints, const OverriddenVerticalValues& overriddenVerticalValues)
    4646{
    4747    ASSERT(layoutBox.isInFlow() && !layoutBox.isReplacedBox());
    4848    ASSERT(layoutBox.isOverflowVisible());
    4949
    50     auto compute = [&](const auto& overrideVerticalValues) -> ContentHeightAndMargin {
     50    auto compute = [&](const auto& overriddenVerticalValues) -> ContentHeightAndMargin {
    5151
    5252        // 10.6.3 Block-level non-replaced elements in normal flow when 'overflow' computes to 'visible'
     
    6767        auto nonCollapsedMargin = UsedVerticalMargin::NonCollapsedValues { computedVerticalMargin.before.valueOr(0), computedVerticalMargin.after.valueOr(0) };
    6868        auto borderAndPaddingTop = boxGeometry.borderTop() + boxGeometry.paddingTop().valueOr(0);
    69         auto height = overrideVerticalValues.height ? overrideVerticalValues.height.value() : computedHeight(layoutBox);
     69        auto height = overriddenVerticalValues.height ? overriddenVerticalValues.height.value() : computedHeight(layoutBox);
    7070
    7171        if (height)
     
    107107
    108108    // 10.6.7 'Auto' heights for block-level formatting context boxes.
    109     auto isAutoHeight = !overrideVerticalValues.height && !computedHeight(layoutBox);
     109    auto isAutoHeight = !overriddenVerticalValues.height && !computedHeight(layoutBox);
    110110    if (isAutoHeight && (layoutBox.establishesFormattingContext() && !layoutBox.establishesInlineFormattingContext()))
    111         return compute( OverrideVerticalValues { contentHeightForFormattingContextRoot(downcast<ContainerBox>(layoutBox)) });
    112     return compute(overrideVerticalValues);
    113 }
    114 
    115 ContentWidthAndMargin BlockFormattingContext::Geometry::inFlowNonReplacedWidthAndMargin(const Box& layoutBox, const HorizontalConstraints& horizontalConstraints, const OverrideHorizontalValues& overrideHorizontalValues)
     111        return compute( OverriddenVerticalValues { contentHeightForFormattingContextRoot(downcast<ContainerBox>(layoutBox)) });
     112    return compute(overriddenVerticalValues);
     113}
     114
     115ContentWidthAndMargin BlockFormattingContext::Geometry::inFlowNonReplacedWidthAndMargin(const Box& layoutBox, const HorizontalConstraints& horizontalConstraints, const OverriddenHorizontalValues& overriddenHorizontalValues)
    116116{
    117117    ASSERT(layoutBox.isInFlow());
     
    144144        auto& boxGeometry = formattingContext().geometryForBox(layoutBox);
    145145
    146         auto width = overrideHorizontalValues.width ? overrideHorizontalValues.width : computedWidth(layoutBox, containingBlockWidth);
     146        auto width = overriddenHorizontalValues.width ? overriddenHorizontalValues.width : computedWidth(layoutBox, containingBlockWidth);
    147147        auto computedHorizontalMargin = Geometry::computedHorizontalMargin(layoutBox, horizontalConstraints);
    148148        UsedHorizontalMargin usedHorizontalMargin;
     
    213213}
    214214
    215 ContentWidthAndMargin BlockFormattingContext::Geometry::inFlowReplacedWidthAndMargin(const ReplacedBox& replacedBox, const HorizontalConstraints& horizontalConstraints, const OverrideHorizontalValues& overrideHorizontalValues)
     215ContentWidthAndMargin BlockFormattingContext::Geometry::inFlowReplacedWidthAndMargin(const ReplacedBox& replacedBox, const HorizontalConstraints& horizontalConstraints, const OverriddenHorizontalValues& overriddenHorizontalValues)
    216216{
    217217    ASSERT(replacedBox.isInFlow());
     
    223223
    224224    // #1
    225     auto usedWidth = inlineReplacedWidthAndMargin(replacedBox, horizontalConstraints, { }, overrideHorizontalValues).contentWidth;
     225    auto usedWidth = inlineReplacedWidthAndMargin(replacedBox, horizontalConstraints, { }, overriddenHorizontalValues).contentWidth;
    226226    // #2
    227     auto nonReplacedWidthAndMargin = inFlowNonReplacedWidthAndMargin(replacedBox, horizontalConstraints, OverrideHorizontalValues { usedWidth, overrideHorizontalValues.margin });
     227    auto nonReplacedWidthAndMargin = inFlowNonReplacedWidthAndMargin(replacedBox, horizontalConstraints, OverriddenHorizontalValues { usedWidth, overriddenHorizontalValues.margin });
    228228
    229229    LOG_WITH_STREAM(FormattingContextLayout, stream << "[Width][Margin] -> inflow replaced -> width(" << usedWidth  << "px) margin(" << nonReplacedWidthAndMargin.usedMargin.start << "px, " << nonReplacedWidthAndMargin.usedMargin.end << "px) -> layoutBox(" << &replacedBox << ")");
     
    256256}
    257257
    258 ContentHeightAndMargin BlockFormattingContext::Geometry::inFlowHeightAndMargin(const Box& layoutBox, const HorizontalConstraints& horizontalConstraints, const OverrideVerticalValues& overrideVerticalValues)
     258ContentHeightAndMargin BlockFormattingContext::Geometry::inFlowHeightAndMargin(const Box& layoutBox, const HorizontalConstraints& horizontalConstraints, const OverriddenVerticalValues& overriddenVerticalValues)
    259259{
    260260    ASSERT(layoutBox.isInFlow());
     
    263263    // replaced elements in normal flow and floating replaced elements
    264264    if (layoutBox.isReplacedBox())
    265         return inlineReplacedHeightAndMargin(downcast<ReplacedBox>(layoutBox), horizontalConstraints, { }, overrideVerticalValues);
     265        return inlineReplacedHeightAndMargin(downcast<ReplacedBox>(layoutBox), horizontalConstraints, { }, overriddenVerticalValues);
    266266
    267267    ContentHeightAndMargin contentHeightAndMargin;
    268268    if (layoutBox.isOverflowVisible() && !layoutBox.isDocumentBox()) {
    269269        // TODO: Figure out the case for the document element. Let's just complicated-case it for now.
    270         contentHeightAndMargin = inFlowNonReplacedHeightAndMargin(layoutBox, horizontalConstraints, overrideVerticalValues);
     270        contentHeightAndMargin = inFlowNonReplacedHeightAndMargin(layoutBox, horizontalConstraints, overriddenVerticalValues);
    271271    } else {
    272272        // 10.6.6 Complicated cases
    273273        // Block-level, non-replaced elements in normal flow when 'overflow' does not compute to 'visible' (except if the 'overflow' property's value has been propagated to the viewport).
    274         contentHeightAndMargin = complicatedCases(layoutBox, horizontalConstraints, overrideVerticalValues);
     274        contentHeightAndMargin = complicatedCases(layoutBox, horizontalConstraints, overriddenVerticalValues);
    275275    }
    276276
     
    285285}
    286286
    287 ContentWidthAndMargin BlockFormattingContext::Geometry::inFlowWidthAndMargin(const Box& layoutBox, const HorizontalConstraints& horizontalConstraints, const OverrideHorizontalValues& overrideHorizontalValues)
     287ContentWidthAndMargin BlockFormattingContext::Geometry::inFlowWidthAndMargin(const Box& layoutBox, const HorizontalConstraints& horizontalConstraints, const OverriddenHorizontalValues& overriddenHorizontalValues)
    288288{
    289289    ASSERT(layoutBox.isInFlow());
    290290
    291291    if (!layoutBox.isReplacedBox())
    292         return inFlowNonReplacedWidthAndMargin(layoutBox, horizontalConstraints, overrideHorizontalValues);
    293     return inFlowReplacedWidthAndMargin(downcast<ReplacedBox>(layoutBox), horizontalConstraints, overrideHorizontalValues);
     292        return inFlowNonReplacedWidthAndMargin(layoutBox, horizontalConstraints, overriddenHorizontalValues);
     293    return inFlowReplacedWidthAndMargin(downcast<ReplacedBox>(layoutBox), horizontalConstraints, overriddenHorizontalValues);
    294294}
    295295
  • trunk/Source/WebCore/layout/blockformatting/tablewrapper/TableWrapperBlockFormattingContext.cpp

    r267158 r268456  
    206206    }
    207207
    208     auto contentWidthAndMargin = geometry.inFlowWidthAndMargin(tableBox, horizontalConstraints, OverrideHorizontalValues { usedWidth, { } });
     208    auto contentWidthAndMargin = geometry.inFlowWidthAndMargin(tableBox, horizontalConstraints, OverriddenHorizontalValues { usedWidth, { } });
    209209
    210210    auto& boxGeometry = formattingState().boxGeometry(tableBox);
     
    218218    // Table is a special BFC content. Its height is mainly driven by the content. Computed height, min-height and max-height are all
    219219    // already been taken into account during the TFC layout.
    220     auto heightAndMargin = geometry().inFlowHeightAndMargin(tableBox, constraints.horizontal, { quirks().overrideTableHeight(tableBox) });
     220    auto heightAndMargin = geometry().inFlowHeightAndMargin(tableBox, constraints.horizontal, { quirks().overriddenTableHeight(tableBox) });
    221221
    222222    auto marginCollapse = this->marginCollapse();
  • trunk/Source/WebCore/layout/blockformatting/tablewrapper/TableWrapperBlockFormattingContext.h

    r263327 r268456  
    5050        Quirks(const TableWrapperBlockFormattingContext&);
    5151
    52         Optional<LayoutUnit> overrideTableHeight(const ContainerBox& tableBox) const;
     52        Optional<LayoutUnit> overriddenTableHeight(const ContainerBox& tableBox) const;
    5353    };
    5454    TableWrapperBlockFormattingContext::Quirks quirks() const { return Quirks(*this); }
  • trunk/Source/WebCore/layout/blockformatting/tablewrapper/TableWrapperBlockFormattingContextQuirks.cpp

    r263318 r268456  
    3434namespace Layout {
    3535
    36 Optional<LayoutUnit> TableWrapperBlockFormattingContext::Quirks::overrideTableHeight(const ContainerBox& tableBox) const
     36Optional<LayoutUnit> TableWrapperBlockFormattingContext::Quirks::overriddenTableHeight(const ContainerBox& tableBox) const
    3737{
    3838    if (layoutState().inQuirksMode()) {
  • trunk/Source/WebCore/layout/inlineformatting/InlineFormattingContext.h

    r268122 r268456  
    7373        InlineLayoutUnit logicalTopForNextLine(const LineBuilder::LineContent&, InlineLayoutUnit previousLineLogicalBottom, const FloatingContext&) const;
    7474
    75         ContentHeightAndMargin inlineBlockHeightAndMargin(const Box&, const HorizontalConstraints&, const OverrideVerticalValues&) const;
    76         ContentWidthAndMargin inlineBlockWidthAndMargin(const Box&, const HorizontalConstraints&, const OverrideHorizontalValues&);
     75        ContentHeightAndMargin inlineBlockHeightAndMargin(const Box&, const HorizontalConstraints&, const OverriddenVerticalValues&) const;
     76        ContentWidthAndMargin inlineBlockWidthAndMargin(const Box&, const HorizontalConstraints&, const OverriddenHorizontalValues&);
    7777
    7878    private:
  • trunk/Source/WebCore/layout/inlineformatting/InlineFormattingContextGeometry.cpp

    r268399 r268456  
    459459}
    460460
    461 ContentWidthAndMargin InlineFormattingContext::Geometry::inlineBlockWidthAndMargin(const Box& formattingContextRoot, const HorizontalConstraints& horizontalConstraints, const OverrideHorizontalValues& overrideHorizontalValues)
     461ContentWidthAndMargin InlineFormattingContext::Geometry::inlineBlockWidthAndMargin(const Box& formattingContextRoot, const HorizontalConstraints& horizontalConstraints, const OverriddenHorizontalValues& overriddenHorizontalValues)
    462462{
    463463    ASSERT(formattingContextRoot.isInFlow());
     
    467467    // Exactly as inline replaced elements.
    468468    if (formattingContextRoot.isReplacedBox())
    469         return inlineReplacedWidthAndMargin(downcast<ReplacedBox>(formattingContextRoot), horizontalConstraints, { }, overrideHorizontalValues);
     469        return inlineReplacedWidthAndMargin(downcast<ReplacedBox>(formattingContextRoot), horizontalConstraints, { }, overriddenHorizontalValues);
    470470
    471471    // 10.3.9 'Inline-block', non-replaced elements in normal flow
     
    484484}
    485485
    486 ContentHeightAndMargin InlineFormattingContext::Geometry::inlineBlockHeightAndMargin(const Box& layoutBox, const HorizontalConstraints& horizontalConstraints, const OverrideVerticalValues& overrideVerticalValues) const
     486ContentHeightAndMargin InlineFormattingContext::Geometry::inlineBlockHeightAndMargin(const Box& layoutBox, const HorizontalConstraints& horizontalConstraints, const OverriddenVerticalValues& overriddenVerticalValues) const
    487487{
    488488    ASSERT(layoutBox.isInFlow());
     
    490490    // 10.6.2 Inline replaced elements, block-level replaced elements in normal flow, 'inline-block' replaced elements in normal flow and floating replaced elements
    491491    if (layoutBox.isReplacedBox())
    492         return inlineReplacedHeightAndMargin(downcast<ReplacedBox>(layoutBox), horizontalConstraints, { }, overrideVerticalValues);
     492        return inlineReplacedHeightAndMargin(downcast<ReplacedBox>(layoutBox), horizontalConstraints, { }, overriddenVerticalValues);
    493493
    494494    // 10.6.6 Complicated cases
    495495    // - 'Inline-block', non-replaced elements.
    496     return complicatedCases(layoutBox, horizontalConstraints, overrideVerticalValues);
     496    return complicatedCases(layoutBox, horizontalConstraints, overriddenVerticalValues);
    497497}
    498498
Note: See TracChangeset for help on using the changeset viewer.