aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--components/script/dom/htmlmediaelement.rs67
1 files changed, 43 insertions, 24 deletions
diff --git a/components/script/dom/htmlmediaelement.rs b/components/script/dom/htmlmediaelement.rs
index 3358e74e862..ef96a876356 100644
--- a/components/script/dom/htmlmediaelement.rs
+++ b/components/script/dom/htmlmediaelement.rs
@@ -531,59 +531,78 @@ impl HTMLMediaElement {
// this invokation of the load algorithm.
self.fired_loadeddata_event.set(false);
- // TODO Step 1 (abort resource selection algorithm instances)
+ // Step 1.
+ // FIXME(nox): Abort any already-running instance of the
+ // resource selection algorithm.
- // Step 2
+ // Steps 2-4.
+ // FIXME(nox): Cancel all tasks related to this element and resolve or
+ // reject all pending play promises.
self.generation_id.set(self.generation_id.get() + 1);
- // TODO reject pending play promises
let window = window_from_node(self);
let task_source = window.dom_manipulation_task_source();
- // Step 3
+ // Step 5.
let network_state = self.network_state.get();
if network_state == NetworkState::Loading || network_state == NetworkState::Idle {
- task_source.queue_simple_event(
- self.upcast(),
- atom!("abort"),
- &window,
- );
+ task_source.queue_simple_event(self.upcast(), atom!("abort"), &window);
}
- // Step 4
+ // Step 6.
if network_state != NetworkState::Empty {
- // 4.1
+ // Step 6.1.
task_source.queue_simple_event(self.upcast(), atom!("emptied"), &window);
- // TODO 4.2 (abort in-progress fetch)
+ // Step 6.2.
+ // FIXME(nox): Abort in-progress fetching process.
- // TODO 4.3 (detach media provider object)
- // TODO 4.4 (forget resource tracks)
+ // Step 6.3.
+ // FIXME(nox): Detach MediaSource media provider object.
- // 4.5
+ // Step 6.4.
+ // FIXME(nox): Forget the media-resource-specific tracks.
+
+ // Step 6.5.
if self.ready_state.get() != ReadyState::HaveNothing {
self.change_ready_state(ReadyState::HaveNothing);
}
- // 4.6
+ // Step 6.6.
if !self.Paused() {
+ // Step 6.6.1.
self.paused.set(true);
+
+ // Step 6.6.2.
+ // FIXME(nox): Reject pending play promises.
}
- // TODO 4.7 (seeking)
- // TODO 4.8 (playback position)
- // TODO 4.9 (timeline offset)
- // TODO 4.10 (duration)
+
+ // Step 6.7.
+ // FIXME(nox): If seeking is true, set it to false.
+
+ // Step 6.8.
+ // FIXME(nox): Set current and official playback position to 0 and
+ // maybe queue a task to fire a timeupdate event.
+
+ // Step 6.9.
+ // FIXME(nox): Set timeline offset to NaN.
+
+ // Step 6.10.
+ // FIXME(nox): Set duration to NaN.
}
- // TODO step 5 (playback rate)
- // Step 6
+ // Step 7.
+ // FIXME(nox): Set playbackRate to defaultPlaybackRate.
+
+ // Step 8.
self.error.set(None);
self.autoplaying.set(true);
- // Step 7
+ // Step 9.
self.invoke_resource_selection_algorithm();
- // TODO step 8 (stop previously playing resource)
+ // Step 10.
+ // FIXME(nox): Stop playback of any previously running media resource.
}
}