WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
[patch]
Patch
bug-223569-20210413104007.patch (text/plain), 22.32 KB, created by
Rob Buis
on 2021-04-13 01:40:08 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Rob Buis
Created:
2021-04-13 01:40:08 PDT
Size:
22.32 KB
patch
obsolete
>Subversion Revision: 275866 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 2dfd9ae53e40d356f126cf2523e79a3531f3daac..78e188c8a16d2fc3392c61265a702a3ec45e288e 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,60 @@ >+2021-04-13 Rob Buis <rbuis@igalia.com> >+ >+ Support contain: layout >+ https://bugs.webkit.org/show_bug.cgi?id=223569 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ This patch implements layout containment as specified[1]. >+ It adds shouldApplyLayoutContainment to check whether the >+ element applies for layout containment. Is so, then: >+ - an independent formatting context is established. >+ - any overflow is treated as ink overflow. >+ - an absolute positioning and fixed positioning >+ containing block is established. >+ - a stacking context is created. >+ - for baseline handling, the box is treated as having no >+ baseline. For grid/flexible box containers/items, this needs >+ a baseline synthesized from the border edges [2], for buttons it >+ requires a baseline synthesized from the margin edges [2, 3]. >+ >+ [1] https://drafts.csswg.org/css-contain-2/#layout-containment >+ [2] https://drafts.csswg.org/css-align-3/#synthesize-baseline >+ [3] https://www.w3.org/TR/CSS2/visudet.html#propdef-vertical-align >+ >+ * rendering/RenderBlock.cpp: >+ (WebCore::RenderBlock::firstLineBaseline const): >+ (WebCore::RenderBlock::inlineBlockBaseline const): >+ * rendering/RenderBlockFlow.cpp: >+ (WebCore::RenderBlockFlow::firstLineBaseline const): >+ (WebCore::RenderBlockFlow::inlineBlockBaseline const): >+ * rendering/RenderBox.cpp: >+ (WebCore::RenderBox::createsNewFormattingContext const): >+ (WebCore::RenderBox::layoutOverflowRectForPropagation const): >+ * rendering/RenderBox.h: >+ * rendering/RenderButton.cpp: >+ (WebCore::RenderButton::baselinePosition const): >+ * rendering/RenderElement.h: >+ (WebCore::RenderElement::canContainFixedPositionObjects const): >+ (WebCore::RenderElement::canContainAbsolutelyPositionedObjects const): >+ * rendering/RenderFlexibleBox.cpp: >+ (WebCore::RenderFlexibleBox::firstLineBaseline const): >+ * rendering/RenderGrid.cpp: >+ (WebCore::RenderGrid::firstLineBaseline const): >+ * rendering/RenderListBox.cpp: >+ (WebCore::RenderListBox::baselinePosition const): >+ * rendering/RenderObject.cpp: >+ (WebCore::objectIsRelayoutBoundary): >+ * rendering/RenderObject.h: >+ (WebCore::RenderObject::isAtomicInlineLevelBox const): >+ (WebCore::RenderObject::shouldApplyLayoutContainment const): >+ * rendering/RenderTable.cpp: >+ (WebCore::RenderTable::firstLineBaseline const): >+ * rendering/style/RenderStyle.h: >+ (WebCore::RenderStyle::containsLayout const): >+ * style/StyleAdjuster.cpp: >+ (WebCore::Style::Adjuster::adjust const): >+ > 2021-04-12 Ryosuke Niwa <rniwa@webkit.org> > > TextManipulationController should use weak pointers to Node >diff --git a/Source/WebCore/rendering/RenderBlock.cpp b/Source/WebCore/rendering/RenderBlock.cpp >index bb4df7cc878d1adf6ee4591f9fd5f3ff4344dc0a..0abde1ddb4dfee5909b2a676f42d3b0beeb703e0 100644 >--- a/Source/WebCore/rendering/RenderBlock.cpp >+++ b/Source/WebCore/rendering/RenderBlock.cpp >@@ -2574,6 +2574,9 @@ LayoutUnit RenderBlock::minLineHeightForReplacedRenderer(bool isFirstLine, Layou > > Optional<LayoutUnit> RenderBlock::firstLineBaseline() const > { >+ if (shouldApplyLayoutContainment()) >+ return Optional<LayoutUnit>(); >+ > if (isWritingModeRoot() && !isRubyRun()) > return Optional<LayoutUnit>(); > >@@ -2589,6 +2592,9 @@ Optional<LayoutUnit> RenderBlock::firstLineBaseline() const > > Optional<LayoutUnit> RenderBlock::inlineBlockBaseline(LineDirectionMode lineDirection) const > { >+ if (shouldApplyLayoutContainment()) >+ return Optional<LayoutUnit>(synthesizedBaselineFromBorderBox(*this, lineDirection) + (lineDirection == HorizontalLine ? marginBottom(): marginLeft())); >+ > if (isWritingModeRoot() && !isRubyRun()) > return Optional<LayoutUnit>(); > >diff --git a/Source/WebCore/rendering/RenderBlockFlow.cpp b/Source/WebCore/rendering/RenderBlockFlow.cpp >index 22f3fa06e5d4b38f442ec284057d7171ca6b553c..29912d238d860ba30bb54b3a47fbfcd33eebceae 100644 >--- a/Source/WebCore/rendering/RenderBlockFlow.cpp >+++ b/Source/WebCore/rendering/RenderBlockFlow.cpp >@@ -3111,6 +3111,9 @@ Optional<LayoutUnit> RenderBlockFlow::firstLineBaseline() const > if (isWritingModeRoot() && !isRubyRun() && !isGridItem()) > return WTF::nullopt; > >+ if (shouldApplyLayoutContainment()) >+ return WTF::nullopt; >+ > if (!childrenInline()) > return RenderBlock::firstLineBaseline(); > >@@ -3133,6 +3136,9 @@ Optional<LayoutUnit> RenderBlockFlow::inlineBlockBaseline(LineDirectionMode line > if (isWritingModeRoot() && !isRubyRun()) > return WTF::nullopt; > >+ if (shouldApplyLayoutContainment()) >+ return RenderBlock::inlineBlockBaseline(lineDirection); >+ > if (style().display() == DisplayType::InlineBlock) { > // 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' > // property has a computed value other than 'visible'. see https://www.w3.org/TR/CSS22/visudet.html >diff --git a/Source/WebCore/rendering/RenderBox.cpp b/Source/WebCore/rendering/RenderBox.cpp >index 576ee5dcc9a3e6df7e51be9e2b262f2b200732b4..7f0f565852bdc073596e91c3e4bdaff8138a9024 100644 >--- a/Source/WebCore/rendering/RenderBox.cpp >+++ b/Source/WebCore/rendering/RenderBox.cpp >@@ -4677,7 +4677,7 @@ bool RenderBox::createsNewFormattingContext() const > { > return isInlineBlockOrInlineTable() || isFloatingOrOutOfFlowPositioned() || hasOverflowClip() || isFlexItemIncludingDeprecated() > || isTableCell() || isTableCaption() || isFieldset() || isWritingModeRoot() || isDocumentElementRenderer() || isRenderFragmentedFlow() || isRenderFragmentContainer() >- || isGridItem() || style().specifiesColumns() || style().columnSpan() == ColumnSpan::All || style().display() == DisplayType::FlowRoot; >+ || style().containsLayout() || isGridItem() || style().specifiesColumns() || style().columnSpan() == ColumnSpan::All || style().display() == DisplayType::FlowRoot; > } > > bool RenderBox::avoidsFloats() const >@@ -4924,7 +4924,7 @@ LayoutRect RenderBox::layoutOverflowRectForPropagation(const RenderStyle* parent > { > // Only propagate interior layout overflow if we don't clip it. > LayoutRect rect = borderBoxRect(); >- if (!hasOverflowClip()) >+ if (!shouldApplyLayoutContainment() && !hasOverflowClip()) > rect.unite(layoutOverflowRect()); > > bool hasTransform = this->hasTransform(); >diff --git a/Source/WebCore/rendering/RenderBox.h b/Source/WebCore/rendering/RenderBox.h >index 3fa0f4ce21951fa5d158719fcf25598d01b5225f..eebc41ce9cb99a91be9e00c9ececad9e1c40a591 100644 >--- a/Source/WebCore/rendering/RenderBox.h >+++ b/Source/WebCore/rendering/RenderBox.h >@@ -54,7 +54,7 @@ public: > { > return isDocumentElementRenderer() || isPositioned() || createsGroup() || hasOverflowClip() > || hasTransformRelatedProperty() || hasHiddenBackface() || hasReflection() || style().specifiesColumns() >- || !style().hasAutoUsedZIndex() || hasRunningAcceleratedAnimations(); >+ || style().containsLayout() || !style().hasAutoUsedZIndex() || hasRunningAcceleratedAnimations(); > } > > bool requiresLayerWithScrollableArea() const; >diff --git a/Source/WebCore/rendering/RenderButton.cpp b/Source/WebCore/rendering/RenderButton.cpp >index 8e56319cec8ee53fbaebba3e79eaac238a3d0e10..cc61179ad169fa012c9e0c99a67902751d503092 100644 >--- a/Source/WebCore/rendering/RenderButton.cpp >+++ b/Source/WebCore/rendering/RenderButton.cpp >@@ -148,8 +148,10 @@ static LayoutUnit synthesizedBaselineFromContentBox(const RenderBox& box, LineDi > return direction == HorizontalLine ? box.borderTop() + box.paddingTop() + box.contentHeight() : box.borderRight() + box.paddingRight() + box.contentWidth(); > } > >-LayoutUnit RenderButton::baselinePosition(FontBaseline, bool, LineDirectionMode direction, LinePositionMode) const >+LayoutUnit RenderButton::baselinePosition(FontBaseline fontBaseline, bool firstLine, LineDirectionMode direction, LinePositionMode mode) const > { >+ if (shouldApplyLayoutContainment()) >+ return RenderFlexibleBox::baselinePosition(fontBaseline, firstLine, direction, mode); > // We cannot rely on RenderFlexibleBox::baselinePosition() because of flexboxes have some special behavior > // regarding baselines that shouldn't apply to buttons. > LayoutUnit baseline = firstLineBaseline().valueOr(synthesizedBaselineFromContentBox(*this, direction)); >diff --git a/Source/WebCore/rendering/RenderElement.h b/Source/WebCore/rendering/RenderElement.h >index 0171efe045355fbaf6fc6d247d6253c2e27f69e8..de58843e1e8448ea44cf00b7baa04aa86f16d7bc 100644 >--- a/Source/WebCore/rendering/RenderElement.h >+++ b/Source/WebCore/rendering/RenderElement.h >@@ -429,6 +429,7 @@ inline bool RenderElement::canContainFixedPositionObjects() const > return isRenderView() > || (hasTransform() && isRenderBlock()) > || isSVGForeignObject() >+ || shouldApplyLayoutContainment() > || isOutOfFlowRenderFragmentedFlow(); > } > >@@ -437,6 +438,7 @@ inline bool RenderElement::canContainAbsolutelyPositionedObjects() const > return style().position() != PositionType::Static > || (isRenderBlock() && hasTransformRelatedProperty()) > || isSVGForeignObject() >+ || shouldApplyLayoutContainment() > || isRenderView(); > } > >diff --git a/Source/WebCore/rendering/RenderFlexibleBox.cpp b/Source/WebCore/rendering/RenderFlexibleBox.cpp >index c6791fc6378edb3e5aaa8b1edbe99b58ee44d3be..29ad0a6389f45e8c0bdc09378021bbb9a2a78722 100644 >--- a/Source/WebCore/rendering/RenderFlexibleBox.cpp >+++ b/Source/WebCore/rendering/RenderFlexibleBox.cpp >@@ -155,7 +155,7 @@ LayoutUnit RenderFlexibleBox::baselinePosition(FontBaseline, bool, LineDirection > > Optional<LayoutUnit> RenderFlexibleBox::firstLineBaseline() const > { >- if (isWritingModeRoot() || m_numberOfInFlowChildrenOnFirstLine <= 0) >+ if (isWritingModeRoot() || m_numberOfInFlowChildrenOnFirstLine <= 0 || shouldApplyLayoutContainment()) > return Optional<LayoutUnit>(); > RenderBox* baselineChild = nullptr; > int childNumber = 0; >diff --git a/Source/WebCore/rendering/RenderGrid.cpp b/Source/WebCore/rendering/RenderGrid.cpp >index ef50768557ddb4698548335b472dd06ae8eb9b1c..9182b5a5d22bb1427e870557e5c4038eeb5fbfeb 100644 >--- a/Source/WebCore/rendering/RenderGrid.cpp >+++ b/Source/WebCore/rendering/RenderGrid.cpp >@@ -1259,7 +1259,7 @@ LayoutUnit RenderGrid::baselinePosition(FontBaseline, bool, LineDirectionMode di > > Optional<LayoutUnit> RenderGrid::firstLineBaseline() const > { >- if (isWritingModeRoot() || !m_grid.hasGridItems()) >+ if (isWritingModeRoot() || !m_grid.hasGridItems() || shouldApplyLayoutContainment()) > return WTF::nullopt; > > const RenderBox* baselineChild = nullptr; >diff --git a/Source/WebCore/rendering/RenderListBox.cpp b/Source/WebCore/rendering/RenderListBox.cpp >index 950b1d7e31d2c0cd8477dd1ab6a38c50f572df9f..172a68cfa7f2bdeb212bdb209c3c59bfebf38273 100644 >--- a/Source/WebCore/rendering/RenderListBox.cpp >+++ b/Source/WebCore/rendering/RenderListBox.cpp >@@ -275,7 +275,10 @@ RenderBox::LogicalExtentComputedValues RenderListBox::computeLogicalHeight(Layou > > LayoutUnit RenderListBox::baselinePosition(FontBaseline baselineType, bool firstLine, LineDirectionMode lineDirection, LinePositionMode linePositionMode) const > { >- return RenderBox::baselinePosition(baselineType, firstLine, lineDirection, linePositionMode) - baselineAdjustment; >+ auto baseline = RenderBox::baselinePosition(baselineType, firstLine, lineDirection, linePositionMode); >+ if (!shouldApplyLayoutContainment()) >+ baseline -= baselineAdjustment; >+ return baseline; > } > > LayoutRect RenderListBox::itemBoundingBoxRect(const LayoutPoint& additionalOffset, int index) >diff --git a/Source/WebCore/rendering/RenderObject.cpp b/Source/WebCore/rendering/RenderObject.cpp >index 7d339fd60ee68c644cc7531ec5d3aeb3f69349b0..e90c033965eac55756a965dd3c0059f6a537deaf 100644 >--- a/Source/WebCore/rendering/RenderObject.cpp >+++ b/Source/WebCore/rendering/RenderObject.cpp >@@ -502,6 +502,9 @@ static inline bool objectIsRelayoutBoundary(const RenderElement* object) > if (object->isTextControl()) > return true; > >+ if (object->shouldApplyLayoutContainment()) >+ return true; >+ > if (object->isSVGRoot()) > return true; > >diff --git a/Source/WebCore/rendering/RenderObject.h b/Source/WebCore/rendering/RenderObject.h >index 1dc744461f1c4a29f227b2783fdad87f92d3a4c2..93c3705f9cf38b520344b130252c4018e58abb87 100644 >--- a/Source/WebCore/rendering/RenderObject.h >+++ b/Source/WebCore/rendering/RenderObject.h >@@ -183,6 +183,16 @@ public: > virtual bool createsAnonymousWrapper() const { return false; } > ////////////////////////////////////////// > >+ bool isAtomicInlineLevelBox() const >+ { >+ return style().isDisplayInlineType() && !(style().display() == DisplayType::Inline && !isReplaced()); >+ } >+ >+ inline bool shouldApplyLayoutContainment() const >+ { >+ return style().containsLayout() && (!isInline() || isAtomicInlineLevelBox()) && !isRubyText() && (!isTablePart() || isRenderBlockFlow()); >+ } >+ > #if ENABLE(TREE_DEBUGGING) > void showNodeTreeForThis() const; > void showRenderTreeForThis() const; >diff --git a/Source/WebCore/rendering/RenderTable.cpp b/Source/WebCore/rendering/RenderTable.cpp >index be8873276bd042833f9381feadc358419a0728b4..c388b74d47d896721a148cc32c87812302bfb4ea 100644 >--- a/Source/WebCore/rendering/RenderTable.cpp >+++ b/Source/WebCore/rendering/RenderTable.cpp >@@ -1500,7 +1500,7 @@ Optional<LayoutUnit> RenderTable::firstLineBaseline() const > // doesn't define the baseline of a 'table' only an 'inline-table'). > // This is also needed to properly determine the baseline of a cell if it has a table child. > >- if (isWritingModeRoot()) >+ if (isWritingModeRoot() || shouldApplyLayoutContainment()) > return Optional<LayoutUnit>(); > > recalcSectionsIfNeeded(); >diff --git a/Source/WebCore/rendering/style/RenderStyle.h b/Source/WebCore/rendering/style/RenderStyle.h >index 97302fa62714b7913d51d8f0ba415b45f5ea3d84..4b14935fed94d2c9add7034e2059e2dff4382679 100644 >--- a/Source/WebCore/rendering/style/RenderStyle.h >+++ b/Source/WebCore/rendering/style/RenderStyle.h >@@ -522,6 +522,7 @@ public: > } > bool hasAspectRatio() const { return aspectRatioType() == AspectRatioType::Ratio || aspectRatioType() == AspectRatioType::AutoAndRatio; } > OptionSet<Containment> contain() const { return m_rareNonInheritedData->contain; } >+ bool containsLayout() const { return m_rareNonInheritedData->contain.contains(Containment::Layout); } > BoxAlignment boxAlign() const { return static_cast<BoxAlignment>(m_rareNonInheritedData->deprecatedFlexibleBox->align); } > BoxDirection boxDirection() const { return static_cast<BoxDirection>(m_inheritedFlags.boxDirection); } > float boxFlex() const { return m_rareNonInheritedData->deprecatedFlexibleBox->flex; } >diff --git a/Source/WebCore/style/StyleAdjuster.cpp b/Source/WebCore/style/StyleAdjuster.cpp >index e6aa1b5cd1bc89833401276e536faf400c2d6f88..edb036287c529e12ed0e5f0ea993946c959dfabb 100644 >--- a/Source/WebCore/style/StyleAdjuster.cpp >+++ b/Source/WebCore/style/StyleAdjuster.cpp >@@ -340,7 +340,7 @@ void Adjuster::adjust(RenderStyle& style, const RenderStyle* userAgentAppearance > } > > // Make sure our z-index value is only applied if the object is positioned. >- if (style.hasAutoSpecifiedZIndex() || (style.position() == PositionType::Static && !m_parentBoxStyle.isDisplayFlexibleOrGridBox())) >+ if (style.hasAutoSpecifiedZIndex() || (style.position() == PositionType::Static && !m_parentBoxStyle.isDisplayFlexibleOrGridBox()) || style.containsLayout()) > style.setHasAutoUsedZIndex(); > else > style.setUsedZIndex(style.specifiedZIndex()); >diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog >index aafd3a3c32c3cedd2a7002587143aaea8b4ab069..27db7a78e4d55843da7508ae14e0e3d865c76b51 100644 >--- a/LayoutTests/ChangeLog >+++ b/LayoutTests/ChangeLog >@@ -1,3 +1,14 @@ >+2021-04-13 Rob Buis <rbuis@igalia.com> >+ >+ Support contain: layout >+ https://bugs.webkit.org/show_bug.cgi?id=223569 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Unskip tests that pass now. >+ >+ * TestExpectations: >+ > 2021-04-12 Xabier Rodriguez Calvar <calvaris@igalia.com> > > [GTK] media/track/text-track-cue-is-reachable.html is flaky crashing in X11 release >diff --git a/LayoutTests/TestExpectations b/LayoutTests/TestExpectations >index 86ab6d3f6d339ccf347bff1f027044a2570063f2..ad7638718a26f38e240f79d7a6aa63340e5bfae5 100644 >--- a/LayoutTests/TestExpectations >+++ b/LayoutTests/TestExpectations >@@ -4682,21 +4682,8 @@ webkit.org/b/220928 imported/w3c/web-platform-tests/css/css-color/predefined-015 > > # CSS containment tests that fail > imported/w3c/web-platform-tests/css/css-contain/contain-animation-001.html [ ImageOnlyFailure ] >-imported/w3c/web-platform-tests/css/css-contain/contain-content-001.html [ ImageOnlyFailure ] >-imported/w3c/web-platform-tests/css/css-contain/contain-content-002.html [ ImageOnlyFailure ] >-imported/w3c/web-platform-tests/css/css-contain/contain-content-003.html [ ImageOnlyFailure ] >-imported/w3c/web-platform-tests/css/css-contain/contain-content-004.html [ ImageOnlyFailure ] >-imported/w3c/web-platform-tests/css/css-contain/contain-content-011.html [ ImageOnlyFailure ] >-imported/w3c/web-platform-tests/css/css-contain/contain-layout-006.html [ ImageOnlyFailure ] >-imported/w3c/web-platform-tests/css/css-contain/contain-layout-007.html [ ImageOnlyFailure ] >-imported/w3c/web-platform-tests/css/css-contain/contain-layout-013.html [ ImageOnlyFailure ] >-imported/w3c/web-platform-tests/css/css-contain/contain-layout-014.html [ ImageOnlyFailure ] >-imported/w3c/web-platform-tests/css/css-contain/contain-layout-016.html [ ImageOnlyFailure ] >-imported/w3c/web-platform-tests/css/css-contain/contain-layout-baseline-001.html [ ImageOnlyFailure ] >-imported/w3c/web-platform-tests/css/css-contain/contain-layout-baseline-002.html [ ImageOnlyFailure ] >-imported/w3c/web-platform-tests/css/css-contain/contain-layout-baseline-003.html [ ImageOnlyFailure ] >-imported/w3c/web-platform-tests/css/css-contain/contain-layout-baseline-004.html [ ImageOnlyFailure ] >-imported/w3c/web-platform-tests/css/css-contain/contain-layout-baseline-005.html [ ImageOnlyFailure ] >+# webkit-ruby-text >+imported/w3c/web-platform-tests/css/css-contain/contain-layout-017.html [ ImageOnlyFailure ] > imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-001.html [ ImageOnlyFailure ] > imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-003.html [ ImageOnlyFailure ] > imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-004.html [ ImageOnlyFailure ] >@@ -4711,31 +4698,7 @@ imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visib > imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-020.html [ ImageOnlyFailure ] > imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-021.html [ ImageOnlyFailure ] > imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-022.html [ ImageOnlyFailure ] >-imported/w3c/web-platform-tests/css/css-contain/contain-layout-button-001.html [ ImageOnlyFailure ] >-imported/w3c/web-platform-tests/css/css-contain/contain-layout-cell-001.html [ ImageOnlyFailure ] >-imported/w3c/web-platform-tests/css/css-contain/contain-layout-cell-002.html [ ImageOnlyFailure ] >-imported/w3c/web-platform-tests/css/css-contain/contain-layout-containing-block-absolute-001.html [ ImageOnlyFailure ] >-imported/w3c/web-platform-tests/css/css-contain/contain-layout-containing-block-fixed-001.html [ ImageOnlyFailure ] >-imported/w3c/web-platform-tests/css/css-contain/contain-layout-flexbox-001.html [ ImageOnlyFailure ] >-imported/w3c/web-platform-tests/css/css-contain/contain-layout-formatting-context-float-001.html [ ImageOnlyFailure ] >-imported/w3c/web-platform-tests/css/css-contain/contain-layout-formatting-context-margin-001.html [ ImageOnlyFailure ] >-imported/w3c/web-platform-tests/css/css-contain/contain-layout-grid-001.html [ ImageOnlyFailure ] >-imported/w3c/web-platform-tests/css/css-contain/contain-layout-ifc-022.html [ ImageOnlyFailure ] >-imported/w3c/web-platform-tests/css/css-contain/contain-layout-independent-formatting-context-001.html [ ImageOnlyFailure ] >-imported/w3c/web-platform-tests/css/css-contain/contain-layout-ink-overflow-013.html [ ImageOnlyFailure ] >-imported/w3c/web-platform-tests/css/css-contain/contain-layout-ink-overflow-014.html [ ImageOnlyFailure ] >-imported/w3c/web-platform-tests/css/css-contain/contain-layout-ink-overflow-015.html [ ImageOnlyFailure ] >-imported/w3c/web-platform-tests/css/css-contain/contain-layout-ink-overflow-016.html [ ImageOnlyFailure ] >-imported/w3c/web-platform-tests/css/css-contain/contain-layout-ink-overflow-017.html [ ImageOnlyFailure ] >-imported/w3c/web-platform-tests/css/css-contain/contain-layout-ink-overflow-018.html [ ImageOnlyFailure ] >-imported/w3c/web-platform-tests/css/css-contain/contain-layout-ink-overflow-019.html [ ImageOnlyFailure ] >-imported/w3c/web-platform-tests/css/css-contain/contain-layout-ink-overflow-020.html [ ImageOnlyFailure ] >-imported/w3c/web-platform-tests/css/css-contain/contain-layout-overflow-001.html [ ImageOnlyFailure ] >-imported/w3c/web-platform-tests/css/css-contain/contain-layout-overflow-002.html [ ImageOnlyFailure ] > imported/w3c/web-platform-tests/css/css-contain/contain-layout-size-003.html [ ImageOnlyFailure ] >-imported/w3c/web-platform-tests/css/css-contain/contain-layout-stacking-context-001.html [ ImageOnlyFailure ] >-imported/w3c/web-platform-tests/css/css-contain/contain-layout-suppress-baseline-001.html [ ImageOnlyFailure ] >-imported/w3c/web-platform-tests/css/css-contain/contain-layout-suppress-baseline-002.html [ ImageOnlyFailure ] > imported/w3c/web-platform-tests/css/css-contain/contain-paint-001.html [ ImageOnlyFailure ] > imported/w3c/web-platform-tests/css/css-contain/contain-paint-004.html [ ImageOnlyFailure ] > imported/w3c/web-platform-tests/css/css-contain/contain-paint-005.html [ ImageOnlyFailure ]
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 223569
:
423869
|
424002
|
424106
|
424744
|
424765
|
425001
|
425004
|
425152
|
425265
|
425847
|
425874
|
426377