diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs index 8a879c481ab..4ceb4305ddf 100644 --- a/components/script/dom/node.rs +++ b/components/script/dom/node.rs @@ -2279,9 +2279,15 @@ impl NodeMethods for Node { return shadow_root.Host().upcast::().GetRootNode(options); } } - self.inclusive_ancestors(ShadowIncluding::No) - .last() - .unwrap() + if let Some(shadow_root) = self.rare_data.owner_shadow_root.get() { + DomRoot::from_ref(shadow_root.upcast::()) + } else if self.is_in_doc() { + DomRoot::from_ref(self.owner_doc().upcast::()) + } else { + self.inclusive_ancestors(ShadowIncluding::No) + .last() + .unwrap() + } } // https://dom.spec.whatwg.org/#dom-node-parentnode