More CanGc fixes: Range, Event, gpu error, Header (#33774)

* Propagate CanGc parameter in Range

Signed-off-by: webbeef <me@webbeef.org>

* Propagate CanGc parameter in gpu code and dependencies

Signed-off-by: webbeef <me@webbeef.org>

* Propagate CanGc parameter in Header and dependencies

Signed-off-by: webbeef <me@webbeef.org>

* Propagate CanGc parameter in Event and dependencies

Signed-off-by: webbeef <me@webbeef.org>

* Propagate CanGc parameter in rtcdatachannel

Signed-off-by: webbeef <me@webbeef.org>

* Propagate CanGc parameter in servoparser

Signed-off-by: webbeef <me@webbeef.org>

---------

Signed-off-by: webbeef <me@webbeef.org>
This commit is contained in:
webbeef 2024-10-10 08:51:22 -07:00 committed by GitHub
parent 8c56cbdab2
commit f9a06d62a2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
17 changed files with 92 additions and 85 deletions

View file

@ -602,7 +602,7 @@ impl RangeMethods for Range {
fragment.upcast::<Node>().AppendChild(&clone)?;
} else {
// Step 14.1.
let clone = child.CloneNode(/* deep */ false, CanGc::note())?;
let clone = child.CloneNode(/* deep */ false, can_gc)?;
// Step 14.2.
fragment.upcast::<Node>().AppendChild(&clone)?;
// Step 14.3.
@ -615,7 +615,7 @@ impl RangeMethods for Range {
can_gc,
);
// Step 14.4.
let subfragment = subrange.CloneContents(CanGc::note())?;
let subfragment = subrange.CloneContents(can_gc)?;
// Step 14.5.
clone.AppendChild(subfragment.upcast())?;
}
@ -624,7 +624,7 @@ impl RangeMethods for Range {
// Step 15.
for child in contained_children {
// Step 15.1.
let clone = child.CloneNode(/* deep */ true, CanGc::note())?;
let clone = child.CloneNode(/* deep */ true, can_gc)?;
// Step 15.2.
fragment.upcast::<Node>().AppendChild(&clone)?;
}
@ -640,20 +640,14 @@ impl RangeMethods for Range {
fragment.upcast::<Node>().AppendChild(&clone)?;
} else {
// Step 17.1.
let clone = child.CloneNode(/* deep */ false, CanGc::note())?;
let clone = child.CloneNode(/* deep */ false, can_gc)?;
// Step 17.2.
fragment.upcast::<Node>().AppendChild(&clone)?;
// Step 17.3.
let subrange = Range::new(
&clone.owner_doc(),
&child,
0,
&end_node,
end_offset,
CanGc::note(),
);
let subrange =
Range::new(&clone.owner_doc(), &child, 0, &end_node, end_offset, can_gc);
// Step 17.4.
let subfragment = subrange.CloneContents(CanGc::note())?;
let subfragment = subrange.CloneContents(can_gc)?;
// Step 17.5.
clone.AppendChild(subfragment.upcast())?;
}
@ -683,7 +677,7 @@ impl RangeMethods for Range {
if end_node == start_node {
if let Some(end_data) = end_node.downcast::<CharacterData>() {
// Step 4.1.
let clone = end_node.CloneNode(/* deep */ true, CanGc::note())?;
let clone = end_node.CloneNode(/* deep */ true, can_gc)?;
// Step 4.2.
let text = end_data.SubstringData(start_offset, end_offset - start_offset);
clone
@ -727,7 +721,7 @@ impl RangeMethods for Range {
if let Some(start_data) = child.downcast::<CharacterData>() {
assert!(child == start_node);
// Step 15.1.
let clone = start_node.CloneNode(/* deep */ true, CanGc::note())?;
let clone = start_node.CloneNode(/* deep */ true, can_gc)?;
// Step 15.2.
let text = start_data.SubstringData(start_offset, start_node.len() - start_offset);
clone
@ -744,7 +738,7 @@ impl RangeMethods for Range {
)?;
} else {
// Step 16.1.
let clone = child.CloneNode(/* deep */ false, CanGc::note())?;
let clone = child.CloneNode(/* deep */ false, can_gc)?;
// Step 16.2.
fragment.upcast::<Node>().AppendChild(&clone)?;
// Step 16.3.
@ -757,7 +751,7 @@ impl RangeMethods for Range {
can_gc,
);
// Step 16.4.
let subfragment = subrange.ExtractContents(CanGc::note())?;
let subfragment = subrange.ExtractContents(can_gc)?;
// Step 16.5.
clone.AppendChild(subfragment.upcast())?;
}
@ -772,7 +766,7 @@ impl RangeMethods for Range {
if let Some(end_data) = child.downcast::<CharacterData>() {
assert!(child == end_node);
// Step 18.1.
let clone = end_node.CloneNode(/* deep */ true, CanGc::note())?;
let clone = end_node.CloneNode(/* deep */ true, can_gc)?;
// Step 18.2.
let text = end_data.SubstringData(0, end_offset);
clone
@ -785,20 +779,14 @@ impl RangeMethods for Range {
end_data.ReplaceData(0, end_offset, DOMString::new())?;
} else {
// Step 19.1.
let clone = child.CloneNode(/* deep */ false, CanGc::note())?;
let clone = child.CloneNode(/* deep */ false, can_gc)?;
// Step 19.2.
fragment.upcast::<Node>().AppendChild(&clone)?;
// Step 19.3.
let subrange = Range::new(
&clone.owner_doc(),
&child,
0,
&end_node,
end_offset,
CanGc::note(),
);
let subrange =
Range::new(&clone.owner_doc(), &child, 0, &end_node, end_offset, can_gc);
// Step 19.4.
let subfragment = subrange.ExtractContents(CanGc::note())?;
let subfragment = subrange.ExtractContents(can_gc)?;
// Step 19.5.
clone.AppendChild(subfragment.upcast())?;
}