From f3ad078358c6e6eefd6326283b7e9fc0a2e2f406 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20W=C3=BClker?= Date: Wed, 20 Nov 2024 20:28:35 +0100 Subject: [PATCH] Include non-shadowdom children of shadow hosts in style calculation (#34298) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Include non-shadowdom children of shadow hosts in style calculation This was previously causing crashes because the layout nodes of those children would never be assigned style data by stylo. Signed-off-by: Simon Wülker * Update WPT expectations Signed-off-by: Simon Wülker --------- Signed-off-by: Simon Wülker --- components/script/layout_dom/element.rs | 33 +++++-- ...nimation-shadow-slot-invalidation.html.ini | 2 +- .../css-cascade/layer-slotted-rule.html.ini | 2 +- .../css/css-cascade/revert-layer-014.html.ini | 2 +- .../css-content/quotes-slot-scoping.html.ini | 2 +- .../display-contents-shadow-dom-1.html.ini | 2 +- .../counter-list-item-slot-order.html.ini | 2 +- .../counter-slot-order-scoping.html.ini | 2 +- .../css/css-lists/counter-slot-order.html.ini | 2 +- ...ext-decoration-propagation-shadow.html.ini | 2 - ...e-slotted-with-whitespace-sibling.html.ini | 2 +- .../css/cssom-view/checkVisibility.html.ini | 16 +++- .../css/cssom/insert-dir-rule-crash.html.ini | 2 - .../insert-dir-rule-in-iframe-crash.html.ini | 2 - .../focus-within-shadow-001.html.ini | 2 +- .../focus-within-shadow-002.html.ini | 2 +- .../focus-within-shadow-003.html.ini | 2 +- .../focus-within-shadow-004.html.ini | 2 +- .../focus-within-shadow-005.html.ini | 2 +- .../focus-within-shadow-006.html.ini | 2 +- ...do-class-across-shadow-boundaries.html.ini | 2 +- .../css/selectors/is-where-shadow.html.ini | 9 +- .../2d.text-outside-of-the-flat-tree.html.ini | 2 +- .../dir-auto-dynamic-changes.window.js.ini | 2 +- .../global-attributes/dir-shadow-01.html.ini | 2 +- .../global-attributes/dir-shadow-02.html.ini | 2 +- .../global-attributes/dir-shadow-03.html.ini | 2 +- .../global-attributes/dir-shadow-04.html.ini | 2 +- .../global-attributes/dir-shadow-05.html.ini | 2 +- .../global-attributes/dir-shadow-06.html.ini | 2 +- .../global-attributes/dir-shadow-07.html.ini | 2 +- .../global-attributes/dir-shadow-08.html.ini | 2 +- .../global-attributes/dir-shadow-09.html.ini | 2 +- .../global-attributes/dir-shadow-10.html.ini | 2 +- .../global-attributes/dir-shadow-11.html.ini | 2 +- .../global-attributes/dir-shadow-12.html.ini | 2 +- .../global-attributes/dir-shadow-31.html.ini | 2 +- .../global-attributes/dir-shadow-35.html.ini | 2 +- .../global-attributes/dir-shadow-41.html.ini | 2 +- .../global-attributes/dir-shadow-42.html.ini | 2 +- .../dir-slots-directionality.html.ini | 2 +- .../contentEditable-slotted-inherit.html.ini | 2 +- .../legend-in-slot.html.ini | 2 +- .../sticky-content-crash.html.ini | 2 +- .../showmodal-in-shadow-crash.html.ini | 2 - ...posedRanges-dom-mutations-removal.html.ini | 4 +- ...tion-later-become-slotted-content.html.ini | 2 +- .../declarative-after-attachshadow.html.ini | 3 +- .../declarative-shadow-dom-repeats.html.ini | 9 +- .../innerhtml-on-ordinary-template.html.ini | 3 +- .../directionality-001.tentative.html.ini | 2 +- .../directionality-002.tentative.html.ini | 2 +- .../event-inside-slotted-node.html.ini | 60 +++++++++++- .../focus-pseudo-on-shadow-host-2.html.ini | 2 +- .../focus-pseudo-on-shadow-host-3.html.ini | 2 - .../imperative-slot-api-crash.html.ini | 2 - .../imperative-slot-fallback-clear.html.ini | 6 +- ...tive-slot-layout-invalidation-001.html.ini | 2 +- .../layout-slot-no-longer-assigned.html.ini | 2 - .../layout-slot-no-longer-fallback.html.ini | 2 - .../slot-fallback-content-001.html.ini | 2 - .../slot-fallback-content-002.html.ini | 2 - .../slot-fallback-content-004.html.ini | 2 +- .../slot-fallback-content-005.html.ini | 2 +- .../slot-fallback-content-006.html.ini | 2 +- .../slot-fallback-content-007.html.ini | 2 +- .../slot-fallback-content-008.html.ini | 2 +- .../meta/shadow-dom/slotchange-event.html.ini | 96 ++++++++++++++++++- .../slots-outside-shadow-dom.html.ini | 3 +- .../methods/test-002.html.ini | 3 +- .../event-retargeting/test-003.html.ini | 2 - .../test-001.html.ini | 2 - .../reprojection/reprojection-001.html.ini | 2 +- .../shadow-trees/shadow-root-002.html.ini | 2 +- .../untriaged/styles/test-008.html.ini | 3 +- .../ranges-and-selections/test-001.html.ini | 2 - .../ranges-and-selections/test-002.html.ini | 6 +- 77 files changed, 284 insertions(+), 96 deletions(-) delete mode 100644 tests/wpt/meta/css/css-text-decor/text-decoration-propagation-shadow.html.ini delete mode 100644 tests/wpt/meta/css/cssom/insert-dir-rule-crash.html.ini delete mode 100644 tests/wpt/meta/css/cssom/insert-dir-rule-in-iframe-crash.html.ini delete mode 100644 tests/wpt/meta/html/semantics/interactive-elements/the-dialog-element/showmodal-in-shadow-crash.html.ini delete mode 100644 tests/wpt/meta/shadow-dom/focus/focus-pseudo-on-shadow-host-3.html.ini delete mode 100644 tests/wpt/meta/shadow-dom/imperative-slot-api-crash.html.ini delete mode 100644 tests/wpt/meta/shadow-dom/layout-slot-no-longer-assigned.html.ini delete mode 100644 tests/wpt/meta/shadow-dom/layout-slot-no-longer-fallback.html.ini delete mode 100644 tests/wpt/meta/shadow-dom/slot-fallback-content-001.html.ini delete mode 100644 tests/wpt/meta/shadow-dom/slot-fallback-content-002.html.ini delete mode 100644 tests/wpt/meta/shadow-dom/untriaged/events/event-retargeting/test-003.html.ini delete mode 100644 tests/wpt/meta/shadow-dom/untriaged/events/retargeting-focus-events/test-001.html.ini delete mode 100644 tests/wpt/meta/shadow-dom/untriaged/user-interaction/ranges-and-selections/test-001.html.ini diff --git a/components/script/layout_dom/element.rs b/components/script/layout_dom/element.rs index 05349205c82..e4841b509a9 100644 --- a/components/script/layout_dom/element.rs +++ b/components/script/layout_dom/element.rs @@ -140,20 +140,41 @@ impl<'dom> ServoLayoutElement<'dom> { } } +pub struct DomChildrenIncludingShadowDom { + children: DomChildren, + children_in_shadow_root: Option>, +} + +impl Iterator for DomChildrenIncludingShadowDom +where + N: TNode, +{ + type Item = N; + + fn next(&mut self) -> Option { + self.children + .next() + .or_else(|| self.children_in_shadow_root.as_mut()?.next()) + } +} + impl<'dom> style::dom::TElement for ServoLayoutElement<'dom> { type ConcreteNode = ServoLayoutNode<'dom>; - type TraversalChildrenIterator = DomChildren; + type TraversalChildrenIterator = DomChildrenIncludingShadowDom; fn as_node(&self) -> ServoLayoutNode<'dom> { ServoLayoutNode::from_layout_js(self.element.upcast()) } fn traversal_children(&self) -> LayoutIterator { - LayoutIterator(if let Some(shadow) = self.shadow_root() { - shadow.as_node().dom_children() - } else { - self.as_node().dom_children() - }) + let children = DomChildrenIncludingShadowDom { + children: self.as_node().dom_children(), + children_in_shadow_root: self + .shadow_root() + .map(|shadow| shadow.as_node().dom_children()), + }; + + LayoutIterator(children) } fn is_html_element(&self) -> bool { diff --git a/tests/wpt/meta/css/css-animations/cancel-animation-shadow-slot-invalidation.html.ini b/tests/wpt/meta/css/css-animations/cancel-animation-shadow-slot-invalidation.html.ini index 691bc0385f1..001271124aa 100644 --- a/tests/wpt/meta/css/css-animations/cancel-animation-shadow-slot-invalidation.html.ini +++ b/tests/wpt/meta/css/css-animations/cancel-animation-shadow-slot-invalidation.html.ini @@ -1,2 +1,2 @@ [cancel-animation-shadow-slot-invalidation.html] - expected: CRASH + expected: TIMEOUT diff --git a/tests/wpt/meta/css/css-cascade/layer-slotted-rule.html.ini b/tests/wpt/meta/css/css-cascade/layer-slotted-rule.html.ini index 4eb703de442..2b19f6fdf0e 100644 --- a/tests/wpt/meta/css/css-cascade/layer-slotted-rule.html.ini +++ b/tests/wpt/meta/css/css-cascade/layer-slotted-rule.html.ini @@ -1,2 +1,2 @@ [layer-slotted-rule.html] - expected: CRASH + expected: FAIL diff --git a/tests/wpt/meta/css/css-cascade/revert-layer-014.html.ini b/tests/wpt/meta/css/css-cascade/revert-layer-014.html.ini index 5a9f9a704fa..3bd4bc7ec81 100644 --- a/tests/wpt/meta/css/css-cascade/revert-layer-014.html.ini +++ b/tests/wpt/meta/css/css-cascade/revert-layer-014.html.ini @@ -1,2 +1,2 @@ [revert-layer-014.html] - expected: CRASH + expected: FAIL diff --git a/tests/wpt/meta/css/css-content/quotes-slot-scoping.html.ini b/tests/wpt/meta/css/css-content/quotes-slot-scoping.html.ini index 7f62608409e..8edc9adb64f 100644 --- a/tests/wpt/meta/css/css-content/quotes-slot-scoping.html.ini +++ b/tests/wpt/meta/css/css-content/quotes-slot-scoping.html.ini @@ -1,2 +1,2 @@ [quotes-slot-scoping.html] - expected: CRASH + expected: PASS diff --git a/tests/wpt/meta/css/css-display/display-contents-shadow-dom-1.html.ini b/tests/wpt/meta/css/css-display/display-contents-shadow-dom-1.html.ini index 38b2543b2ca..cf0907404f8 100644 --- a/tests/wpt/meta/css/css-display/display-contents-shadow-dom-1.html.ini +++ b/tests/wpt/meta/css/css-display/display-contents-shadow-dom-1.html.ini @@ -1,2 +1,2 @@ [display-contents-shadow-dom-1.html] - expected: CRASH + expected: FAIL diff --git a/tests/wpt/meta/css/css-lists/counter-list-item-slot-order.html.ini b/tests/wpt/meta/css/css-lists/counter-list-item-slot-order.html.ini index 641c85bc5e6..0275be6b338 100644 --- a/tests/wpt/meta/css/css-lists/counter-list-item-slot-order.html.ini +++ b/tests/wpt/meta/css/css-lists/counter-list-item-slot-order.html.ini @@ -1,2 +1,2 @@ [counter-list-item-slot-order.html] - expected: CRASH + expected: FAIL diff --git a/tests/wpt/meta/css/css-lists/counter-slot-order-scoping.html.ini b/tests/wpt/meta/css/css-lists/counter-slot-order-scoping.html.ini index be6bf3ce595..9e06a8d2ccb 100644 --- a/tests/wpt/meta/css/css-lists/counter-slot-order-scoping.html.ini +++ b/tests/wpt/meta/css/css-lists/counter-slot-order-scoping.html.ini @@ -1,2 +1,2 @@ [counter-slot-order-scoping.html] - expected: CRASH + expected: FAIL diff --git a/tests/wpt/meta/css/css-lists/counter-slot-order.html.ini b/tests/wpt/meta/css/css-lists/counter-slot-order.html.ini index 0d273e984c6..96ad6ce2679 100644 --- a/tests/wpt/meta/css/css-lists/counter-slot-order.html.ini +++ b/tests/wpt/meta/css/css-lists/counter-slot-order.html.ini @@ -1,2 +1,2 @@ [counter-slot-order.html] - expected: CRASH + expected: FAIL diff --git a/tests/wpt/meta/css/css-text-decor/text-decoration-propagation-shadow.html.ini b/tests/wpt/meta/css/css-text-decor/text-decoration-propagation-shadow.html.ini deleted file mode 100644 index 6d7f865e2a2..00000000000 --- a/tests/wpt/meta/css/css-text-decor/text-decoration-propagation-shadow.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[text-decoration-propagation-shadow.html] - expected: CRASH diff --git a/tests/wpt/meta/css/css-text/white-space/remove-slotted-with-whitespace-sibling.html.ini b/tests/wpt/meta/css/css-text/white-space/remove-slotted-with-whitespace-sibling.html.ini index b1aab92307e..9470360b861 100644 --- a/tests/wpt/meta/css/css-text/white-space/remove-slotted-with-whitespace-sibling.html.ini +++ b/tests/wpt/meta/css/css-text/white-space/remove-slotted-with-whitespace-sibling.html.ini @@ -1,2 +1,2 @@ [remove-slotted-with-whitespace-sibling.html] - expected: CRASH + expected: FAIL diff --git a/tests/wpt/meta/css/cssom-view/checkVisibility.html.ini b/tests/wpt/meta/css/cssom-view/checkVisibility.html.ini index beb953175e0..59b2f56943b 100644 --- a/tests/wpt/meta/css/cssom-view/checkVisibility.html.ini +++ b/tests/wpt/meta/css/cssom-view/checkVisibility.html.ini @@ -1,5 +1,4 @@ [checkVisibility.html] - expected: CRASH [checkVisibility on visibility:hidden element.] expected: FAIL @@ -29,3 +28,18 @@ [checkVisibility on content-visibility:hidden element after forced layout update.] expected: FAIL + + [checkVisibility on element slotted in content-visibility: hidden shadow host.] + expected: FAIL + + [checkVisibility on element slotted in display:none shadow host.] + expected: FAIL + + [checkVisibility on display:contents element.] + expected: FAIL + + [checkVisibility on element slotted in opacity: 0; shadow host.] + expected: FAIL + + [checkVisibility on root element with content-visibility: hidden returns true.] + expected: FAIL diff --git a/tests/wpt/meta/css/cssom/insert-dir-rule-crash.html.ini b/tests/wpt/meta/css/cssom/insert-dir-rule-crash.html.ini deleted file mode 100644 index fb88575a052..00000000000 --- a/tests/wpt/meta/css/cssom/insert-dir-rule-crash.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[insert-dir-rule-crash.html] - expected: CRASH diff --git a/tests/wpt/meta/css/cssom/insert-dir-rule-in-iframe-crash.html.ini b/tests/wpt/meta/css/cssom/insert-dir-rule-in-iframe-crash.html.ini deleted file mode 100644 index 38f550a4d27..00000000000 --- a/tests/wpt/meta/css/cssom/insert-dir-rule-in-iframe-crash.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[insert-dir-rule-in-iframe-crash.html] - expected: CRASH diff --git a/tests/wpt/meta/css/selectors/focus-within-shadow-001.html.ini b/tests/wpt/meta/css/selectors/focus-within-shadow-001.html.ini index dd5cd13f188..4cfa7c59d6b 100644 --- a/tests/wpt/meta/css/selectors/focus-within-shadow-001.html.ini +++ b/tests/wpt/meta/css/selectors/focus-within-shadow-001.html.ini @@ -1,2 +1,2 @@ [focus-within-shadow-001.html] - expected: CRASH + expected: FAIL diff --git a/tests/wpt/meta/css/selectors/focus-within-shadow-002.html.ini b/tests/wpt/meta/css/selectors/focus-within-shadow-002.html.ini index 9cdf27b3a0b..c3d6de39fc8 100644 --- a/tests/wpt/meta/css/selectors/focus-within-shadow-002.html.ini +++ b/tests/wpt/meta/css/selectors/focus-within-shadow-002.html.ini @@ -1,2 +1,2 @@ [focus-within-shadow-002.html] - expected: CRASH + expected: FAIL diff --git a/tests/wpt/meta/css/selectors/focus-within-shadow-003.html.ini b/tests/wpt/meta/css/selectors/focus-within-shadow-003.html.ini index 719aa5550ba..eb93805b402 100644 --- a/tests/wpt/meta/css/selectors/focus-within-shadow-003.html.ini +++ b/tests/wpt/meta/css/selectors/focus-within-shadow-003.html.ini @@ -1,2 +1,2 @@ [focus-within-shadow-003.html] - expected: CRASH + expected: FAIL diff --git a/tests/wpt/meta/css/selectors/focus-within-shadow-004.html.ini b/tests/wpt/meta/css/selectors/focus-within-shadow-004.html.ini index ce65b3672bd..db688bdec0a 100644 --- a/tests/wpt/meta/css/selectors/focus-within-shadow-004.html.ini +++ b/tests/wpt/meta/css/selectors/focus-within-shadow-004.html.ini @@ -1,2 +1,2 @@ [focus-within-shadow-004.html] - expected: CRASH + expected: FAIL diff --git a/tests/wpt/meta/css/selectors/focus-within-shadow-005.html.ini b/tests/wpt/meta/css/selectors/focus-within-shadow-005.html.ini index 6e6bb268a4b..ebc78dee513 100644 --- a/tests/wpt/meta/css/selectors/focus-within-shadow-005.html.ini +++ b/tests/wpt/meta/css/selectors/focus-within-shadow-005.html.ini @@ -1,2 +1,2 @@ [focus-within-shadow-005.html] - expected: CRASH + expected: FAIL diff --git a/tests/wpt/meta/css/selectors/focus-within-shadow-006.html.ini b/tests/wpt/meta/css/selectors/focus-within-shadow-006.html.ini index 3bc435fa254..ee9af74cdcc 100644 --- a/tests/wpt/meta/css/selectors/focus-within-shadow-006.html.ini +++ b/tests/wpt/meta/css/selectors/focus-within-shadow-006.html.ini @@ -1,2 +1,2 @@ [focus-within-shadow-006.html] - expected: CRASH + expected: FAIL diff --git a/tests/wpt/meta/css/selectors/i18n/lang-pseudo-class-across-shadow-boundaries.html.ini b/tests/wpt/meta/css/selectors/i18n/lang-pseudo-class-across-shadow-boundaries.html.ini index ea34cadc7ee..f2f324e2968 100644 --- a/tests/wpt/meta/css/selectors/i18n/lang-pseudo-class-across-shadow-boundaries.html.ini +++ b/tests/wpt/meta/css/selectors/i18n/lang-pseudo-class-across-shadow-boundaries.html.ini @@ -1,2 +1,2 @@ [lang-pseudo-class-across-shadow-boundaries.html] - expected: CRASH + expected: FAIL diff --git a/tests/wpt/meta/css/selectors/is-where-shadow.html.ini b/tests/wpt/meta/css/selectors/is-where-shadow.html.ini index f92f34dac22..70220f33018 100644 --- a/tests/wpt/meta/css/selectors/is-where-shadow.html.ini +++ b/tests/wpt/meta/css/selectors/is-where-shadow.html.ini @@ -1,2 +1,9 @@ [is-where-shadow.html] - expected: CRASH + [:is() inside :host()] + expected: FAIL + + [:is() inside :host-context()] + expected: FAIL + + [:is() inside ::slotted()] + expected: FAIL diff --git a/tests/wpt/meta/html/canvas/element/2d.text-outside-of-the-flat-tree.html.ini b/tests/wpt/meta/html/canvas/element/2d.text-outside-of-the-flat-tree.html.ini index ef002111c84..a41bcb75d55 100644 --- a/tests/wpt/meta/html/canvas/element/2d.text-outside-of-the-flat-tree.html.ini +++ b/tests/wpt/meta/html/canvas/element/2d.text-outside-of-the-flat-tree.html.ini @@ -1,2 +1,2 @@ [2d.text-outside-of-the-flat-tree.html] - expected: CRASH + expected: PASS diff --git a/tests/wpt/meta/html/dom/elements/global-attributes/dir-auto-dynamic-changes.window.js.ini b/tests/wpt/meta/html/dom/elements/global-attributes/dir-auto-dynamic-changes.window.js.ini index 66060b866c4..dcaaf38491c 100644 --- a/tests/wpt/meta/html/dom/elements/global-attributes/dir-auto-dynamic-changes.window.js.ini +++ b/tests/wpt/meta/html/dom/elements/global-attributes/dir-auto-dynamic-changes.window.js.ini @@ -1,5 +1,5 @@ [dir-auto-dynamic-changes.window.html] - expected: CRASH + expected: OK [dynamic insertion of RTL text in a child element] expected: FAIL diff --git a/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-01.html.ini b/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-01.html.ini index bd6fd2b0e33..cc76a05c1d8 100644 --- a/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-01.html.ini +++ b/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-01.html.ini @@ -1,2 +1,2 @@ [dir-shadow-01.html] - expected: CRASH + expected: FAIL diff --git a/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-02.html.ini b/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-02.html.ini index dd377d62db8..d83ab8db3b9 100644 --- a/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-02.html.ini +++ b/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-02.html.ini @@ -1,2 +1,2 @@ [dir-shadow-02.html] - expected: CRASH + expected: FAIL diff --git a/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-03.html.ini b/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-03.html.ini index 26e6aa27f78..341d054ebbc 100644 --- a/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-03.html.ini +++ b/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-03.html.ini @@ -1,2 +1,2 @@ [dir-shadow-03.html] - expected: CRASH + expected: FAIL diff --git a/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-04.html.ini b/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-04.html.ini index 33bd75634fc..d34ae8710b2 100644 --- a/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-04.html.ini +++ b/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-04.html.ini @@ -1,2 +1,2 @@ [dir-shadow-04.html] - expected: CRASH + expected: FAIL diff --git a/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-05.html.ini b/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-05.html.ini index efe96493579..c80d7307d57 100644 --- a/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-05.html.ini +++ b/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-05.html.ini @@ -1,2 +1,2 @@ [dir-shadow-05.html] - expected: CRASH + expected: FAIL diff --git a/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-06.html.ini b/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-06.html.ini index 60c9a99ea1b..40d08e09e38 100644 --- a/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-06.html.ini +++ b/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-06.html.ini @@ -1,2 +1,2 @@ [dir-shadow-06.html] - expected: CRASH + expected: FAIL diff --git a/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-07.html.ini b/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-07.html.ini index 6f8ac74943b..8b118b20ad7 100644 --- a/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-07.html.ini +++ b/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-07.html.ini @@ -1,2 +1,2 @@ [dir-shadow-07.html] - expected: CRASH + expected: FAIL diff --git a/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-08.html.ini b/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-08.html.ini index c96870d6fd6..927891eb7e0 100644 --- a/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-08.html.ini +++ b/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-08.html.ini @@ -1,2 +1,2 @@ [dir-shadow-08.html] - expected: CRASH + expected: FAIL diff --git a/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-09.html.ini b/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-09.html.ini index d79d8ff644b..53ac23518f6 100644 --- a/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-09.html.ini +++ b/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-09.html.ini @@ -1,2 +1,2 @@ [dir-shadow-09.html] - expected: CRASH + expected: FAIL diff --git a/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-10.html.ini b/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-10.html.ini index 87bad4294ac..9e6f6f536c0 100644 --- a/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-10.html.ini +++ b/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-10.html.ini @@ -1,2 +1,2 @@ [dir-shadow-10.html] - expected: CRASH + expected: FAIL diff --git a/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-11.html.ini b/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-11.html.ini index 122163ab5e4..69ea943cfa8 100644 --- a/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-11.html.ini +++ b/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-11.html.ini @@ -1,2 +1,2 @@ [dir-shadow-11.html] - expected: CRASH + expected: FAIL diff --git a/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-12.html.ini b/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-12.html.ini index dfc1837aa06..cb9af7df593 100644 --- a/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-12.html.ini +++ b/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-12.html.ini @@ -1,2 +1,2 @@ [dir-shadow-12.html] - expected: CRASH + expected: FAIL diff --git a/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-31.html.ini b/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-31.html.ini index 698c82e7c61..052af599162 100644 --- a/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-31.html.ini +++ b/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-31.html.ini @@ -1,2 +1,2 @@ [dir-shadow-31.html] - expected: CRASH + expected: FAIL diff --git a/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-35.html.ini b/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-35.html.ini index 40d4430c54a..4b931e6b885 100644 --- a/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-35.html.ini +++ b/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-35.html.ini @@ -1,2 +1,2 @@ [dir-shadow-35.html] - expected: CRASH + expected: FAIL diff --git a/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-41.html.ini b/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-41.html.ini index d7d12becf31..75cf38f059b 100644 --- a/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-41.html.ini +++ b/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-41.html.ini @@ -1,2 +1,2 @@ [dir-shadow-41.html] - expected: CRASH + expected: FAIL diff --git a/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-42.html.ini b/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-42.html.ini index d7c05be42f0..1a4b5035cc0 100644 --- a/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-42.html.ini +++ b/tests/wpt/meta/html/dom/elements/global-attributes/dir-shadow-42.html.ini @@ -1,2 +1,2 @@ [dir-shadow-42.html] - expected: CRASH + expected: FAIL diff --git a/tests/wpt/meta/html/dom/elements/global-attributes/dir-slots-directionality.html.ini b/tests/wpt/meta/html/dom/elements/global-attributes/dir-slots-directionality.html.ini index 856415a2a92..cef48318994 100644 --- a/tests/wpt/meta/html/dom/elements/global-attributes/dir-slots-directionality.html.ini +++ b/tests/wpt/meta/html/dom/elements/global-attributes/dir-slots-directionality.html.ini @@ -1,5 +1,5 @@ [dir-slots-directionality.html] - expected: CRASH + expected: OK [Slots: Directionality: dir=rtl on slot] expected: FAIL diff --git a/tests/wpt/meta/html/editing/editing-0/contenteditable/contentEditable-slotted-inherit.html.ini b/tests/wpt/meta/html/editing/editing-0/contenteditable/contentEditable-slotted-inherit.html.ini index 0a668792c69..8eba625c7d4 100644 --- a/tests/wpt/meta/html/editing/editing-0/contenteditable/contentEditable-slotted-inherit.html.ini +++ b/tests/wpt/meta/html/editing/editing-0/contenteditable/contentEditable-slotted-inherit.html.ini @@ -1,5 +1,5 @@ [contentEditable-slotted-inherit.html] - expected: CRASH + expected: OK [Slotted child of contenteditable host should be editable - slot direct child of shadow root] expected: FAIL diff --git a/tests/wpt/meta/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-in-slot.html.ini b/tests/wpt/meta/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-in-slot.html.ini index d4875571e44..4ed1ce5159e 100644 --- a/tests/wpt/meta/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-in-slot.html.ini +++ b/tests/wpt/meta/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-in-slot.html.ini @@ -1,2 +1,2 @@ [legend-in-slot.html] - expected: CRASH + expected: FAIL diff --git a/tests/wpt/meta/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/sticky-content-crash.html.ini b/tests/wpt/meta/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/sticky-content-crash.html.ini index 5897e02b025..8a2f6a31db7 100644 --- a/tests/wpt/meta/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/sticky-content-crash.html.ini +++ b/tests/wpt/meta/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/sticky-content-crash.html.ini @@ -1,2 +1,2 @@ [sticky-content-crash.html] - expected: CRASH + expected: PASS diff --git a/tests/wpt/meta/html/semantics/interactive-elements/the-dialog-element/showmodal-in-shadow-crash.html.ini b/tests/wpt/meta/html/semantics/interactive-elements/the-dialog-element/showmodal-in-shadow-crash.html.ini deleted file mode 100644 index a98363d97c3..00000000000 --- a/tests/wpt/meta/html/semantics/interactive-elements/the-dialog-element/showmodal-in-shadow-crash.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[showmodal-in-shadow-crash.html] - expected: CRASH diff --git a/tests/wpt/meta/selection/shadow-dom/tentative/Selection-getComposedRanges-dom-mutations-removal.html.ini b/tests/wpt/meta/selection/shadow-dom/tentative/Selection-getComposedRanges-dom-mutations-removal.html.ini index 0465cdf5000..e47d5cad181 100644 --- a/tests/wpt/meta/selection/shadow-dom/tentative/Selection-getComposedRanges-dom-mutations-removal.html.ini +++ b/tests/wpt/meta/selection/shadow-dom/tentative/Selection-getComposedRanges-dom-mutations-removal.html.ini @@ -1,5 +1,5 @@ [Selection-getComposedRanges-dom-mutations-removal.html?mode=open] - expected: CRASH + expected: OK [Range is fully in shadow tree. Removing shadow host collapses composed StaticRange. Note it does not update previously returned composed StaticRange.] expected: FAIL @@ -17,7 +17,7 @@ [Selection-getComposedRanges-dom-mutations-removal.html?mode=closed] - expected: CRASH + expected: OK [Range is fully in shadow tree. Removing shadow host collapses composed StaticRange. Note it does not update previously returned composed StaticRange.] expected: FAIL diff --git a/tests/wpt/meta/selection/shadow-dom/tentative/Selection-later-become-slotted-content.html.ini b/tests/wpt/meta/selection/shadow-dom/tentative/Selection-later-become-slotted-content.html.ini index e1fc94e4e61..258b3e1d4ff 100644 --- a/tests/wpt/meta/selection/shadow-dom/tentative/Selection-later-become-slotted-content.html.ini +++ b/tests/wpt/meta/selection/shadow-dom/tentative/Selection-later-become-slotted-content.html.ini @@ -1,4 +1,4 @@ [Selection-later-become-slotted-content.html] - expected: CRASH + expected: OK [test to select a light DOM element and it becomes a slotted content after the selection] expected: FAIL diff --git a/tests/wpt/meta/shadow-dom/declarative/declarative-after-attachshadow.html.ini b/tests/wpt/meta/shadow-dom/declarative/declarative-after-attachshadow.html.ini index dc77d39f10a..80e5b44150b 100644 --- a/tests/wpt/meta/shadow-dom/declarative/declarative-after-attachshadow.html.ini +++ b/tests/wpt/meta/shadow-dom/declarative/declarative-after-attachshadow.html.ini @@ -1,2 +1,3 @@ [declarative-after-attachshadow.html] - expected: CRASH + [Declarative Shadow DOM: declarative shadow should fail if attachShadow() already called] + expected: FAIL diff --git a/tests/wpt/meta/shadow-dom/declarative/declarative-shadow-dom-repeats.html.ini b/tests/wpt/meta/shadow-dom/declarative/declarative-shadow-dom-repeats.html.ini index 2e607f671d1..c6200e5d994 100644 --- a/tests/wpt/meta/shadow-dom/declarative/declarative-shadow-dom-repeats.html.ini +++ b/tests/wpt/meta/shadow-dom/declarative/declarative-shadow-dom-repeats.html.ini @@ -1,2 +1,9 @@ [declarative-shadow-dom-repeats.html] - expected: CRASH + [Repeated declarative shadow roots keep only the first] + expected: FAIL + + [Calling attachShadow() on declarative shadow root must match mode] + expected: FAIL + + [Calling attachShadow() on declarative shadow root must match all parameters] + expected: FAIL diff --git a/tests/wpt/meta/shadow-dom/declarative/innerhtml-on-ordinary-template.html.ini b/tests/wpt/meta/shadow-dom/declarative/innerhtml-on-ordinary-template.html.ini index 2fa94a52b74..55cf7e0ec37 100644 --- a/tests/wpt/meta/shadow-dom/declarative/innerhtml-on-ordinary-template.html.ini +++ b/tests/wpt/meta/shadow-dom/declarative/innerhtml-on-ordinary-template.html.ini @@ -1,2 +1,3 @@ [innerhtml-on-ordinary-template.html] - expected: CRASH + [Declarative Shadow DOM: innerHTML should work on