mirror of
https://github.com/servo/servo.git
synced 2025-08-06 14:10:11 +01:00
Implement partial spec-recommended preload=none support.
This commit is contained in:
parent
ef10393ba6
commit
f78d88acbe
5 changed files with 20 additions and 247 deletions
|
@ -387,7 +387,19 @@ impl HTMLMediaElement {
|
|||
|
||||
// Step 4
|
||||
if let Resource::Url(url) = resource {
|
||||
// TODO 4.1 (preload=none)
|
||||
// 4.1
|
||||
if self.Preload() == "none" && !self.autoplaying.get(){
|
||||
// 4.1.1
|
||||
self.network_state.set(NETWORK_IDLE);
|
||||
|
||||
// 4.1.2
|
||||
self.queue_fire_simple_event("suspend");
|
||||
|
||||
// TODO 4.1.3 (delay load flag)
|
||||
|
||||
// TODO 4.1.5-7 (state for load that initiates later)
|
||||
return;
|
||||
}
|
||||
|
||||
// 4.2
|
||||
let context = Arc::new(Mutex::new(HTMLMediaElementContext::new(self, url.clone())));
|
||||
|
@ -509,6 +521,12 @@ impl HTMLMediaElementMethods for HTMLMediaElement {
|
|||
// https://html.spec.whatwg.org/multipage/#dom-media-src
|
||||
make_setter!(SetSrc, "src");
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#attr-media-preload
|
||||
// Missing value default is user-agent defined.
|
||||
make_enumerated_getter!(Preload, "preload", "", ("none") | ("metadata") | ("auto"));
|
||||
// https://html.spec.whatwg.org/multipage/#attr-media-preload
|
||||
make_setter!(SetPreload, "preload");
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#dom-media-currentsrc
|
||||
fn CurrentSrc(&self) -> DOMString {
|
||||
DOMString::from(self.current_src.borrow().clone())
|
||||
|
|
|
@ -19,7 +19,7 @@ interface HTMLMediaElement : HTMLElement {
|
|||
const unsigned short NETWORK_LOADING = 2;
|
||||
const unsigned short NETWORK_NO_SOURCE = 3;
|
||||
readonly attribute unsigned short networkState;
|
||||
// attribute DOMString preload;
|
||||
attribute DOMString preload;
|
||||
//readonly attribute TimeRanges buffered;
|
||||
void load();
|
||||
CanPlayTypeResult canPlayType(DOMString type);
|
||||
|
|
|
@ -2505,9 +2505,6 @@
|
|||
[HTMLMediaElement interface: document.createElement("video") must inherit property "crossOrigin" with the proper type (3)]
|
||||
expected: FAIL
|
||||
|
||||
[HTMLMediaElement interface: document.createElement("video") must inherit property "preload" with the proper type (9)]
|
||||
expected: FAIL
|
||||
|
||||
[HTMLMediaElement interface: document.createElement("video") must inherit property "buffered" with the proper type (10)]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -2583,9 +2580,6 @@
|
|||
[HTMLMediaElement interface: document.createElement("audio") must inherit property "crossOrigin" with the proper type (3)]
|
||||
expected: FAIL
|
||||
|
||||
[HTMLMediaElement interface: document.createElement("audio") must inherit property "preload" with the proper type (9)]
|
||||
expected: FAIL
|
||||
|
||||
[HTMLMediaElement interface: document.createElement("audio") must inherit property "buffered" with the proper type (10)]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -2916,9 +2910,6 @@
|
|||
[HTMLMediaElement interface: attribute crossOrigin]
|
||||
expected: FAIL
|
||||
|
||||
[HTMLMediaElement interface: attribute preload]
|
||||
expected: FAIL
|
||||
|
||||
[HTMLMediaElement interface: attribute buffered]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -9645,120 +9645,6 @@
|
|||
[video.crossOrigin: IDL set to "USE-CREDENTIALS" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[video.preload: typeof IDL attribute]
|
||||
expected: FAIL
|
||||
|
||||
[video.preload: setAttribute() to "none" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[video.preload: setAttribute() to "NONE" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[video.preload: setAttribute() to "metadata" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[video.preload: setAttribute() to "METADATA" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[video.preload: setAttribute() to "auto" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[video.preload: setAttribute() to "AUTO" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[video.preload: IDL set to "" followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[video.preload: IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo " followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[video.preload: IDL set to undefined followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[video.preload: IDL set to 7 followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[video.preload: IDL set to 1.5 followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[video.preload: IDL set to true followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[video.preload: IDL set to false followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[video.preload: IDL set to object "[object Object\]" followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[video.preload: IDL set to NaN followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[video.preload: IDL set to Infinity followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[video.preload: IDL set to -Infinity followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[video.preload: IDL set to "\\0" followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[video.preload: IDL set to object "test-toString" followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[video.preload: IDL set to object "test-valueOf" followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[video.preload: IDL set to "none" followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[video.preload: IDL set to "xnone" followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[video.preload: IDL set to "none\\0" followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[video.preload: IDL set to "one" followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[video.preload: IDL set to "NONE" followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[video.preload: IDL set to "NONE" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[video.preload: IDL set to "metadata" followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[video.preload: IDL set to "xmetadata" followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[video.preload: IDL set to "metadata\\0" followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[video.preload: IDL set to "etadata" followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[video.preload: IDL set to "METADATA" followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[video.preload: IDL set to "METADATA" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[video.preload: IDL set to "auto" followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[video.preload: IDL set to "xauto" followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[video.preload: IDL set to "auto\\0" followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[video.preload: IDL set to "uto" followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[video.preload: IDL set to "AUTO" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[video.loop: typeof IDL attribute]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -11685,120 +11571,6 @@
|
|||
[audio.crossOrigin: IDL set to "USE-CREDENTIALS" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[audio.preload: typeof IDL attribute]
|
||||
expected: FAIL
|
||||
|
||||
[audio.preload: setAttribute() to "none" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[audio.preload: setAttribute() to "NONE" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[audio.preload: setAttribute() to "metadata" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[audio.preload: setAttribute() to "METADATA" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[audio.preload: setAttribute() to "auto" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[audio.preload: setAttribute() to "AUTO" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[audio.preload: IDL set to "" followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[audio.preload: IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo " followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[audio.preload: IDL set to undefined followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[audio.preload: IDL set to 7 followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[audio.preload: IDL set to 1.5 followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[audio.preload: IDL set to true followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[audio.preload: IDL set to false followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[audio.preload: IDL set to object "[object Object\]" followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[audio.preload: IDL set to NaN followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[audio.preload: IDL set to Infinity followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[audio.preload: IDL set to -Infinity followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[audio.preload: IDL set to "\\0" followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[audio.preload: IDL set to object "test-toString" followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[audio.preload: IDL set to object "test-valueOf" followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[audio.preload: IDL set to "none" followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[audio.preload: IDL set to "xnone" followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[audio.preload: IDL set to "none\\0" followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[audio.preload: IDL set to "one" followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[audio.preload: IDL set to "NONE" followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[audio.preload: IDL set to "NONE" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[audio.preload: IDL set to "metadata" followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[audio.preload: IDL set to "xmetadata" followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[audio.preload: IDL set to "metadata\\0" followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[audio.preload: IDL set to "etadata" followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[audio.preload: IDL set to "METADATA" followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[audio.preload: IDL set to "METADATA" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[audio.preload: IDL set to "auto" followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[audio.preload: IDL set to "xauto" followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[audio.preload: IDL set to "auto\\0" followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[audio.preload: IDL set to "uto" followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[audio.preload: IDL set to "AUTO" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[audio.loop: typeof IDL attribute]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,8 +0,0 @@
|
|||
[preload_reflects_none_autoplay.html]
|
||||
type: testharness
|
||||
[audio.preload - reflection test]
|
||||
expected: FAIL
|
||||
|
||||
[video.preload - reflection test]
|
||||
expected: FAIL
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue