diff --git a/components/script/dom/htmlscriptelement.rs b/components/script/dom/htmlscriptelement.rs index 62e3cf68a86..6dd6349b185 100644 --- a/components/script/dom/htmlscriptelement.rs +++ b/components/script/dom/htmlscriptelement.rs @@ -595,6 +595,10 @@ impl HTMLScriptElement { is_js } + pub fn set_parser_inserted(&self, parser_inserted: bool) { + self.parser_inserted.set(parser_inserted); + } + pub fn set_already_started(&self, already_started: bool) { self.already_started.set(already_started); } diff --git a/components/script/dom/range.rs b/components/script/dom/range.rs index c0709f17c7c..8e8b9888b87 100644 --- a/components/script/dom/range.rs +++ b/components/script/dom/range.rs @@ -903,9 +903,9 @@ impl RangeMethods for Range { let node = self.StartContainer(); let element = match node.type_id() { NodeTypeId::Document(_) | NodeTypeId::DocumentFragment => None, - NodeTypeId::Element(_) => Some(node), + NodeTypeId::Element(_) => Some(Root::downcast::(node).unwrap()), NodeTypeId::CharacterData(CharacterDataTypeId::Comment) | - NodeTypeId::CharacterData(CharacterDataTypeId::Text) => node.GetParentNode(), + NodeTypeId::CharacterData(CharacterDataTypeId::Text) => node.GetParentElement(), NodeTypeId::CharacterData(CharacterDataTypeId::ProcessingInstruction) | NodeTypeId::DocumentType => unreachable!(), }; @@ -928,6 +928,7 @@ impl RangeMethods for Range { for node in fragment_node.upcast::().traverse_preorder() { if let Some(script) = node.downcast::() { script.set_already_started(false); + script.set_parser_inserted(false); } } diff --git a/tests/wpt/metadata/domparsing/createContextualFragment.html.ini b/tests/wpt/metadata/domparsing/createContextualFragment.html.ini index 7602299fb12..6f8857f9abf 100644 --- a/tests/wpt/metadata/domparsing/createContextualFragment.html.ini +++ b/tests/wpt/metadata/domparsing/createContextualFragment.html.ini @@ -1,8 +1,5 @@ [createContextualFragment.html] type: testharness - [