Add CanGc as arguments in methods in Attr and Node (#36371)

Add CanGc as argument to methods in `Attr` and `Node`.

Addressed part of https://github.com/servo/servo/issues/34573.

---

- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes do not require tests because they are a refactor.

Signed-off-by: Yerkebulan Tulibergenov <yerkebulan@gmail.com>
This commit is contained in:
Yerkebulan Tulibergenov 2025-04-05 23:27:59 -07:00 committed by GitHub
parent bd43b78735
commit 6898eae61e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
20 changed files with 137 additions and 111 deletions

View file

@ -596,7 +596,7 @@ impl RangeMethods<crate::DomTypeHolder> for Range {
.unwrap();
let clone = cdata.clone_with_data(data, &start_node.owner_doc(), can_gc);
// Step 4.3.
fragment.upcast::<Node>().AppendChild(&clone)?;
fragment.upcast::<Node>().AppendChild(&clone, can_gc)?;
// Step 4.4
return Ok(fragment);
}
@ -619,12 +619,12 @@ impl RangeMethods<crate::DomTypeHolder> for Range {
.unwrap();
let clone = cdata.clone_with_data(data, &start_node.owner_doc(), can_gc);
// Step 13.3.
fragment.upcast::<Node>().AppendChild(&clone)?;
fragment.upcast::<Node>().AppendChild(&clone, can_gc)?;
} else {
// Step 14.1.
let clone = child.CloneNode(/* deep */ false, can_gc)?;
// Step 14.2.
fragment.upcast::<Node>().AppendChild(&clone)?;
fragment.upcast::<Node>().AppendChild(&clone, can_gc)?;
// Step 14.3.
let subrange = Range::new(
&clone.owner_doc(),
@ -637,7 +637,7 @@ impl RangeMethods<crate::DomTypeHolder> for Range {
// Step 14.4.
let subfragment = subrange.CloneContents(can_gc)?;
// Step 14.5.
clone.AppendChild(subfragment.upcast())?;
clone.AppendChild(subfragment.upcast(), can_gc)?;
}
}
@ -646,7 +646,7 @@ impl RangeMethods<crate::DomTypeHolder> for Range {
// Step 15.1.
let clone = child.CloneNode(/* deep */ true, can_gc)?;
// Step 15.2.
fragment.upcast::<Node>().AppendChild(&clone)?;
fragment.upcast::<Node>().AppendChild(&clone, can_gc)?;
}
if let Some(child) = last_partially_contained_child {
@ -657,19 +657,19 @@ impl RangeMethods<crate::DomTypeHolder> for Range {
let data = cdata.SubstringData(0, end_offset).unwrap();
let clone = cdata.clone_with_data(data, &start_node.owner_doc(), can_gc);
// Step 16.3.
fragment.upcast::<Node>().AppendChild(&clone)?;
fragment.upcast::<Node>().AppendChild(&clone, can_gc)?;
} else {
// Step 17.1.
let clone = child.CloneNode(/* deep */ false, can_gc)?;
// Step 17.2.
fragment.upcast::<Node>().AppendChild(&clone)?;
fragment.upcast::<Node>().AppendChild(&clone, can_gc)?;
// Step 17.3.
let subrange =
Range::new(&clone.owner_doc(), &child, 0, &end_node, end_offset, can_gc);
// Step 17.4.
let subfragment = subrange.CloneContents(can_gc)?;
// Step 17.5.
clone.AppendChild(subfragment.upcast())?;
clone.AppendChild(subfragment.upcast(), can_gc)?;
}
}
@ -705,7 +705,7 @@ impl RangeMethods<crate::DomTypeHolder> for Range {
.unwrap()
.SetData(text.unwrap());
// Step 4.3.
fragment.upcast::<Node>().AppendChild(&clone)?;
fragment.upcast::<Node>().AppendChild(&clone, can_gc)?;
// Step 4.4.
end_data.ReplaceData(start_offset, end_offset - start_offset, DOMString::new())?;
// Step 4.5.
@ -749,7 +749,7 @@ impl RangeMethods<crate::DomTypeHolder> for Range {
.unwrap()
.SetData(text.unwrap());
// Step 15.3.
fragment.upcast::<Node>().AppendChild(&clone)?;
fragment.upcast::<Node>().AppendChild(&clone, can_gc)?;
// Step 15.4.
start_data.ReplaceData(
start_offset,
@ -760,7 +760,7 @@ impl RangeMethods<crate::DomTypeHolder> for Range {
// Step 16.1.
let clone = child.CloneNode(/* deep */ false, can_gc)?;
// Step 16.2.
fragment.upcast::<Node>().AppendChild(&clone)?;
fragment.upcast::<Node>().AppendChild(&clone, can_gc)?;
// Step 16.3.
let subrange = Range::new(
&clone.owner_doc(),
@ -773,13 +773,13 @@ impl RangeMethods<crate::DomTypeHolder> for Range {
// Step 16.4.
let subfragment = subrange.ExtractContents(can_gc)?;
// Step 16.5.
clone.AppendChild(subfragment.upcast())?;
clone.AppendChild(subfragment.upcast(), can_gc)?;
}
}
// Step 17.
for child in contained_children {
fragment.upcast::<Node>().AppendChild(&child)?;
fragment.upcast::<Node>().AppendChild(&child, can_gc)?;
}
if let Some(child) = last_partially_contained_child {
@ -794,21 +794,21 @@ impl RangeMethods<crate::DomTypeHolder> for Range {
.unwrap()
.SetData(text.unwrap());
// Step 18.3.
fragment.upcast::<Node>().AppendChild(&clone)?;
fragment.upcast::<Node>().AppendChild(&clone, can_gc)?;
// Step 18.4.
end_data.ReplaceData(0, end_offset, DOMString::new())?;
} else {
// Step 19.1.
let clone = child.CloneNode(/* deep */ false, can_gc)?;
// Step 19.2.
fragment.upcast::<Node>().AppendChild(&clone)?;
fragment.upcast::<Node>().AppendChild(&clone, can_gc)?;
// Step 19.3.
let subrange =
Range::new(&clone.owner_doc(), &child, 0, &end_node, end_offset, can_gc);
// Step 19.4.
let subfragment = subrange.ExtractContents(can_gc)?;
// Step 19.5.
clone.AppendChild(subfragment.upcast())?;
clone.AppendChild(subfragment.upcast(), can_gc)?;
}
}
@ -856,7 +856,7 @@ impl RangeMethods<crate::DomTypeHolder> for Range {
},
_ => {
// Steps 4-5.
let child = start_node.ChildNodes().Item(start_offset);
let child = start_node.ChildNodes(can_gc).Item(start_offset);
(child, DomRoot::from_ref(&*start_node))
},
};
@ -1029,7 +1029,7 @@ impl RangeMethods<crate::DomTypeHolder> for Range {
self.InsertNode(new_parent, can_gc)?;
// Step 6.
new_parent.AppendChild(fragment.upcast())?;
new_parent.AppendChild(fragment.upcast(), can_gc)?;
// Step 7.
self.SelectNode(new_parent)