diff --git a/components/layout_2020/style_ext.rs b/components/layout_2020/style_ext.rs index c1d2f47e2fa..56a1be3eca5 100644 --- a/components/layout_2020/style_ext.rs +++ b/components/layout_2020/style_ext.rs @@ -336,8 +336,22 @@ impl ComputedValuesExt for ComputedValues { ) } - /// Returns true if this style has a transform, or perspective property set. + /// Returns true if this style has a transform, or perspective property set and + /// it applies to this element. fn has_transform_or_perspective(&self) -> bool { + // "A transformable element is an element in one of these categories: + // * all elements whose layout is governed by the CSS box model except for + // non-replaced inline boxes, table-column boxes, and table-column-group + // boxes, + // * all SVG paint server elements, the clipPath element and SVG renderable + // elements with the exception of any descendant element of text content + // elements." + // https://drafts.csswg.org/css-transforms/#transformable-element + // FIXME(mrobinson): Properly handle tables and replaced elements here. + if self.get_box().display.is_inline_flow() { + return false; + } + !self.get_box().transform.0.is_empty() || self.get_box().perspective != Perspective::None } @@ -414,9 +428,7 @@ impl ComputedValuesExt for ComputedValues { /// Note that this also implies that it establishes a containing block /// for absolute descendants (`position: absolute`). fn establishes_containing_block_for_all_descendants(&self) -> bool { - if self.get_box().display.outside() != stylo::DisplayOutside::Inline && - self.has_transform_or_perspective() - { + if self.has_transform_or_perspective() { return true; } diff --git a/tests/wpt/metadata-layout-2020/css/css-transforms/css-transforms-3d-on-anonymous-block-001.html.ini b/tests/wpt/metadata-layout-2020/css/css-transforms/css-transforms-3d-on-anonymous-block-001.html.ini deleted file mode 100644 index bbb2e5f171e..00000000000 --- a/tests/wpt/metadata-layout-2020/css/css-transforms/css-transforms-3d-on-anonymous-block-001.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[css-transforms-3d-on-anonymous-block-001.html] - expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-transforms/perspective-untransformable-no-stacking-context.html.ini b/tests/wpt/metadata-layout-2020/css/css-transforms/perspective-untransformable-no-stacking-context.html.ini deleted file mode 100644 index f7dd637e965..00000000000 --- a/tests/wpt/metadata-layout-2020/css/css-transforms/perspective-untransformable-no-stacking-context.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[perspective-untransformable-no-stacking-context.html] - expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-transforms/transform-applies-to-002.xht.ini b/tests/wpt/metadata-layout-2020/css/css-transforms/transform-applies-to-002.xht.ini deleted file mode 100644 index 27a2c3c0916..00000000000 --- a/tests/wpt/metadata-layout-2020/css/css-transforms/transform-applies-to-002.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[transform-applies-to-002.xht] - expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-transforms/transform-inline-001.html.ini b/tests/wpt/metadata-layout-2020/css/css-transforms/transform-inline-001.html.ini deleted file mode 100644 index 677683d5adb..00000000000 --- a/tests/wpt/metadata-layout-2020/css/css-transforms/transform-inline-001.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[transform-inline-001.html] - expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-transforms/transform-table-001.html.ini b/tests/wpt/metadata-layout-2020/css/css-transforms/transform-table-001.html.ini new file mode 100644 index 00000000000..2d6426ebe5a --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/css-transforms/transform-table-001.html.ini @@ -0,0 +1,2 @@ +[transform-table-001.html] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-transforms/transform-table-002.html.ini b/tests/wpt/metadata-layout-2020/css/css-transforms/transform-table-002.html.ini new file mode 100644 index 00000000000..dcbba9fdd2b --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/css-transforms/transform-table-002.html.ini @@ -0,0 +1,2 @@ +[transform-table-002.html] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-transforms/transform-table-003.html.ini b/tests/wpt/metadata-layout-2020/css/css-transforms/transform-table-003.html.ini new file mode 100644 index 00000000000..8a99504ae7e --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/css-transforms/transform-table-003.html.ini @@ -0,0 +1,2 @@ +[transform-table-003.html] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-transforms/transform-table-004.html.ini b/tests/wpt/metadata-layout-2020/css/css-transforms/transform-table-004.html.ini new file mode 100644 index 00000000000..e0dc22c67a7 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/css-transforms/transform-table-004.html.ini @@ -0,0 +1,2 @@ +[transform-table-004.html] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-transforms/transform-table-005.html.ini b/tests/wpt/metadata-layout-2020/css/css-transforms/transform-table-005.html.ini new file mode 100644 index 00000000000..8c65ab23535 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/css-transforms/transform-table-005.html.ini @@ -0,0 +1,2 @@ +[transform-table-005.html] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-transforms/transform3d-image-scale-001.html.ini b/tests/wpt/metadata-layout-2020/css/css-transforms/transform3d-image-scale-001.html.ini new file mode 100644 index 00000000000..11da067d959 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/css-transforms/transform3d-image-scale-001.html.ini @@ -0,0 +1,2 @@ +[transform3d-image-scale-001.html] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/filter-effects/filter-cb-abspos-inline-002.html.ini b/tests/wpt/metadata-layout-2020/css/filter-effects/filter-cb-abspos-inline-002.html.ini deleted file mode 100644 index 83748f6b1c5..00000000000 --- a/tests/wpt/metadata-layout-2020/css/filter-effects/filter-cb-abspos-inline-002.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[filter-cb-abspos-inline-002.html] - expected: FAIL diff --git a/tests/wpt/mozilla/meta-layout-2020/mozilla/element_parentOffset.html.ini b/tests/wpt/mozilla/meta-layout-2020/mozilla/element_parentOffset.html.ini deleted file mode 100644 index 0db83ebfda4..00000000000 --- a/tests/wpt/mozilla/meta-layout-2020/mozilla/element_parentOffset.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[element_parentOffset.html] - [element_parentOffset] - expected: FAIL