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

@ -2286,6 +2286,7 @@ impl Document {
atom!("unload"),
EventBubbles::Bubbles,
EventCancelable::Cancelable,
CanGc::note(),
);
event.set_trusted(true);
let event_target = self.window.upcast::<EventTarget>();
@ -2328,7 +2329,7 @@ impl Document {
}
// https://html.spec.whatwg.org/multipage/#the-end
pub fn maybe_queue_document_completion(&self) {
pub fn maybe_queue_document_completion(&self, can_gc: CanGc) {
// https://html.spec.whatwg.org/multipage/#delaying-load-events-mode
let is_in_delaying_load_events_mode = match self.window.undiscarded_window_proxy() {
Some(window_proxy) => window_proxy.is_delaying_load_events_mode(),
@ -2378,6 +2379,7 @@ impl Document {
atom!("load"),
EventBubbles::DoesNotBubble,
EventCancelable::NotCancelable,
can_gc,
);
event.set_trusted(true);
@ -2658,7 +2660,7 @@ impl Document {
for iframe in self.iter_iframes() {
if let Some(document) = iframe.GetContentDocument() {
// TODO: abort the active documents of every child browsing context.
document.abort(CanGc::note());
document.abort(can_gc);
// TODO: salvageable flag.
}
}
@ -4590,9 +4592,10 @@ impl DocumentMethods for Document {
))),
// FIXME(#25136): devicemotionevent, deviceorientationevent
// FIXME(#7529): dragevent
"events" | "event" | "htmlevents" | "svgevents" => {
Ok(Event::new_uninitialized(self.window.upcast()))
},
"events" | "event" | "htmlevents" | "svgevents" => Ok(Event::new_uninitialized(
self.window.upcast(),
CanGc::note(),
)),
"focusevent" => Ok(DomRoot::upcast(FocusEvent::new_uninitialized(&self.window))),
"hashchangeevent" => Ok(DomRoot::upcast(HashChangeEvent::new_uninitialized(
&self.window,