aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/htmlmediaelement.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom/htmlmediaelement.rs')
-rw-r--r--components/script/dom/htmlmediaelement.rs103
1 files changed, 47 insertions, 56 deletions
diff --git a/components/script/dom/htmlmediaelement.rs b/components/script/dom/htmlmediaelement.rs
index 5b6727bf95a..a75d2c7b8dc 100644
--- a/components/script/dom/htmlmediaelement.rs
+++ b/components/script/dom/htmlmediaelement.rs
@@ -548,8 +548,7 @@ impl HTMLMediaElement {
// Step 2.3.
let this = Trusted::new(self);
let generation_id = self.generation_id.get();
- let _ = self
- .owner_window()
+ self.owner_window()
.task_manager()
.media_element_task_source()
.queue(task!(internal_pause_steps: move || {
@@ -595,9 +594,7 @@ impl HTMLMediaElement {
// Step 2.
let this = Trusted::new(self);
let generation_id = self.generation_id.get();
- // FIXME(nox): Why are errors silenced here?
- let _ = self
- .owner_window()
+ self.owner_window()
.task_manager()
.media_element_task_source()
.queue(task!(notify_about_playing: move || {
@@ -632,10 +629,9 @@ impl HTMLMediaElement {
return;
}
- let task_source = self
- .owner_window()
- .task_manager()
- .media_element_task_source();
+ let owner_window = self.owner_window();
+ let task_manager = owner_window.task_manager();
+ let task_source = task_manager.media_element_task_source();
// Step 1.
match (old_ready_state, ready_state) {
@@ -648,8 +644,7 @@ impl HTMLMediaElement {
if !self.fired_loadeddata_event.get() {
self.fired_loadeddata_event.set(true);
let this = Trusted::new(self);
- // FIXME(nox): Why are errors silenced here?
- let _ = task_source.queue(task!(media_reached_current_data: move || {
+ task_source.queue(task!(media_reached_current_data: move || {
let this = this.root();
this.upcast::<EventTarget>().fire_event(atom!("loadeddata"), CanGc::note());
this.delay_load_event(false, CanGc::note());
@@ -942,13 +937,11 @@ impl HTMLMediaElement {
// Step 4.remote.1.3.
let this = Trusted::new(self);
- window
- .task_manager()
- .media_element_task_source()
- .queue(task!(set_media_delay_load_event_flag_to_false: move || {
+ window.task_manager().media_element_task_source().queue(
+ task!(set_media_delay_load_event_flag_to_false: move || {
this.root().delay_load_event(false, CanGc::note());
- }))
- .unwrap();
+ }),
+ );
// Steps 4.remote.1.4.
// FIXME(nox): Somehow we should wait for the task from previous
@@ -1004,9 +997,7 @@ impl HTMLMediaElement {
let this = Trusted::new(self);
let generation_id = self.generation_id.get();
self.take_pending_play_promises(Err(Error::NotSupported));
- // FIXME(nox): Why are errors silenced here?
- let _ = self
- .owner_window()
+ self.owner_window()
.task_manager()
.media_element_task_source()
.queue(task!(dedicated_media_source_failure_steps: move || {
@@ -1105,10 +1096,9 @@ impl HTMLMediaElement {
self.fulfill_in_flight_play_promises(|| ());
}
- let task_source = self
- .owner_window()
- .task_manager()
- .media_element_task_source();
+ let window = self.owner_window();
+ let task_manager = window.task_manager();
+ let task_source = task_manager.media_element_task_source();
// Step 5.
let network_state = self.network_state.get();
@@ -1314,14 +1304,16 @@ impl HTMLMediaElement {
self.time_marches_on();
// Step 16.
- let task_source = self
- .owner_window()
- .task_manager()
- .media_element_task_source();
- task_source.queue_simple_event(self.upcast(), atom!("timeupdate"));
+ let window = self.owner_window();
+ let task_manager = window.task_manager();
+ task_manager
+ .media_element_task_source()
+ .queue_simple_event(self.upcast(), atom!("timeupdate"));
// Step 17.
- task_source.queue_simple_event(self.upcast(), atom!("seeked"));
+ task_manager
+ .media_element_task_source()
+ .queue_simple_event(self.upcast(), atom!("seeked"));
}
/// <https://html.spec.whatwg.org/multipage/#poster-frame>
@@ -1386,18 +1378,19 @@ impl HTMLMediaElement {
*self.player.borrow_mut() = Some(player);
let trusted_node = Trusted::new(self);
- let task_source = window.task_manager().media_element_task_source();
+ let task_source = window
+ .task_manager()
+ .media_element_task_source()
+ .to_sendable();
ROUTER.add_typed_route(
action_receiver,
Box::new(move |message| {
let event = message.unwrap();
trace!("Player event {:?}", event);
let this = trusted_node.clone();
- if let Err(err) = task_source.queue(task!(handle_player_event: move || {
+ task_source.queue(task!(handle_player_event: move || {
this.root().handle_player_event(&event, CanGc::note());
- })) {
- warn!("Could not queue player event handler task {:?}", err);
- }
+ }));
}),
);
@@ -1424,13 +1417,16 @@ impl HTMLMediaElement {
if let Some(image_receiver) = image_receiver {
let trusted_node = Trusted::new(self);
- let task_source = window.task_manager().media_element_task_source();
+ let task_source = window
+ .task_manager()
+ .media_element_task_source()
+ .to_sendable();
ROUTER.add_typed_route(
image_receiver.to_ipc_receiver(),
Box::new(move |message| {
let msg = message.unwrap();
let this = trusted_node.clone();
- if let Err(err) = task_source.queue(task!(handle_glplayer_message: move || {
+ task_source.queue(task!(handle_glplayer_message: move || {
trace!("GLPlayer message {:?}", msg);
let video_renderer = this.root().video_renderer.clone();
@@ -1454,9 +1450,7 @@ impl HTMLMediaElement {
},
_ => (),
}
- })) {
- warn!("Could not queue GL player message handler task {:?}", err);
- }
+ }));
}),
);
}
@@ -1506,7 +1500,7 @@ impl HTMLMediaElement {
// Step 3.
let this = Trusted::new(self);
- let _ = self.owner_window().task_manager().media_element_task_source().queue(
+ self.owner_window().task_manager().media_element_task_source().queue(
task!(reaches_the_end_steps: move || {
let this = this.root();
// Step 3.1.
@@ -2216,10 +2210,9 @@ impl HTMLMediaElementMethods<crate::DomTypeHolder> for HTMLMediaElement {
let state = self.ready_state.get();
- let task_source = self
- .owner_window()
- .task_manager()
- .media_element_task_source();
+ let owner_window = self.owner_window();
+ let task_manager = owner_window.task_manager();
+ let task_source = task_manager.media_element_task_source();
if self.Paused() {
// Step 6.1.
self.paused.set(false);
@@ -2249,18 +2242,16 @@ impl HTMLMediaElementMethods<crate::DomTypeHolder> for HTMLMediaElement {
self.take_pending_play_promises(Ok(()));
let this = Trusted::new(self);
let generation_id = self.generation_id.get();
- task_source
- .queue(task!(resolve_pending_play_promises: move || {
- let this = this.root();
- if generation_id != this.generation_id.get() {
- return;
- }
+ task_source.queue(task!(resolve_pending_play_promises: move || {
+ let this = this.root();
+ if generation_id != this.generation_id.get() {
+ return;
+ }
- this.fulfill_in_flight_play_promises(|| {
- this.play_media();
- });
- }))
- .unwrap();
+ this.fulfill_in_flight_play_promises(|| {
+ this.play_media();
+ });
+ }));
}
// Step 8.