diff options
26 files changed, 149 insertions, 35 deletions
diff --git a/components/script/dom/htmlmediaelement.rs b/components/script/dom/htmlmediaelement.rs index 1f2b51f7ca9..5bbdd738079 100644 --- a/components/script/dom/htmlmediaelement.rs +++ b/components/script/dom/htmlmediaelement.rs @@ -105,8 +105,13 @@ impl AsyncResponseListener for HTMLMediaElementContext { fn response_complete(&mut self, status: Result<(), NetworkError>) { let elem = self.elem.root(); + // => "If the media data can be fetched but is found by inspection to be in an unsupported + // format, or can otherwise not be rendered at all" + if !self.have_metadata { + elem.queue_dedicated_media_source_failure_steps(); + } // => "Once the entire media resource has been fetched..." - if status.is_ok() { + else if status.is_ok() { elem.change_ready_state(HAVE_ENOUGH_DATA); elem.fire_simple_event("progress"); diff --git a/tests/wpt/metadata/html/dom/interfaces.html.ini b/tests/wpt/metadata/html/dom/interfaces.html.ini index 9b6a26bfa3b..0fb1a118e08 100644 --- a/tests/wpt/metadata/html/dom/interfaces.html.ini +++ b/tests/wpt/metadata/html/dom/interfaces.html.ini @@ -2433,27 +2433,6 @@ [HTMLMediaElement interface: operation addTextTrack(TextTrackKind,DOMString,DOMString)] expected: FAIL - [MediaError must be primary interface of errorVideo.error] - expected: FAIL - - [Stringification of errorVideo.error] - expected: FAIL - - [MediaError interface: errorVideo.error must inherit property "MEDIA_ERR_ABORTED" with the proper type (0)] - expected: FAIL - - [MediaError interface: errorVideo.error must inherit property "MEDIA_ERR_NETWORK" with the proper type (1)] - expected: FAIL - - [MediaError interface: errorVideo.error must inherit property "MEDIA_ERR_DECODE" with the proper type (2)] - expected: FAIL - - [MediaError interface: errorVideo.error must inherit property "MEDIA_ERR_SRC_NOT_SUPPORTED" with the proper type (3)] - expected: FAIL - - [MediaError interface: errorVideo.error must inherit property "code" with the proper type (4)] - expected: FAIL - [AudioTrackList interface: existence and properties of interface object] expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_canplay.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_canplay.html.ini new file mode 100644 index 00000000000..1c793999227 --- /dev/null +++ b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_canplay.html.ini @@ -0,0 +1,6 @@ +[event_canplay.html] + type: testharness + expected: TIMEOUT + [setting src attribute on autoplay audio should trigger canplay event] + expected: NOTRUN + diff --git a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_canplay_noautoplay.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_canplay_noautoplay.html.ini new file mode 100644 index 00000000000..aa6c1d43f14 --- /dev/null +++ b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_canplay_noautoplay.html.ini @@ -0,0 +1,6 @@ +[event_canplay_noautoplay.html] + type: testharness + expected: TIMEOUT + [setting src attribute on non-autoplay audio should trigger canplay event] + expected: NOTRUN + diff --git a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_canplaythrough.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_canplaythrough.html.ini new file mode 100644 index 00000000000..be455cfa535 --- /dev/null +++ b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_canplaythrough.html.ini @@ -0,0 +1,6 @@ +[event_canplaythrough.html] + type: testharness + expected: TIMEOUT + [setting src attribute on autoplay audio should trigger canplaythrough event] + expected: NOTRUN + diff --git a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_canplaythrough_noautoplay.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_canplaythrough_noautoplay.html.ini new file mode 100644 index 00000000000..9eef9aca0a4 --- /dev/null +++ b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_canplaythrough_noautoplay.html.ini @@ -0,0 +1,6 @@ +[event_canplaythrough_noautoplay.html] + type: testharness + expected: TIMEOUT + [setting src attribute on non-autoplay audio should trigger canplaythrough event] + expected: NOTRUN + diff --git a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_order_canplay_canplaythrough.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_order_canplay_canplaythrough.html.ini new file mode 100644 index 00000000000..14be106cd9c --- /dev/null +++ b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_order_canplay_canplaythrough.html.ini @@ -0,0 +1,6 @@ +[event_order_canplay_canplaythrough.html] + type: testharness + expected: TIMEOUT + [setting src attribute on autoplay audio should trigger canplay then canplaythrough event] + expected: NOTRUN + diff --git a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_order_canplay_playing.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_order_canplay_playing.html.ini new file mode 100644 index 00000000000..23677cdb6c9 --- /dev/null +++ b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_order_canplay_playing.html.ini @@ -0,0 +1,6 @@ +[event_order_canplay_playing.html] + type: testharness + expected: TIMEOUT + [setting src attribute on autoplay audio should trigger canplay then playing event] + expected: NOTRUN + diff --git a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_order_loadstart_progress.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_order_loadstart_progress.html.ini new file mode 100644 index 00000000000..424c44bfa6b --- /dev/null +++ b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_order_loadstart_progress.html.ini @@ -0,0 +1,6 @@ +[event_order_loadstart_progress.html] + type: testharness + expected: TIMEOUT + [setting src attribute on autoplay audio should trigger loadstart then progress event] + expected: NOTRUN + 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 new file mode 100644 index 00000000000..74d890c2053 --- /dev/null +++ b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_pause.html.ini @@ -0,0 +1,6 @@ +[event_pause.html] + type: testharness + expected: TIMEOUT + [calling pause() on autoplay audio 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 new file mode 100644 index 00000000000..4f9118ca9c7 --- /dev/null +++ b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_play.html.ini @@ -0,0 +1,6 @@ +[event_play.html] + type: testharness + expected: TIMEOUT + [setting src attribute on autoplay audio should trigger play event] + expected: NOTRUN + diff --git a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_playing.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_playing.html.ini new file mode 100644 index 00000000000..c0c94b26fb1 --- /dev/null +++ b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_playing.html.ini @@ -0,0 +1,6 @@ +[event_playing.html] + type: testharness + expected: TIMEOUT + [setting src attribute on autoplay audio should trigger playing 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 new file mode 100644 index 00000000000..0ac49b31962 --- /dev/null +++ b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_playing_noautoplay.html.ini @@ -0,0 +1,6 @@ +[event_playing_noautoplay.html] + type: testharness + expected: TIMEOUT + [calling play() on audio should trigger playing event] + expected: NOTRUN + diff --git a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_progress.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_progress.html.ini new file mode 100644 index 00000000000..c7df2f3bc99 --- /dev/null +++ b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_progress.html.ini @@ -0,0 +1,6 @@ +[event_progress.html] + type: testharness + expected: TIMEOUT + [setting src attribute on autoplay audio should trigger progress event] + expected: NOTRUN + diff --git a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_progress_noautoplay.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_progress_noautoplay.html.ini new file mode 100644 index 00000000000..2ba374185c2 --- /dev/null +++ b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_progress_noautoplay.html.ini @@ -0,0 +1,6 @@ +[event_progress_noautoplay.html] + type: testharness + expected: TIMEOUT + [setting src attribute on non-autoplay audio should trigger progress 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 new file mode 100644 index 00000000000..ee8fef80dcc --- /dev/null +++ b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/loading-the-media-resource/autoplay-overrides-preload.html.ini @@ -0,0 +1,15 @@ +[autoplay-overrides-preload.html] + type: testharness + expected: TIMEOUT + [autoplay (set first) overrides preload "none"] + expected: TIMEOUT + + [autoplay (set last) overrides preload "none"] + expected: TIMEOUT + + [autoplay (set first) overrides preload "metadata"] + expected: TIMEOUT + + [autoplay (set last) overrides preload "metadata"] + expected: TIMEOUT + diff --git a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/loading-the-media-resource/load-events-networkState.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/loading-the-media-resource/load-events-networkState.html.ini index 35dd9ff3c2d..f2bdca77080 100644 --- a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/loading-the-media-resource/load-events-networkState.html.ini +++ b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/loading-the-media-resource/load-events-networkState.html.ini @@ -1,6 +1,6 @@ [load-events-networkState.html] type: testharness expected: TIMEOUT - [NETWORK_NO_SOURCE] + [NETWORK_IDLE] expected: TIMEOUT diff --git a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-insert-into-iframe.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-insert-into-iframe.html.ini index cab876905bf..d0b2b6edd3d 100644 --- a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-insert-into-iframe.html.ini +++ b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-insert-into-iframe.html.ini @@ -1,6 +1,5 @@ [resource-selection-invoke-insert-into-iframe.html] type: testharness - expected: TIMEOUT [NOT invoking resource selection by inserting into other document with src set] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-pause-networkState.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-pause-networkState.html.ini deleted file mode 100644 index 3ca07b5635e..00000000000 --- a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-pause-networkState.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[resource-selection-invoke-pause-networkState.html] - type: testharness - [NOT invoking resource selection with pause() when networkState is not NETWORK_EMPTY] - expected: FAIL - diff --git a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-remove-from-document-networkState.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-remove-from-document-networkState.html.ini deleted file mode 100644 index 0104538e3a5..00000000000 --- a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-remove-from-document-networkState.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[resource-selection-invoke-remove-from-document-networkState.html] - type: testharness - [NOT invoking resource selection with implicit pause() when networkState is not NETWORK_EMPTY] - expected: FAIL - diff --git a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/networkState_during_progress.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/networkState_during_progress.html.ini new file mode 100644 index 00000000000..8a3383ae89c --- /dev/null +++ b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/networkState_during_progress.html.ini @@ -0,0 +1,6 @@ +[networkState_during_progress.html] + type: testharness + expected: TIMEOUT + [audioElement.networkState should be NETWORK_LOADING during progress event] + expected: NOTRUN + 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 new file mode 100644 index 00000000000..615a0c04874 --- /dev/null +++ b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/paused_false_during_play.html.ini @@ -0,0 +1,6 @@ +[paused_false_during_play.html] + type: testharness + expected: TIMEOUT + [audio.paused should be false during play event] + expected: NOTRUN + 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 new file mode 100644 index 00000000000..ac7c23d6b8d --- /dev/null +++ b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/ready-states/autoplay.html.ini @@ -0,0 +1,18 @@ +[autoplay.html] + type: testharness + expected: TIMEOUT + [audio.autoplay] + expected: TIMEOUT + + [audio.autoplay and load()] + expected: TIMEOUT + + [audio.autoplay and play()] + expected: TIMEOUT + + [audio.autoplay and pause()] + expected: TIMEOUT + + [audio.autoplay and internal pause steps] + expected: TIMEOUT + diff --git a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/readyState_during_canplay.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/readyState_during_canplay.html.ini new file mode 100644 index 00000000000..5fedd9f11c4 --- /dev/null +++ b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/readyState_during_canplay.html.ini @@ -0,0 +1,6 @@ +[readyState_during_canplay.html] + type: testharness + expected: TIMEOUT + [audio.readyState should be >= HAVE_FUTURE_DATA during canplay event] + expected: NOTRUN + diff --git a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/readyState_during_canplaythrough.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/readyState_during_canplaythrough.html.ini new file mode 100644 index 00000000000..e7e4ccec101 --- /dev/null +++ b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/readyState_during_canplaythrough.html.ini @@ -0,0 +1,6 @@ +[readyState_during_canplaythrough.html] + type: testharness + expected: TIMEOUT + [audio.readyState should be HAVE_ENOUGH_DATA during canplaythrough event] + expected: NOTRUN + diff --git a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/readyState_during_playing.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/readyState_during_playing.html.ini new file mode 100644 index 00000000000..ce7cf868e7a --- /dev/null +++ b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/readyState_during_playing.html.ini @@ -0,0 +1,6 @@ +[readyState_during_playing.html] + type: testharness + expected: TIMEOUT + [audio.readyState should be >= HAVE_FUTURE_DATA during playing event] + expected: NOTRUN + |