| Differences between
and this patch
- a/Source/WebCore/ChangeLog +40 lines
Lines 1-3 a/Source/WebCore/ChangeLog_sec1
1
2021-03-31  Rob Buis  <rbuis@igalia.com>
2
3
        Support contain: layout
4
        https://bugs.webkit.org/show_bug.cgi?id=223569
5
6
        Reviewed by NOBODY (OOPS!).
7
8
        WIP.
9
10
        * rendering/RenderBlock.cpp:
11
        (WebCore::RenderBlock::firstLineBaseline const):
12
        (WebCore::RenderBlock::inlineBlockBaseline const):
13
        * rendering/RenderBlockFlow.cpp:
14
        (WebCore::RenderBlockFlow::firstLineBaseline const):
15
        (WebCore::RenderBlockFlow::inlineBlockBaseline const):
16
        * rendering/RenderBox.cpp:
17
        (WebCore::RenderBox::createsNewFormattingContext const):
18
        (WebCore::RenderBox::layoutOverflowRectForPropagation const):
19
        * rendering/RenderBox.h:
20
        * rendering/RenderButton.cpp:
21
        (WebCore::RenderButton::baselinePosition const):
22
        * rendering/RenderElement.h:
23
        (WebCore::RenderElement::canContainFixedPositionObjects const):
24
        (WebCore::RenderElement::canContainAbsolutelyPositionedObjects const):
25
        * rendering/RenderFlexibleBox.cpp:
26
        (WebCore::RenderFlexibleBox::firstLineBaseline const):
27
        * rendering/RenderGrid.cpp:
28
        (WebCore::RenderGrid::firstLineBaseline const):
29
        * rendering/RenderLayer.cpp:
30
        (WebCore::RenderLayer::shouldBeCSSStackingContext const):
31
        * rendering/RenderObject.cpp:
32
        (WebCore::objectIsRelayoutBoundary):
33
        * rendering/RenderObject.h:
34
        (WebCore::RenderObject::isAtomicInlineLevelBox const):
35
        (WebCore::RenderObject::shouldApplyLayoutContainment const):
36
        * rendering/RenderTable.cpp:
37
        (WebCore::RenderTable::firstLineBaseline const):
38
        * rendering/style/RenderStyle.h:
39
        (WebCore::RenderStyle::containsLayout const):
40
1
2021-03-30  Antoine Quint  <graouts@webkit.org>
41
2021-03-30  Antoine Quint  <graouts@webkit.org>
2
42
3
        Computed style for background-position should not use "left" and "top" keywords
43
        Computed style for background-position should not use "left" and "top" keywords
