From df81debffcdf2d73bfbc936392236fd82d61aeac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fernando=20Jim=C3=A9nez=20Moreno?= Date: Mon, 28 Jan 2019 17:33:24 +0100 Subject: [PATCH] Set connected flag not only on elements --- components/script/dom/node.rs | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs index 9a248e7263f..25a0c4625e8 100644 --- a/components/script/dom/node.rs +++ b/components/script/dom/node.rs @@ -279,6 +279,7 @@ impl Node { let parent_in_doc = self.is_in_doc(); let parent_in_shadow_tree = self.is_in_shadow_tree(); + let parent_is_connected = self.is_connected(); for node in new_child.traverse_preorder() { if parent_in_shadow_tree { if let Some(shadow_root) = self.downcast::() { @@ -287,11 +288,12 @@ impl Node { node.set_owner_shadow_root(&*self.owner_shadow_root()); } } - let is_connected = if let Some(element) = node.downcast::() { - element.is_connected() - } else { - false - }; + let mut is_connected = parent_is_connected; + if !is_connected { + if let Some(element) = node.downcast::() { + is_connected = element.is_connected(); + } + } node.set_flag(NodeFlags::IS_IN_DOC, parent_in_doc); node.set_flag(NodeFlags::IS_IN_SHADOW_TREE, parent_in_shadow_tree); node.set_flag(NodeFlags::IS_CONNECTED, is_connected);