| Differences between
and this patch
- a/Source/WebCore/ChangeLog +33 lines
Lines 1-3 a/Source/WebCore/ChangeLog_sec1
1
2021-03-23  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/RenderBlockFlow.cpp:
11
        (WebCore::RenderBlockFlow::firstLineBaseline const):
12
        * rendering/RenderBox.cpp:
13
        (WebCore::RenderBox::createsNewFormattingContext const):
14
        (WebCore::RenderBox::layoutOverflowRectForPropagation const):
15
        * rendering/RenderBox.h:
16
        * rendering/RenderElement.h:
17
        (WebCore::RenderElement::canContainFixedPositionObjects const):
18
        (WebCore::RenderElement::canContainAbsolutelyPositionedObjects const):
19
        * rendering/RenderFlexibleBox.cpp:
20
        (WebCore::RenderFlexibleBox::firstLineBaseline const):
21
        * rendering/RenderGrid.cpp:
22
        (WebCore::RenderGrid::firstLineBaseline const):
23
        * rendering/RenderLayer.cpp:
24
        (WebCore::RenderLayer::shouldBeCSSStackingContext const):
25
        * rendering/RenderObject.cpp:
26
        (WebCore::objectIsRelayoutBoundary):
27
        * rendering/RenderObject.h:
28
        (WebCore::RenderObject::shouldApplyLayoutContainment const):
29
        * rendering/RenderTable.cpp:
30
        (WebCore::RenderTable::firstLineBaseline const):
31
        * rendering/style/RenderStyle.h:
32
        (WebCore::RenderStyle::containsLayout const):
33
1
2021-03-23  Said Abou-Hallawa  <said@apple.com>
34
2021-03-23  Said Abou-Hallawa  <said@apple.com>
2
35
3
        SVG links navigate only to internal animation elements and <view> anchors
36
        SVG links navigate only to internal animation elements and <view> anchors
- 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 -1 / +2 lines
Lines 4678-4683 bool RenderBox::createsNewFormattingContext() const a/Source/WebCore/rendering/RenderBox.cpp_sec1
4678
{
4678
{
4679
    return isInlineBlockOrInlineTable() || isFloatingOrOutOfFlowPositioned() || hasOverflowClip() || isFlexItemIncludingDeprecated()
4679
    return isInlineBlockOrInlineTable() || isFloatingOrOutOfFlowPositioned() || hasOverflowClip() || isFlexItemIncludingDeprecated()
4680
        || isTableCell() || isTableCaption() || isFieldset() || isWritingModeRoot() || isDocumentElementRenderer() || isRenderFragmentedFlow() || isRenderFragmentContainer()
4680
        || isTableCell() || isTableCaption() || isFieldset() || isWritingModeRoot() || isDocumentElementRenderer() || isRenderFragmentedFlow() || isRenderFragmentContainer()
4681
        || style().containsLayout()
4681
        || isGridItem() || style().specifiesColumns() || style().columnSpan() == ColumnSpan::All || style().display() == DisplayType::FlowRoot;
4682
        || isGridItem() || style().specifiesColumns() || style().columnSpan() == ColumnSpan::All || style().display() == DisplayType::FlowRoot;
4682
}
4683
}
4683
4684
Lines 4925-4931 LayoutRect RenderBox::layoutOverflowRectForPropagation(const RenderStyle* parent a/Source/WebCore/rendering/RenderBox.cpp_sec2
4925
{
4926
{
4926
    // Only propagate interior layout overflow if we don't clip it.
4927
    // Only propagate interior layout overflow if we don't clip it.
4927
    LayoutRect rect = borderBoxRect();
4928
    LayoutRect rect = borderBoxRect();
4928
    if (!hasOverflowClip())
4929
    if (!shouldApplyLayoutContainment() && !hasOverflowClip())
4929
        rect.unite(layoutOverflowRect());
4930
        rect.unite(layoutOverflowRect());
4930
4931
4931
    bool hasTransform = this->hasTransform();
4932
    bool hasTransform = this->hasTransform();
- a/Source/WebCore/rendering/RenderBox.h +1 lines
Lines 54-59 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().containsLayout()
57
            || !style().hasAutoUsedZIndex() || hasRunningAcceleratedAnimations();
58
            || !style().hasAutoUsedZIndex() || hasRunningAcceleratedAnimations();
58
    }
59
    }
59
60
- 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));
156
    int marginAscent = direction == HorizontalLine ? marginTop() : marginRight();
155
    int marginAscent = direction == HorizontalLine ? marginTop() : marginRight();
156
    if (shouldApplyLayoutContainment())
157
        return RenderFlexibleBox::baselinePosition(fontBaseline, firstLine, direction, mode);
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 1267-1273 int RenderGrid::baselinePosition(FontBaseline, bool, LineDirectionMode direction a/Source/WebCore/rendering/RenderGrid.cpp_sec1
1267
1267
1268
Optional<int> RenderGrid::firstLineBaseline() const
1268
Optional<int> RenderGrid::firstLineBaseline() const
1269
{
1269
{
1270
    if (isWritingModeRoot() || !m_grid.hasGridItems())
1270
    if (isWritingModeRoot() || !m_grid.hasGridItems() || shouldApplyLayoutContainment())
1271
        return WTF::nullopt;
1271
        return WTF::nullopt;
1272
1272
1273
    const RenderBox* baselineChild = nullptr;
1273
    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 +5 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
    inline bool shouldApplyLayoutContainment() const
185
    {
186
        return style().containsLayout() && (!isInline() || (style().isDisplayInlineType() && !(style().display() == DisplayType::Inline && !isReplaced()))) && !isRubyText() && (!isTablePart() || isRenderBlockFlow());
187
    }
188
184
#if ENABLE(TREE_DEBUGGING)
189
#if ENABLE(TREE_DEBUGGING)
185
    void showNodeTreeForThis() const;
190
    void showNodeTreeForThis() const;
186
    void showRenderTreeForThis() const;
191
    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-23  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-23  Said Abou-Hallawa  <said@apple.com>
10
2021-03-23  Said Abou-Hallawa  <said@apple.com>
2
11
3
        SVG links navigate only to internal animation elements and <view> anchors
12
        SVG links navigate only to internal animation elements and <view> anchors
- a/LayoutTests/TestExpectations -39 / +2 lines
Lines 4709-4729 webkit.org/b/220928 imported/w3c/web-platform-tests/css/css-color/predefined-015 a/LayoutTests/TestExpectations_sec1
4709
4709
4710
# CSS containment tests that fail
4710
# CSS containment tests that fail
4711
imported/w3c/web-platform-tests/css/css-contain/contain-animation-001.html [ ImageOnlyFailure ]
4711
imported/w3c/web-platform-tests/css/css-contain/contain-animation-001.html [ ImageOnlyFailure ]
4712
imported/w3c/web-platform-tests/css/css-contain/contain-content-001.html [ ImageOnlyFailure ]
4712
# webkit-ruby-text
4713
imported/w3c/web-platform-tests/css/css-contain/contain-content-002.html [ ImageOnlyFailure ]
4713
imported/w3c/web-platform-tests/css/css-contain/contain-layout-017.html [ ImageOnlyFailure ]
4714
imported/w3c/web-platform-tests/css/css-contain/contain-content-003.html [ ImageOnlyFailure ]
4715
imported/w3c/web-platform-tests/css/css-contain/contain-content-004.html [ ImageOnlyFailure ]
4716
imported/w3c/web-platform-tests/css/css-contain/contain-content-011.html [ ImageOnlyFailure ]
4717
imported/w3c/web-platform-tests/css/css-contain/contain-layout-006.html [ ImageOnlyFailure ]
4718
imported/w3c/web-platform-tests/css/css-contain/contain-layout-007.html [ ImageOnlyFailure ]
4719
imported/w3c/web-platform-tests/css/css-contain/contain-layout-013.html [ ImageOnlyFailure ]
4720
imported/w3c/web-platform-tests/css/css-contain/contain-layout-014.html [ ImageOnlyFailure ]
4721
imported/w3c/web-platform-tests/css/css-contain/contain-layout-016.html [ ImageOnlyFailure ]
4722
imported/w3c/web-platform-tests/css/css-contain/contain-layout-baseline-001.html [ ImageOnlyFailure ]
4723
imported/w3c/web-platform-tests/css/css-contain/contain-layout-baseline-002.html [ ImageOnlyFailure ]
4724
imported/w3c/web-platform-tests/css/css-contain/contain-layout-baseline-003.html [ ImageOnlyFailure ]
4725
imported/w3c/web-platform-tests/css/css-contain/contain-layout-baseline-004.html [ ImageOnlyFailure ]
4726
imported/w3c/web-platform-tests/css/css-contain/contain-layout-baseline-005.html [ ImageOnlyFailure ]
4727
imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-001.html [ ImageOnlyFailure ]
4714
imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-001.html [ ImageOnlyFailure ]
4728
imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-003.html [ ImageOnlyFailure ]
4715
imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-003.html [ ImageOnlyFailure ]
4729
imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-004.html [ ImageOnlyFailure ]
4716
imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-004.html [ ImageOnlyFailure ]
Lines 4738-4768 imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visib a/LayoutTests/TestExpectations_sec2
4738
imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-020.html [ ImageOnlyFailure ]
4725
imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-020.html [ ImageOnlyFailure ]
4739
imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-021.html [ ImageOnlyFailure ]
4726
imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-021.html [ ImageOnlyFailure ]
4740
imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-022.html [ ImageOnlyFailure ]
4727
imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-022.html [ ImageOnlyFailure ]
4741
imported/w3c/web-platform-tests/css/css-contain/contain-layout-button-001.html [ ImageOnlyFailure ]
4742
imported/w3c/web-platform-tests/css/css-contain/contain-layout-cell-001.html [ ImageOnlyFailure ]
4743
imported/w3c/web-platform-tests/css/css-contain/contain-layout-cell-002.html [ ImageOnlyFailure ]
4744
imported/w3c/web-platform-tests/css/css-contain/contain-layout-containing-block-absolute-001.html [ ImageOnlyFailure ]
4745
imported/w3c/web-platform-tests/css/css-contain/contain-layout-containing-block-fixed-001.html [ ImageOnlyFailure ]
4746
imported/w3c/web-platform-tests/css/css-contain/contain-layout-flexbox-001.html [ ImageOnlyFailure ]
4747
imported/w3c/web-platform-tests/css/css-contain/contain-layout-formatting-context-float-001.html [ ImageOnlyFailure ]
4748
imported/w3c/web-platform-tests/css/css-contain/contain-layout-formatting-context-margin-001.html [ ImageOnlyFailure ]
4749
imported/w3c/web-platform-tests/css/css-contain/contain-layout-grid-001.html [ ImageOnlyFailure ]
4750
imported/w3c/web-platform-tests/css/css-contain/contain-layout-ifc-022.html [ ImageOnlyFailure ]
4751
imported/w3c/web-platform-tests/css/css-contain/contain-layout-independent-formatting-context-001.html [ ImageOnlyFailure ]
4752
imported/w3c/web-platform-tests/css/css-contain/contain-layout-ink-overflow-013.html [ ImageOnlyFailure ]
4753
imported/w3c/web-platform-tests/css/css-contain/contain-layout-ink-overflow-014.html [ ImageOnlyFailure ]
4754
imported/w3c/web-platform-tests/css/css-contain/contain-layout-ink-overflow-015.html [ ImageOnlyFailure ]
4755
imported/w3c/web-platform-tests/css/css-contain/contain-layout-ink-overflow-016.html [ ImageOnlyFailure ]
4756
imported/w3c/web-platform-tests/css/css-contain/contain-layout-ink-overflow-017.html [ ImageOnlyFailure ]
4757
imported/w3c/web-platform-tests/css/css-contain/contain-layout-ink-overflow-018.html [ ImageOnlyFailure ]
4758
imported/w3c/web-platform-tests/css/css-contain/contain-layout-ink-overflow-019.html [ ImageOnlyFailure ]
4759
imported/w3c/web-platform-tests/css/css-contain/contain-layout-ink-overflow-020.html [ ImageOnlyFailure ]
4760
imported/w3c/web-platform-tests/css/css-contain/contain-layout-overflow-001.html [ ImageOnlyFailure ]
4761
imported/w3c/web-platform-tests/css/css-contain/contain-layout-overflow-002.html [ ImageOnlyFailure ]
4762
imported/w3c/web-platform-tests/css/css-contain/contain-layout-size-003.html [ ImageOnlyFailure ]
4728
imported/w3c/web-platform-tests/css/css-contain/contain-layout-size-003.html [ ImageOnlyFailure ]
4763
imported/w3c/web-platform-tests/css/css-contain/contain-layout-stacking-context-001.html [ ImageOnlyFailure ]
4764
imported/w3c/web-platform-tests/css/css-contain/contain-layout-suppress-baseline-001.html [ ImageOnlyFailure ]
4765
imported/w3c/web-platform-tests/css/css-contain/contain-layout-suppress-baseline-002.html [ ImageOnlyFailure ]
4766
imported/w3c/web-platform-tests/css/css-contain/contain-paint-001.html [ ImageOnlyFailure ]
4729
imported/w3c/web-platform-tests/css/css-contain/contain-paint-001.html [ ImageOnlyFailure ]
4767
imported/w3c/web-platform-tests/css/css-contain/contain-paint-004.html [ ImageOnlyFailure ]
4730
imported/w3c/web-platform-tests/css/css-contain/contain-paint-004.html [ ImageOnlyFailure ]
4768
imported/w3c/web-platform-tests/css/css-contain/contain-paint-005.html [ ImageOnlyFailure ]
4731
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