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
- [