- a/Source/WebCore/rendering/RenderBlock.cpp +6 lines
Lines 2553-2558 LayoutUnit RenderBlock::minLineHeightForReplacedRenderer(bool isFirstLine, Layou a/Source/WebCore/rendering/RenderBlock.cpp_sec1
2553
2553
2554
Optional<int> RenderBlock::firstLineBaseline() const
2554
Optional<int> RenderBlock::firstLineBaseline() const
2555
{
2555
{
2556
    if (shouldApplyLayoutContainment())
2557
        return Optional<int>();
2558
2556
    if (isWritingModeRoot() && !isRubyRun())
2559
    if (isWritingModeRoot() && !isRubyRun())
2557
        return Optional<int>();
2560
        return Optional<int>();
2558
2561
Lines 2568-2573 Optional<int> RenderBlock::firstLineBaseline() const a/Source/WebCore/rendering/RenderBlock.cpp_sec2
2568
2571
2569
Optional<int> RenderBlock::inlineBlockBaseline(LineDirectionMode lineDirection) const
2572
Optional<int> RenderBlock::inlineBlockBaseline(LineDirectionMode lineDirection) const
2570
{
2573
{
2574
    if (shouldApplyLayoutContainment())
2575
        return Optional<int>(lineDirection == HorizontalLine ? marginBottom() + height() : marginLeft() + width());
2576
2571
    if (isWritingModeRoot() && !isRubyRun())
2577
    if (isWritingModeRoot() && !isRubyRun())
2572
        return Optional<int>();
2578
        return Optional<int>();
2573
2579
- a/Source/WebCore/rendering/RenderBlockFlow.cpp -1 / +4 lines
Lines 3114-3119 Optional<int> RenderBlockFlow::firstLineBaseline() const a/Source/WebCore/rendering/RenderBlockFlow.cpp_sec1
3114
    if (!childrenInline())
3114
    if (!childrenInline())
3115
        return RenderBlock::firstLineBaseline();
3115
        return RenderBlock::firstLineBaseline();
3116
3116
3117
    if (shouldApplyLayoutContainment())
3118
        return WTF::nullopt;
3119
3117
    if (!hasLines())
3120
    if (!hasLines())
3118
        return WTF::nullopt;
3121
        return WTF::nullopt;
3119
3122
Lines 3136-3142 Optional<int> RenderBlockFlow::inlineBlockBaseline(LineDirectionMode lineDirecti a/Source/WebCore/rendering/RenderBlockFlow.cpp_sec2
3136
    if (style().display() == DisplayType::InlineBlock) {
3139
    if (style().display() == DisplayType::InlineBlock) {
3137
        // The baseline of an 'inline-block' is the baseline of its last line box in the normal flow, unless it has either no in-flow line boxes or if its 'overflow'
3140
        // The baseline of an 'inline-block' is the baseline of its last line box in the normal flow, unless it has either no in-flow line boxes or if its 'overflow'
3138
        // property has a computed value other than 'visible'. see https://www.w3.org/TR/CSS22/visudet.html
3141
        // property has a computed value other than 'visible'. see https://www.w3.org/TR/CSS22/visudet.html
3139
        auto shouldSynthesizeBaseline = !style().isOverflowVisible() && !is<HTMLFormControlElement>(element());
3142
        auto shouldSynthesizeBaseline = (!style().isOverflowVisible() && !is<HTMLFormControlElement>(element())) || shouldApplyLayoutContainment();
3140
        if (shouldSynthesizeBaseline)
3143
        if (shouldSynthesizeBaseline)
3141
            return WTF::nullopt;
3144
            return WTF::nullopt;
3142
    }
3145
    }
- a/Source/WebCore/rendering/RenderBox.cpp -2 / +2 lines
Lines 4677-4683 bool RenderBox::createsNewFormattingContext() const a/Source/WebCore/rendering/RenderBox.cpp_sec1
4677
{
4677
{
4678
    return isInlineBlockOrInlineTable() || isFloatingOrOutOfFlowPositioned() || hasOverflowClip() || isFlexItemIncludingDeprecated()
4678
    return isInlineBlockOrInlineTable() || isFloatingOrOutOfFlowPositioned() || hasOverflowClip() || isFlexItemIncludingDeprecated()
4679
        || isTableCell() || isTableCaption() || isFieldset() || isWritingModeRoot() || isDocumentElementRenderer() || isRenderFragmentedFlow() || isRenderFragmentContainer()
4679
        || isTableCell() || isTableCaption() || isFieldset() || isWritingModeRoot() || isDocumentElementRenderer() || isRenderFragmentedFlow() || isRenderFragmentContainer()
4680
        || isGridItem() || style().specifiesColumns() || style().columnSpan() == ColumnSpan::All || style().display() == DisplayType::FlowRoot;
4680
        || style().containsLayout() || isGridItem() || style().specifiesColumns() || style().columnSpan() == ColumnSpan::All || style().display() == DisplayType::FlowRoot;
4681
}
4681
}
4682
4682
4683
bool RenderBox::avoidsFloats() const
4683
bool RenderBox::avoidsFloats() const
Lines 4924-4930 LayoutRect RenderBox::layoutOverflowRectForPropagation(const RenderStyle* parent a/Source/WebCore/rendering/RenderBox.cpp_sec2
4924
{
4924
{
4925
    // Only propagate interior layout overflow if we don't clip it.
4925
    // Only propagate interior layout overflow if we don't clip it.
4926
    LayoutRect rect = borderBoxRect();
4926
    LayoutRect rect = borderBoxRect();
4927
    if (!hasOverflowClip())
4927
    if (!shouldApplyLayoutContainment() && !hasOverflowClip())
4928
        rect.unite(layoutOverflowRect());
4928
        rect.unite(layoutOverflowRect());
4929
4929
4930
    bool hasTransform = this->hasTransform();
4930
    bool hasTransform = this->hasTransform();
- a/Source/WebCore/rendering/RenderBox.h -1 / +1 lines
Lines 54-60 public: a/Source/WebCore/rendering/RenderBox.h_sec1
54
    {
54
    {
55
        return isDocumentElementRenderer() || isPositioned() || createsGroup() || hasOverflowClip()
55
        return isDocumentElementRenderer() || isPositioned() || createsGroup() || hasOverflowClip()
56
            || hasTransformRelatedProperty() || hasHiddenBackface() || hasReflection() || style().specifiesColumns()
56
            || hasTransformRelatedProperty() || hasHiddenBackface() || hasReflection() || style().specifiesColumns()
57
            || !style().hasAutoUsedZIndex() || hasRunningAcceleratedAnimations();
57
            || style().containsLayout() || !style().hasAutoUsedZIndex() || hasRunningAcceleratedAnimations();
58
    }
58
    }
59
59
60
    bool requiresLayerWithScrollableArea() const;
60
    bool requiresLayerWithScrollableArea() const;
- a/Source/WebCore/rendering/RenderButton.cpp -2 / +4 lines
Lines 148-159 static int synthesizedBaselineFromContentBox(const RenderBox& box, LineDirection a/Source/WebCore/rendering/RenderButton.cpp_sec1
148
    return direction == HorizontalLine ? box.borderTop() + box.paddingTop() + box.contentHeight() : box.borderRight() + box.paddingRight() + box.contentWidth();
148
    return direction == HorizontalLine ? box.borderTop() + box.paddingTop() + box.contentHeight() : box.borderRight() + box.paddingRight() + box.contentWidth();
149
}
149
}
150
150
151
int RenderButton::baselinePosition(FontBaseline, bool, LineDirectionMode direction, LinePositionMode) const
151
int RenderButton::baselinePosition(FontBaseline fontBaseline, bool firstLine, LineDirectionMode direction, LinePositionMode mode) const
152
{
152
{
153
    // We cannot rely on RenderFlexibleBox::baselinePosition() because of flexboxes have some special behavior
153
    // We cannot rely on RenderFlexibleBox::baselinePosition() because of flexboxes have some special behavior
154
    // regarding baselines that shouldn't apply to buttons.
154
    // regarding baselines that shouldn't apply to buttons.
155
    int baseline = firstLineBaseline().valueOr(synthesizedBaselineFromContentBox(*this, direction));
155
    if (shouldApplyLayoutContainment())
156
        return RenderFlexibleBox::baselinePosition(fontBaseline, firstLine, direction, mode);
156
    int marginAscent = direction == HorizontalLine ? marginTop() : marginRight();
157
    int marginAscent = direction == HorizontalLine ? marginTop() : marginRight();
158
    int baseline = firstLineBaseline().valueOr(synthesizedBaselineFromContentBox(*this, direction));
157
    return baseline + marginAscent;
159
    return baseline + marginAscent;
158
}
160
}
159
161
- a/Source/WebCore/rendering/RenderElement.h +2 lines
Lines 427-432 inline bool RenderElement::canContainFixedPositionObjects() const a/Source/WebCore/rendering/RenderElement.h_sec1
427
    return isRenderView()
427
    return isRenderView()
428
        || (hasTransform() && isRenderBlock())
428
        || (hasTransform() && isRenderBlock())
429
        || isSVGForeignObject()
429
        || isSVGForeignObject()
430
        || shouldApplyLayoutContainment()
430
        || isOutOfFlowRenderFragmentedFlow();
431
        || isOutOfFlowRenderFragmentedFlow();
431
}
432
}
432
433
Lines 435-440 inline bool RenderElement::canContainAbsolutelyPositionedObjects() const a/Source/WebCore/rendering/RenderElement.h_sec2
435
    return style().position() != PositionType::Static
436
    return style().position() != PositionType::Static
436
        || (isRenderBlock() && hasTransformRelatedProperty())
437
        || (isRenderBlock() && hasTransformRelatedProperty())
437
        || isSVGForeignObject()
438
        || isSVGForeignObject()
439
        || shouldApplyLayoutContainment()
438
        || isRenderView();
440
        || isRenderView();
439
}
441
}
440
442
- a/Source/WebCore/rendering/RenderFlexibleBox.cpp -1 / +1 lines
Lines 160-166 int RenderFlexibleBox::baselinePosition(FontBaseline, bool, LineDirectionMode di a/Source/WebCore/rendering/RenderFlexibleBox.cpp_sec1
160
160
161
Optional<int> RenderFlexibleBox::firstLineBaseline() const
161
Optional<int> RenderFlexibleBox::firstLineBaseline() const
162
{
162
{
163
    if (isWritingModeRoot() || m_numberOfInFlowChildrenOnFirstLine <= 0)
163
    if (isWritingModeRoot() || m_numberOfInFlowChildrenOnFirstLine <= 0 || shouldApplyLayoutContainment())
164
        return Optional<int>();
164
        return Optional<int>();
165
    RenderBox* baselineChild = nullptr;
165
    RenderBox* baselineChild = nullptr;
166
    int childNumber = 0;
166
    int childNumber = 0;
- a/Source/WebCore/rendering/RenderGrid.cpp -1 / +1 lines
Lines 1265-1271 int RenderGrid::baselinePosition(FontBaseline, bool, LineDirectionMode direction a/Source/WebCore/rendering/RenderGrid.cpp_sec1
1265
1265
1266
Optional<int> RenderGrid::firstLineBaseline() const
1266
Optional<int> RenderGrid::firstLineBaseline() const
1267
{
1267
{
1268
    if (isWritingModeRoot() || !m_grid.hasGridItems())
1268
    if (isWritingModeRoot() || !m_grid.hasGridItems() || shouldApplyLayoutContainment())
1269
        return WTF::nullopt;
1269
        return WTF::nullopt;
1270
1270
1271
    const RenderBox* baselineChild = nullptr;
1271
    const RenderBox* baselineChild = nullptr;
- a/Source/WebCore/rendering/RenderLayer.cpp -1 / +1 lines
Lines 581-587 bool RenderLayer::shouldBeNormalFlowOnly() const a/Source/WebCore/rendering/RenderLayer.cpp_sec1
581
581
582
bool RenderLayer::shouldBeCSSStackingContext() const
582
bool RenderLayer::shouldBeCSSStackingContext() const
583
{
583
{
584
    return !renderer().style().hasAutoUsedZIndex() || isRenderViewLayer();
584
    return renderer().shouldApplyLayoutContainment() || !renderer().style().hasAutoUsedZIndex() || isRenderViewLayer();
585
}
585
}
586
586
587
bool RenderLayer::setIsNormalFlowOnly(bool isNormalFlowOnly)
587
bool RenderLayer::setIsNormalFlowOnly(bool isNormalFlowOnly)
- a/Source/WebCore/rendering/RenderObject.cpp +3 lines
Lines 502-507 static inline bool objectIsRelayoutBoundary(const RenderElement* object) a/Source/WebCore/rendering/RenderObject.cpp_sec1
502
    if (object->isTextControl())
502
    if (object->isTextControl())
503
        return true;
503
        return true;
504
504
505
    if (object->shouldApplyLayoutContainment())
506
        return true;
507
505
    if (object->isSVGRoot())
508
    if (object->isSVGRoot())
506
        return true;
509
        return true;
507
510
- a/Source/WebCore/rendering/RenderObject.h +10 lines
Lines 181-186 public: a/Source/WebCore/rendering/RenderObject.h_sec1
181
    virtual bool createsAnonymousWrapper() const { return false; }
181
    virtual bool createsAnonymousWrapper() const { return false; }
182
    //////////////////////////////////////////
182
    //////////////////////////////////////////
183
183
184
    bool isAtomicInlineLevelBox() const
185
    {
186
        return style().isDisplayInlineType() && !(style().display() == DisplayType::Inline && !isReplaced());
187
    }
188
189
    inline bool shouldApplyLayoutContainment() const
190
    {
191
        return style().containsLayout() && (!isInline() || isAtomicInlineLevelBox()) && !isRubyText() && (!isTablePart() || isRenderBlockFlow());
192
    }
193
184
#if ENABLE(TREE_DEBUGGING)
194
#if ENABLE(TREE_DEBUGGING)
185
    void showNodeTreeForThis() const;
195
    void showNodeTreeForThis() const;
186
    void showRenderTreeForThis() const;
196
    void showRenderTreeForThis() const;
- a/Source/WebCore/rendering/RenderTable.cpp -1 / +1 lines
Lines 1490-1496 Optional<int> RenderTable::firstLineBaseline() const a/Source/WebCore/rendering/RenderTable.cpp_sec1
1490
    // doesn't define the baseline of a 'table' only an 'inline-table').
1490
    // doesn't define the baseline of a 'table' only an 'inline-table').
1491
    // This is also needed to properly determine the baseline of a cell if it has a table child.
1491
    // This is also needed to properly determine the baseline of a cell if it has a table child.
1492
1492
1493
    if (isWritingModeRoot())
1493
    if (isWritingModeRoot() || shouldApplyLayoutContainment())
1494
        return Optional<int>();
1494
        return Optional<int>();
1495
1495
1496
    recalcSectionsIfNeeded();
1496
    recalcSectionsIfNeeded();
- a/Source/WebCore/rendering/style/RenderStyle.h +1 lines
Lines 522-527 public: a/Source/WebCore/rendering/style/RenderStyle.h_sec1
522
    }
522
    }
523
    bool hasAspectRatio() const { return aspectRatioType() == AspectRatioType::Ratio || aspectRatioType() == AspectRatioType::AutoAndRatio; }
523
    bool hasAspectRatio() const { return aspectRatioType() == AspectRatioType::Ratio || aspectRatioType() == AspectRatioType::AutoAndRatio; }
524
    OptionSet<Containment> contain() const { return m_rareNonInheritedData->contain; }
524
    OptionSet<Containment> contain() const { return m_rareNonInheritedData->contain; }
525
    bool containsLayout() const { return m_rareNonInheritedData->contain.contains(Containment::Layout); }
525
    BoxAlignment boxAlign() const { return static_cast<BoxAlignment>(m_rareNonInheritedData->deprecatedFlexibleBox->align); }
526
    BoxAlignment boxAlign() const { return static_cast<BoxAlignment>(m_rareNonInheritedData->deprecatedFlexibleBox->align); }
526
    BoxDirection boxDirection() const { return static_cast<BoxDirection>(m_inheritedFlags.boxDirection); }
527
    BoxDirection boxDirection() const { return static_cast<BoxDirection>(m_inheritedFlags.boxDirection); }
527
    float boxFlex() const { return m_rareNonInheritedData->deprecatedFlexibleBox->flex; }
528
    float boxFlex() const { return m_rareNonInheritedData->deprecatedFlexibleBox->flex; }
- a/LayoutTests/ChangeLog +9 lines
Lines 1-3 a/LayoutTests/ChangeLog_sec1
1
2021-03-31  Rob Buis  <rbuis@igalia.com>
2
3
        Support contain: layout
4
        https://bugs.webkit.org/show_bug.cgi?id=223569
5
6
        Reviewed by NOBODY (OOPS!).
7
8
        * TestExpectations:
9
1
2021-03-31  Alexey Shvayka  <shvaikalesh@gmail.com>
10
2021-03-31  Alexey Shvayka  <shvaikalesh@gmail.com>
2
11
3
        Optimize constructors of ES6 collections
12
        Optimize constructors of ES6 collections
- a/LayoutTests/imported/w3c/ChangeLog +9 lines
Lines 1-3 a/LayoutTests/imported/w3c/ChangeLog_sec1
1
2021-03-31  Rob Buis  <rbuis@igalia.com>
2
3
        Support contain: layout
4
        https://bugs.webkit.org/show_bug.cgi?id=223569
5
6
        Reviewed by NOBODY (OOPS!).
7
8
        * web-platform-tests/css/css-contain/contain-layout-017.html:
9
1
2021-03-30  Antoine Quint  <graouts@webkit.org>
10
2021-03-30  Antoine Quint  <graouts@webkit.org>
2
11
3
        Computed style for background-position should not use "left" and "top" keywords
12
        Computed style for background-position should not use "left" and "top" keywords
- a/LayoutTests/TestExpectations -39 / +2 lines
Lines 4693-4713 webkit.org/b/220928 imported/w3c/web-platform-tests/css/css-color/predefined-015 a/LayoutTests/TestExpectations_sec1
4693
4693
4694
# CSS containment tests that fail
4694
# CSS containment tests that fail
4695
imported/w3c/web-platform-tests/css/css-contain/contain-animation-001.html [ ImageOnlyFailure ]
4695
imported/w3c/web-platform-tests/css/css-contain/contain-animation-001.html [ ImageOnlyFailure ]
4696
imported/w3c/web-platform-tests/css/css-contain/contain-content-001.html [ ImageOnlyFailure ]
4696
# webkit-ruby-text
4697
imported/w3c/web-platform-tests/css/css-contain/contain-content-002.html [ ImageOnlyFailure ]
4697
imported/w3c/web-platform-tests/css/css-contain/contain-layout-017.html [ ImageOnlyFailure ]
4698
imported/w3c/web-platform-tests/css/css-contain/contain-content-003.html [ ImageOnlyFailure ]
4699
imported/w3c/web-platform-tests/css/css-contain/contain-content-004.html [ ImageOnlyFailure ]
4700
imported/w3c/web-platform-tests/css/css-contain/contain-content-011.html [ ImageOnlyFailure ]
4701
imported/w3c/web-platform-tests/css/css-contain/contain-layout-006.html [ ImageOnlyFailure ]
4702
imported/w3c/web-platform-tests/css/css-contain/contain-layout-007.html [ ImageOnlyFailure ]
4703
imported/w3c/web-platform-tests/css/css-contain/contain-layout-013.html [ ImageOnlyFailure ]
4704
imported/w3c/web-platform-tests/css/css-contain/contain-layout-014.html [ ImageOnlyFailure ]
4705
imported/w3c/web-platform-tests/css/css-contain/contain-layout-016.html [ ImageOnlyFailure ]
4706
imported/w3c/web-platform-tests/css/css-contain/contain-layout-baseline-001.html [ ImageOnlyFailure ]
4707
imported/w3c/web-platform-tests/css/css-contain/contain-layout-baseline-002.html [ ImageOnlyFailure ]
4708
imported/w3c/web-platform-tests/css/css-contain/contain-layout-baseline-003.html [ ImageOnlyFailure ]
4709
imported/w3c/web-platform-tests/css/css-contain/contain-layout-baseline-004.html [ ImageOnlyFailure ]
4710
imported/w3c/web-platform-tests/css/css-contain/contain-layout-baseline-005.html [ ImageOnlyFailure ]
4711
imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-001.html [ ImageOnlyFailure ]
4698
imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-001.html [ ImageOnlyFailure ]
4712
imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-003.html [ ImageOnlyFailure ]
4699
imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-003.html [ ImageOnlyFailure ]
4713
imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-004.html [ ImageOnlyFailure ]
4700
imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-004.html [ ImageOnlyFailure ]
Lines 4722-4752 imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visib a/LayoutTests/TestExpectations_sec2
4722
imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-020.html [ ImageOnlyFailure ]
4709
imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-020.html [ ImageOnlyFailure ]
4723
imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-021.html [ ImageOnlyFailure ]
4710
imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-021.html [ ImageOnlyFailure ]
4724
imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-022.html [ ImageOnlyFailure ]
4711
imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-022.html [ ImageOnlyFailure ]
4725
imported/w3c/web-platform-tests/css/css-contain/contain-layout-button-001.html [ ImageOnlyFailure ]
4726
imported/w3c/web-platform-tests/css/css-contain/contain-layout-cell-001.html [ ImageOnlyFailure ]
4727
imported/w3c/web-platform-tests/css/css-contain/contain-layout-cell-002.html [ ImageOnlyFailure ]
4728
imported/w3c/web-platform-tests/css/css-contain/contain-layout-containing-block-absolute-001.html [ ImageOnlyFailure ]
4729
imported/w3c/web-platform-tests/css/css-contain/contain-layout-containing-block-fixed-001.html [ ImageOnlyFailure ]
4730
imported/w3c/web-platform-tests/css/css-contain/contain-layout-flexbox-001.html [ ImageOnlyFailure ]
4731
imported/w3c/web-platform-tests/css/css-contain/contain-layout-formatting-context-float-001.html [ ImageOnlyFailure ]
4732
imported/w3c/web-platform-tests/css/css-contain/contain-layout-formatting-context-margin-001.html [ ImageOnlyFailure ]
4733
imported/w3c/web-platform-tests/css/css-contain/contain-layout-grid-001.html [ ImageOnlyFailure ]
4734
imported/w3c/web-platform-tests/css/css-contain/contain-layout-ifc-022.html [ ImageOnlyFailure ]
4735
imported/w3c/web-platform-tests/css/css-contain/contain-layout-independent-formatting-context-001.html [ ImageOnlyFailure ]
4736
imported/w3c/web-platform-tests/css/css-contain/contain-layout-ink-overflow-013.html [ ImageOnlyFailure ]
4737
imported/w3c/web-platform-tests/css/css-contain/contain-layout-ink-overflow-014.html [ ImageOnlyFailure ]
4738
imported/w3c/web-platform-tests/css/css-contain/contain-layout-ink-overflow-015.html [ ImageOnlyFailure ]
4739
imported/w3c/web-platform-tests/css/css-contain/contain-layout-ink-overflow-016.html [ ImageOnlyFailure ]
4740
imported/w3c/web-platform-tests/css/css-contain/contain-layout-ink-overflow-017.html [ ImageOnlyFailure ]
4741
imported/w3c/web-platform-tests/css/css-contain/contain-layout-ink-overflow-018.html [ ImageOnlyFailure ]
4742
imported/w3c/web-platform-tests/css/css-contain/contain-layout-ink-overflow-019.html [ ImageOnlyFailure ]
4743
imported/w3c/web-platform-tests/css/css-contain/contain-layout-ink-overflow-020.html [ ImageOnlyFailure ]
4744
imported/w3c/web-platform-tests/css/css-contain/contain-layout-overflow-001.html [ ImageOnlyFailure ]
4745
imported/w3c/web-platform-tests/css/css-contain/contain-layout-overflow-002.html [ ImageOnlyFailure ]
4746
imported/w3c/web-platform-tests/css/css-contain/contain-layout-size-003.html [ ImageOnlyFailure ]
4712
imported/w3c/web-platform-tests/css/css-contain/contain-layout-size-003.html [ ImageOnlyFailure ]
4747
imported/w3c/web-platform-tests/css/css-contain/contain-layout-stacking-context-001.html [ ImageOnlyFailure ]
4748
imported/w3c/web-platform-tests/css/css-contain/contain-layout-suppress-baseline-001.html [ ImageOnlyFailure ]
4749
imported/w3c/web-platform-tests/css/css-contain/contain-layout-suppress-baseline-002.html [ ImageOnlyFailure ]
4750
imported/w3c/web-platform-tests/css/css-contain/contain-paint-001.html [ ImageOnlyFailure ]
4713
imported/w3c/web-platform-tests/css/css-contain/contain-paint-001.html [ ImageOnlyFailure ]
4751
imported/w3c/web-platform-tests/css/css-contain/contain-paint-004.html [ ImageOnlyFailure ]
4714
imported/w3c/web-platform-tests/css/css-contain/contain-paint-004.html [ ImageOnlyFailure ]
4752
imported/w3c/web-platform-tests/css/css-contain/contain-paint-005.html [ ImageOnlyFailure ]
4715
imported/w3c/web-platform-tests/css/css-contain/contain-paint-005.html [ ImageOnlyFailure ]
- a/LayoutTests/imported/w3c/web-platform-tests/css/css-contain/contain-layout-017.html -1 / +1 lines
Lines 7-13 a/LayoutTests/imported/w3c/web-platform-tests/css/css-contain/contain-layout-017.html_sec1
7
<meta name=assert content="Elements in which layout containment doesn't apply, do not create a stacking context.">
7
<meta name=assert content="Elements in which layout containment doesn't apply, do not create a stacking context.">
8
<style>
8
<style>
9
div {
9
div {
10
  display: -webkit-ruby-text;
10
  display: ruby-text;
11
  contain: layout;
11
  contain: layout;
12
  background: white;
12
  background: white;
13
}
13
}

Return to Bug 223569