diff --git a/components/script/dom/htmlmediaelement.rs b/components/script/dom/htmlmediaelement.rs index d14afa7ac28..057f0ef0512 100644 --- a/components/script/dom/htmlmediaelement.rs +++ b/components/script/dom/htmlmediaelement.rs @@ -171,24 +171,21 @@ impl HTMLMediaElement { // TODO(nox): Take pending play promises and let promises be the result. // Step 2. + let target = Trusted::new(self.upcast::()); let window = window_from_node(self); // FIXME(nox): Why are errors silenced here? let _ = window.dom_manipulation_task_source().queue( - box NotifyAboutPlayingTask(Trusted::new(self.upcast())), - window.upcast(), - ); - struct NotifyAboutPlayingTask(Trusted); - impl Task for NotifyAboutPlayingTask { - fn run(self: Box) { - let target = self.0.root(); + box task!(notify_about_playing: move || { + let target = target.root(); // Step 2.1. target.fire_event(atom!("playing")); // Step 2.2. // FIXME(nox): Resolve pending play promises with promises. - } - } + }), + window.upcast(), + ); } // https://html.spec.whatwg.org/multipage/#ready-states