diff --git a/components/script/dom/htmlmediaelement.rs b/components/script/dom/htmlmediaelement.rs index 2f3dbe03ea5..e419dde0fea 100644 --- a/components/script/dom/htmlmediaelement.rs +++ b/components/script/dom/htmlmediaelement.rs @@ -162,6 +162,8 @@ pub struct HTMLMediaElement { generation_id: Cell, first_data_load: Cell, error: MutNullableHeap>, + paused: Cell, + autoplaying: Cell, } impl HTMLMediaElement { @@ -177,6 +179,8 @@ impl HTMLMediaElement { generation_id: Cell::new(0), first_data_load: Cell::new(true), error: Default::default(), + paused: Cell::new(true), + autoplaying: Cell::new(true), } } @@ -185,6 +189,28 @@ impl HTMLMediaElement { &self.htmlelement } + // https://html.spec.whatwg.org/multipage/#playing-the-media-resource:internal-pause-steps + fn internal_pause_steps(&self) { + // Step 1 + self.autoplaying.set(false); + + // Step 2 + if !self.Paused() { + // 2.1 + self.paused.set(true); + + // 2.2 + self.queue_fire_simple_event("timeupdate"); + + // 2.3 + self.queue_fire_simple_event("pause"); + + // TODO 2.4 (official playback position) + } + + // TODO step 3 (media controller) + } + fn queue_fire_simple_event(&self, type_: &'static str) { let win = window_from_node(self); let task = FireSimpleEventTask::new(self, type_); @@ -260,11 +286,19 @@ impl HTMLMediaElement { if old_ready_state <= HAVE_CURRENT_DATA { self.queue_fire_simple_event("canplay"); - //TODO: check paused state - self.queue_fire_simple_event("playing"); + if !self.Paused() { + self.queue_fire_simple_event("playing"); + } } - // TODO: autoplay-related logic + if self.autoplaying.get() && + self.Paused() && + self.Autoplay() { + self.paused.set(false); + // TODO: show poster + self.queue_fire_simple_event("play"); + self.queue_fire_simple_event("playing"); + } self.queue_fire_simple_event("canplaythrough"); } @@ -274,7 +308,7 @@ impl HTMLMediaElement { } // https://html.spec.whatwg.org/multipage/#concept-media-load-algorithm - fn invoke_resource_selection_algorithm(&self, base_url: Url) { + fn invoke_resource_selection_algorithm(&self) { // Step 1 self.network_state.set(NETWORK_NO_SOURCE); @@ -282,7 +316,8 @@ impl HTMLMediaElement { // TODO step 3 (delay load event) // Step 4 - ScriptThread::await_stable_state(ResourceSelectionTask::new(self, base_url)); + let doc = document_from_node(self); + ScriptThread::await_stable_state(ResourceSelectionTask::new(self, doc.base_url())); } // https://html.spec.whatwg.org/multipage/#concept-media-load-algorithm @@ -434,7 +469,9 @@ impl HTMLMediaElement { // 4.4 self.change_ready_state(HAVE_NOTHING); - // TODO 4.5 (paused) + if !self.Paused() { + self.paused.set(true); + } // TODO 4.6 (seeking) // TODO 4.7 (playback position) // TODO 4.8 (timeline offset) @@ -444,11 +481,10 @@ impl HTMLMediaElement { // TODO step 5 (playback rate) // Step 6 self.error.set(None); - // TODO autoplay flag + self.autoplaying.set(true); // Step 7 - let doc = document_from_node(self); - self.invoke_resource_selection_algorithm(doc.base_url()); + self.invoke_resource_selection_algorithm(); // TODO step 8 (stop previously playing resource) } @@ -463,6 +499,11 @@ impl HTMLMediaElementMethods for HTMLMediaElement { self.ready_state.get() } + // https://html.spec.whatwg.org/multipage/#dom-media-autoplay + make_bool_getter!(Autoplay, "autoplay"); + // https://html.spec.whatwg.org/multipage/#dom-media-autoplay + make_bool_setter!(SetAutoplay, "autoplay"); + // https://html.spec.whatwg.org/multipage/#dom-media-src make_url_getter!(Src, "src"); // https://html.spec.whatwg.org/multipage/#dom-media-src @@ -488,6 +529,60 @@ impl HTMLMediaElementMethods for HTMLMediaElement { fn GetError(&self) -> Option> { self.error.get() } + + // https://html.spec.whatwg.org/multipage/#dom-media-play + fn Play(&self) { + // Step 1 + if self.network_state.get() == NETWORK_EMPTY { + self.invoke_resource_selection_algorithm(); + } + + // TODO step 2 (seek backwards) + + // TODO step 3 (media controller) + + // Step 4 + if self.Paused() { + // 4.1 + self.paused.set(false); + + // TODO 4.2 (show poster) + + // 4.3 + self.queue_fire_simple_event("play"); + + // 4.4 + let state = self.ready_state.get(); + if state == HAVE_NOTHING || + state == HAVE_METADATA || + state == HAVE_CURRENT_DATA { + self.queue_fire_simple_event("waiting"); + } else { + self.queue_fire_simple_event("playing"); + } + + // 4.5 + self.autoplaying.set(false); + + // TODO 4.6 (media controller) + } + } + + // https://html.spec.whatwg.org/multipage/#dom-media-pause + fn Pause(&self) { + // Step 1 + if self.network_state.get() == NETWORK_EMPTY { + self.invoke_resource_selection_algorithm(); + } + + // Step 2 + self.internal_pause_steps(); + } + + // https://html.spec.whatwg.org/multipage/#dom-media-paused + fn Paused(&self) -> bool { + self.paused.get() + } } impl VirtualMethods for HTMLMediaElement { diff --git a/components/script/dom/webidls/HTMLMediaElement.webidl b/components/script/dom/webidls/HTMLMediaElement.webidl index 30127ffec62..ba81478be46 100644 --- a/components/script/dom/webidls/HTMLMediaElement.webidl +++ b/components/script/dom/webidls/HTMLMediaElement.webidl @@ -38,16 +38,16 @@ interface HTMLMediaElement : HTMLElement { //void fastSeek(double time); //readonly attribute unrestricted double duration; //Date getStartDate(); - //readonly attribute boolean paused; + readonly attribute boolean paused; // attribute double defaultPlaybackRate; // attribute double playbackRate; //readonly attribute TimeRanges played; //readonly attribute TimeRanges seekable; //readonly attribute boolean ended; - // attribute boolean autoplay; + attribute boolean autoplay; // attribute boolean loop; - //void play(); - //void pause(); + void play(); + void pause(); // media controller // attribute DOMString mediaGroup; diff --git a/tests/wpt/metadata/html/dom/interfaces.html.ini b/tests/wpt/metadata/html/dom/interfaces.html.ini index fb2864fc5e2..290d2e947fc 100644 --- a/tests/wpt/metadata/html/dom/interfaces.html.ini +++ b/tests/wpt/metadata/html/dom/interfaces.html.ini @@ -2646,9 +2646,6 @@ [HTMLMediaElement interface: document.createElement("video") must inherit property "getStartDate" with the proper type (23)] expected: FAIL - [HTMLMediaElement interface: document.createElement("video") must inherit property "paused" with the proper type (24)] - expected: FAIL - [HTMLMediaElement interface: document.createElement("video") must inherit property "defaultPlaybackRate" with the proper type (25)] expected: FAIL @@ -2664,18 +2661,9 @@ [HTMLMediaElement interface: document.createElement("video") must inherit property "ended" with the proper type (29)] expected: FAIL - [HTMLMediaElement interface: document.createElement("video") must inherit property "autoplay" with the proper type (30)] - expected: FAIL - [HTMLMediaElement interface: document.createElement("video") must inherit property "loop" with the proper type (31)] expected: FAIL - [HTMLMediaElement interface: document.createElement("video") must inherit property "play" with the proper type (32)] - expected: FAIL - - [HTMLMediaElement interface: document.createElement("video") must inherit property "pause" with the proper type (33)] - expected: FAIL - [HTMLMediaElement interface: document.createElement("video") must inherit property "mediaGroup" with the proper type (34)] expected: FAIL @@ -2736,9 +2724,6 @@ [HTMLMediaElement interface: document.createElement("audio") must inherit property "getStartDate" with the proper type (23)] expected: FAIL - [HTMLMediaElement interface: document.createElement("audio") must inherit property "paused" with the proper type (24)] - expected: FAIL - [HTMLMediaElement interface: document.createElement("audio") must inherit property "defaultPlaybackRate" with the proper type (25)] expected: FAIL @@ -2754,18 +2739,9 @@ [HTMLMediaElement interface: document.createElement("audio") must inherit property "ended" with the proper type (29)] expected: FAIL - [HTMLMediaElement interface: document.createElement("audio") must inherit property "autoplay" with the proper type (30)] - expected: FAIL - [HTMLMediaElement interface: document.createElement("audio") must inherit property "loop" with the proper type (31)] expected: FAIL - [HTMLMediaElement interface: document.createElement("audio") must inherit property "play" with the proper type (32)] - expected: FAIL - - [HTMLMediaElement interface: document.createElement("audio") must inherit property "pause" with the proper type (33)] - expected: FAIL - [HTMLMediaElement interface: document.createElement("audio") must inherit property "mediaGroup" with the proper type (34)] expected: FAIL @@ -3078,9 +3054,6 @@ [HTMLMediaElement interface: operation getStartDate()] expected: FAIL - [HTMLMediaElement interface: attribute paused] - expected: FAIL - [HTMLMediaElement interface: attribute defaultPlaybackRate] expected: FAIL @@ -3096,18 +3069,9 @@ [HTMLMediaElement interface: attribute ended] expected: FAIL - [HTMLMediaElement interface: attribute autoplay] - expected: FAIL - [HTMLMediaElement interface: attribute loop] expected: FAIL - [HTMLMediaElement interface: operation play()] - expected: FAIL - - [HTMLMediaElement interface: operation pause()] - expected: FAIL - [HTMLMediaElement interface: attribute mediaGroup] expected: FAIL diff --git a/tests/wpt/metadata/html/dom/reflection-embedded.html.ini b/tests/wpt/metadata/html/dom/reflection-embedded.html.ini index f3c8293fffc..adb86b793cb 100644 --- a/tests/wpt/metadata/html/dom/reflection-embedded.html.ini +++ b/tests/wpt/metadata/html/dom/reflection-embedded.html.ini @@ -9759,114 +9759,6 @@ [video.preload: IDL set to "AUTO" followed by IDL get] expected: FAIL - [video.autoplay: typeof IDL attribute] - expected: FAIL - - [video.autoplay: IDL get with DOM attribute unset] - expected: FAIL - - [video.autoplay: setAttribute() to "" followed by IDL get] - expected: FAIL - - [video.autoplay: setAttribute() to " foo " followed by IDL get] - expected: FAIL - - [video.autoplay: setAttribute() to undefined followed by IDL get] - expected: FAIL - - [video.autoplay: setAttribute() to null followed by IDL get] - expected: FAIL - - [video.autoplay: setAttribute() to 7 followed by IDL get] - expected: FAIL - - [video.autoplay: setAttribute() to 1.5 followed by IDL get] - expected: FAIL - - [video.autoplay: setAttribute() to true followed by IDL get] - expected: FAIL - - [video.autoplay: setAttribute() to false followed by IDL get] - expected: FAIL - - [video.autoplay: setAttribute() to object "[object Object\]" followed by IDL get] - expected: FAIL - - [video.autoplay: setAttribute() to NaN followed by IDL get] - expected: FAIL - - [video.autoplay: setAttribute() to Infinity followed by IDL get] - expected: FAIL - - [video.autoplay: setAttribute() to -Infinity followed by IDL get] - expected: FAIL - - [video.autoplay: setAttribute() to "\\0" followed by IDL get] - expected: FAIL - - [video.autoplay: setAttribute() to object "test-toString" followed by IDL get] - expected: FAIL - - [video.autoplay: setAttribute() to object "test-valueOf" followed by IDL get] - expected: FAIL - - [video.autoplay: setAttribute() to "autoplay" followed by IDL get] - expected: FAIL - - [video.autoplay: IDL set to "" followed by hasAttribute()] - expected: FAIL - - [video.autoplay: IDL set to "" followed by IDL get] - expected: FAIL - - [video.autoplay: IDL set to " foo " followed by IDL get] - expected: FAIL - - [video.autoplay: IDL set to undefined followed by hasAttribute()] - expected: FAIL - - [video.autoplay: IDL set to undefined followed by IDL get] - expected: FAIL - - [video.autoplay: IDL set to null followed by hasAttribute()] - expected: FAIL - - [video.autoplay: IDL set to null followed by IDL get] - expected: FAIL - - [video.autoplay: IDL set to 7 followed by IDL get] - expected: FAIL - - [video.autoplay: IDL set to 1.5 followed by IDL get] - expected: FAIL - - [video.autoplay: IDL set to false followed by hasAttribute()] - expected: FAIL - - [video.autoplay: IDL set to object "[object Object\]" followed by IDL get] - expected: FAIL - - [video.autoplay: IDL set to NaN followed by hasAttribute()] - expected: FAIL - - [video.autoplay: IDL set to NaN followed by IDL get] - expected: FAIL - - [video.autoplay: IDL set to Infinity followed by IDL get] - expected: FAIL - - [video.autoplay: IDL set to -Infinity followed by IDL get] - expected: FAIL - - [video.autoplay: IDL set to "\\0" followed by IDL get] - expected: FAIL - - [video.autoplay: IDL set to object "test-toString" followed by IDL get] - expected: FAIL - - [video.autoplay: IDL set to object "test-valueOf" followed by IDL get] - expected: FAIL - [video.loop: typeof IDL attribute] expected: FAIL @@ -11907,114 +11799,6 @@ [audio.preload: IDL set to "AUTO" followed by IDL get] expected: FAIL - [audio.autoplay: typeof IDL attribute] - expected: FAIL - - [audio.autoplay: IDL get with DOM attribute unset] - expected: FAIL - - [audio.autoplay: setAttribute() to "" followed by IDL get] - expected: FAIL - - [audio.autoplay: setAttribute() to " foo " followed by IDL get] - expected: FAIL - - [audio.autoplay: setAttribute() to undefined followed by IDL get] - expected: FAIL - - [audio.autoplay: setAttribute() to null followed by IDL get] - expected: FAIL - - [audio.autoplay: setAttribute() to 7 followed by IDL get] - expected: FAIL - - [audio.autoplay: setAttribute() to 1.5 followed by IDL get] - expected: FAIL - - [audio.autoplay: setAttribute() to true followed by IDL get] - expected: FAIL - - [audio.autoplay: setAttribute() to false followed by IDL get] - expected: FAIL - - [audio.autoplay: setAttribute() to object "[object Object\]" followed by IDL get] - expected: FAIL - - [audio.autoplay: setAttribute() to NaN followed by IDL get] - expected: FAIL - - [audio.autoplay: setAttribute() to Infinity followed by IDL get] - expected: FAIL - - [audio.autoplay: setAttribute() to -Infinity followed by IDL get] - expected: FAIL - - [audio.autoplay: setAttribute() to "\\0" followed by IDL get] - expected: FAIL - - [audio.autoplay: setAttribute() to object "test-toString" followed by IDL get] - expected: FAIL - - [audio.autoplay: setAttribute() to object "test-valueOf" followed by IDL get] - expected: FAIL - - [audio.autoplay: setAttribute() to "autoplay" followed by IDL get] - expected: FAIL - - [audio.autoplay: IDL set to "" followed by hasAttribute()] - expected: FAIL - - [audio.autoplay: IDL set to "" followed by IDL get] - expected: FAIL - - [audio.autoplay: IDL set to " foo " followed by IDL get] - expected: FAIL - - [audio.autoplay: IDL set to undefined followed by hasAttribute()] - expected: FAIL - - [audio.autoplay: IDL set to undefined followed by IDL get] - expected: FAIL - - [audio.autoplay: IDL set to null followed by hasAttribute()] - expected: FAIL - - [audio.autoplay: IDL set to null followed by IDL get] - expected: FAIL - - [audio.autoplay: IDL set to 7 followed by IDL get] - expected: FAIL - - [audio.autoplay: IDL set to 1.5 followed by IDL get] - expected: FAIL - - [audio.autoplay: IDL set to false followed by hasAttribute()] - expected: FAIL - - [audio.autoplay: IDL set to object "[object Object\]" followed by IDL get] - expected: FAIL - - [audio.autoplay: IDL set to NaN followed by hasAttribute()] - expected: FAIL - - [audio.autoplay: IDL set to NaN followed by IDL get] - expected: FAIL - - [audio.autoplay: IDL set to Infinity followed by IDL get] - expected: FAIL - - [audio.autoplay: IDL set to -Infinity followed by IDL get] - expected: FAIL - - [audio.autoplay: IDL set to "\\0" followed by IDL get] - expected: FAIL - - [audio.autoplay: IDL set to object "test-toString" followed by IDL get] - expected: FAIL - - [audio.autoplay: IDL set to object "test-valueOf" followed by IDL get] - expected: FAIL - [audio.loop: typeof IDL attribute] expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_pause.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_pause.html.ini deleted file mode 100644 index ea9eaeadb65..00000000000 --- a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_pause.html.ini +++ /dev/null @@ -1,9 +0,0 @@ -[event_pause.html] - type: testharness - expected: TIMEOUT - [calling pause() on autoplay audio should trigger pause event] - expected: NOTRUN - - [calling pause() on autoplay video should trigger pause event] - expected: NOTRUN - diff --git a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_pause_noautoplay.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_pause_noautoplay.html.ini deleted file mode 100644 index 8301081a3f8..00000000000 --- a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_pause_noautoplay.html.ini +++ /dev/null @@ -1,15 +0,0 @@ -[event_pause_noautoplay.html] - type: testharness - expected: TIMEOUT - [audio events - pause] - expected: FAIL - - [calling play() then pause() on non-autoplay audio should trigger pause event] - expected: NOTRUN - - [video events - pause] - expected: FAIL - - [calling play() then pause() on non-autoplay video should trigger pause event] - expected: NOTRUN - diff --git a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_play.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_play.html.ini deleted file mode 100644 index e692bd69d4c..00000000000 --- a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_play.html.ini +++ /dev/null @@ -1,9 +0,0 @@ -[event_play.html] - type: testharness - expected: TIMEOUT - [setting src attribute on autoplay audio should trigger play event] - expected: NOTRUN - - [setting src attribute on autoplay video should trigger play event] - expected: NOTRUN - diff --git a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_play_noautoplay.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_play_noautoplay.html.ini deleted file mode 100644 index 2b63fff4d80..00000000000 --- a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_play_noautoplay.html.ini +++ /dev/null @@ -1,15 +0,0 @@ -[event_play_noautoplay.html] - type: testharness - expected: TIMEOUT - [audio events - play] - expected: FAIL - - [calling play() on audio should trigger play event] - expected: NOTRUN - - [video events - play] - expected: FAIL - - [calling play() on video should trigger play event] - expected: NOTRUN - diff --git a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_playing_noautoplay.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_playing_noautoplay.html.ini deleted file mode 100644 index d677d4fa136..00000000000 --- a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_playing_noautoplay.html.ini +++ /dev/null @@ -1,8 +0,0 @@ -[event_playing_noautoplay.html] - type: testharness - [audio events - playing] - expected: FAIL - - [video events - playing] - expected: FAIL - diff --git a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_timeupdate_noautoplay.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_timeupdate_noautoplay.html.ini index 53dce24c690..22d1f1d6900 100644 --- a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_timeupdate_noautoplay.html.ini +++ b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_timeupdate_noautoplay.html.ini @@ -1,15 +1,9 @@ [event_timeupdate_noautoplay.html] type: testharness expected: TIMEOUT - [audio events - timeupdate] - expected: FAIL - [calling play() on a sufficiently long audio should trigger timeupdate event] expected: NOTRUN - [video events - timeupdate] - expected: FAIL - [calling play() on a sufficiently long video should trigger timeupdate event] expected: NOTRUN diff --git a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/loading-the-media-resource/autoplay-overrides-preload.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/loading-the-media-resource/autoplay-overrides-preload.html.ini deleted file mode 100644 index 566ab27894d..00000000000 --- a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/loading-the-media-resource/autoplay-overrides-preload.html.ini +++ /dev/null @@ -1,14 +0,0 @@ -[autoplay-overrides-preload.html] - type: testharness - [autoplay (set first) overrides preload "none"] - expected: FAIL - - [autoplay (set last) overrides preload "none"] - expected: FAIL - - [autoplay (set first) overrides preload "metadata"] - expected: FAIL - - [autoplay (set last) overrides preload "metadata"] - expected: FAIL - diff --git a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-set-src-networkState.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-set-src-networkState.html.ini deleted file mode 100644 index 2d8258abf78..00000000000 --- a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-set-src-networkState.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[resource-selection-invoke-set-src-networkState.html] - type: testharness - [invoking load by setting src when networkState is not NETWORK_EMPTY] - expected: FAIL - diff --git a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/paused_false_during_play.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/paused_false_during_play.html.ini deleted file mode 100644 index d73cb8ba85a..00000000000 --- a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/paused_false_during_play.html.ini +++ /dev/null @@ -1,9 +0,0 @@ -[paused_false_during_play.html] - type: testharness - expected: TIMEOUT - [audio.paused should be false during play event] - expected: NOTRUN - - [video.paused should be false during play event] - expected: NOTRUN - diff --git a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/paused_true_during_pause.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/paused_true_during_pause.html.ini deleted file mode 100644 index ae591b69432..00000000000 --- a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/paused_true_during_pause.html.ini +++ /dev/null @@ -1,15 +0,0 @@ -[paused_true_during_pause.html] - type: testharness - expected: TIMEOUT - [audio events - paused property] - expected: FAIL - - [audio.paused should be true during pause event] - expected: NOTRUN - - [video events - paused property] - expected: FAIL - - [video.paused should be true during pause event] - expected: NOTRUN - diff --git a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/playing-the-media-resource/pause-move-to-other-document.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/playing-the-media-resource/pause-move-to-other-document.html.ini index 020a3ceebaa..7b90f687874 100644 --- a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/playing-the-media-resource/pause-move-to-other-document.html.ini +++ b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/playing-the-media-resource/pause-move-to-other-document.html.ini @@ -1,5 +1,6 @@ [pause-move-to-other-document.html] type: testharness + expected: TIMEOUT [paused state when moving to other document] - expected: FAIL + expected: TIMEOUT diff --git a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/playing-the-media-resource/pause-move-within-document.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/playing-the-media-resource/pause-move-within-document.html.ini index 39021603c70..11d7f005539 100644 --- a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/playing-the-media-resource/pause-move-within-document.html.ini +++ b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/playing-the-media-resource/pause-move-within-document.html.ini @@ -1,5 +1,6 @@ [pause-move-within-document.html] type: testharness + expected: TIMEOUT [paused state when moving within a document] - expected: FAIL + expected: TIMEOUT diff --git a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/playing-the-media-resource/pause-remove-from-document-networkState.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/playing-the-media-resource/pause-remove-from-document-networkState.html.ini index 9555bc2543e..806dc781bee 100644 --- a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/playing-the-media-resource/pause-remove-from-document-networkState.html.ini +++ b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/playing-the-media-resource/pause-remove-from-document-networkState.html.ini @@ -1,5 +1,6 @@ [pause-remove-from-document-networkState.html] type: testharness + expected: TIMEOUT [paused state when removing from a document when networkState is NETWORK_EMPTY] - expected: FAIL + expected: TIMEOUT diff --git a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/playing-the-media-resource/pause-remove-from-document.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/playing-the-media-resource/pause-remove-from-document.html.ini index fd8fc8860ab..51811a2a184 100644 --- a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/playing-the-media-resource/pause-remove-from-document.html.ini +++ b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/playing-the-media-resource/pause-remove-from-document.html.ini @@ -1,5 +1,6 @@ [pause-remove-from-document.html] type: testharness + expected: TIMEOUT [paused state when removing from a document] - expected: FAIL + expected: TIMEOUT diff --git a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/playing-the-media-resource/play-in-detached-document.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/playing-the-media-resource/play-in-detached-document.html.ini index 19ccf5ab94a..4e5368e2380 100644 --- a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/playing-the-media-resource/play-in-detached-document.html.ini +++ b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/playing-the-media-resource/play-in-detached-document.html.ini @@ -1,5 +1,6 @@ [play-in-detached-document.html] type: testharness + expected: TIMEOUT [play() in detached document] - expected: FAIL + expected: TIMEOUT diff --git a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/ready-states/autoplay.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/ready-states/autoplay.html.ini index 30a6fe06aea..a7fe6814e76 100644 --- a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/ready-states/autoplay.html.ini +++ b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/ready-states/autoplay.html.ini @@ -1,32 +1,8 @@ [autoplay.html] type: testharness - [audio.autoplay] - expected: FAIL - - [audio.autoplay and load()] - expected: FAIL - - [audio.autoplay and play()] - expected: FAIL - - [audio.autoplay and pause()] - expected: FAIL - [audio.autoplay and internal pause steps] expected: FAIL - [video.autoplay] - expected: FAIL - - [video.autoplay and load()] - expected: FAIL - - [video.autoplay and play()] - expected: FAIL - - [video.autoplay and pause()] - expected: FAIL - [video.autoplay and internal pause steps] expected: FAIL