Various CanGc fixes in components/script/dom (#33706)

* Propagate 'can_gc' in IFrame DOM code

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

* Propagate 'can_gc' in HTML video and image elements

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

* Propagate 'can_gc' in Blob and dependencies

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

* Leftover can_gc fixes for HTMLMediaElement

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

* Address comment

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

---------

Signed-off-by: webbeef <me@webbeef.org>
This commit is contained in:
webbeef 2024-10-07 19:30:04 -07:00 committed by GitHub
parent 7d931e673a
commit d3c0785d64
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
14 changed files with 67 additions and 42 deletions

View file

@ -923,9 +923,9 @@ impl HTMLMediaElement {
// https://html.spec.whatwg.org/multipage/#concept-media-load-resource
fn resource_fetch_algorithm(&self, resource: Resource, can_gc: CanGc) {
if let Err(e) = self.setup_media_player(&resource, CanGc::note()) {
if let Err(e) = self.setup_media_player(&resource, can_gc) {
eprintln!("Setup media player error {:?}", e);
self.queue_dedicated_media_source_failure_steps(CanGc::note());
self.queue_dedicated_media_source_failure_steps(can_gc);
return;
}
@ -1001,7 +1001,7 @@ impl HTMLMediaElement {
.set_stream(&track.id(), pos == tracks.len() - 1)
.is_err()
{
self.queue_dedicated_media_source_failure_steps(CanGc::note());
self.queue_dedicated_media_source_failure_steps(can_gc);
}
}
},
@ -1188,7 +1188,7 @@ impl HTMLMediaElement {
self.autoplaying.set(true);
// Step 9.
self.invoke_resource_selection_algorithm(CanGc::note());
self.invoke_resource_selection_algorithm(can_gc);
// Step 10.
// FIXME(nox): Stop playback of any previously running media resource.