mirror of
https://github.com/servo/servo.git
synced 2025-08-06 06:00:15 +01:00
Shutdown player when HTMLMediaElement is dropped
This commit is contained in:
parent
7a67443fcb
commit
36825b82f3
8 changed files with 151 additions and 523 deletions
|
@ -1147,15 +1147,16 @@ impl HTMLMediaElement {
|
|||
action_receiver.to_opaque(),
|
||||
Box::new(move |message| {
|
||||
let event: PlayerEvent = message.to().unwrap();
|
||||
trace!("Player event {:?}", event);
|
||||
let this = trusted_node.clone();
|
||||
task_source
|
||||
.queue_with_canceller(
|
||||
task!(handle_player_event: move || {
|
||||
this.root().handle_player_event(&event);
|
||||
}),
|
||||
&canceller,
|
||||
)
|
||||
.unwrap();
|
||||
if let Err(err) = task_source.queue_with_canceller(
|
||||
task!(handle_player_event: move || {
|
||||
this.root().handle_player_event(&event);
|
||||
}),
|
||||
&canceller,
|
||||
) {
|
||||
warn!("Could not queue player event handler task {:?}", err);
|
||||
}
|
||||
}),
|
||||
);
|
||||
|
||||
|
@ -1489,6 +1490,14 @@ impl HTMLMediaElement {
|
|||
}
|
||||
}
|
||||
|
||||
impl Drop for HTMLMediaElement {
|
||||
fn drop(&mut self) {
|
||||
if let Err(err) = self.player.shutdown() {
|
||||
warn!("Error shutting down player {:?}", err);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl HTMLMediaElementMethods for HTMLMediaElement {
|
||||
// https://html.spec.whatwg.org/multipage/#dom-media-networkstate
|
||||
fn NetworkState(&self) -> u16 {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue