Auto merge of #22622 - sreeise:audio_video_tracks, r=jdm

Added AudioTrack, AudioTrackList, VideoTrack, and VideoTrackList inte…

…rfaces

<!-- Please describe your changes on the following line: -->

Added AudioTrack, AudioTrackList, VideoTrack, VideoTrackList, and TrackEvent interfaces to support multiple media tracks.

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #22301  (GitHub issue number if applicable)

<!-- Either: -->
- [x] There are tests for these changes OR
- [ ] These changes do not require tests because ___

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/22622)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2019-03-03 10:31:44 -05:00 committed by GitHub
commit 4ccbd1e87e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
19 changed files with 974 additions and 138 deletions

View file

@ -1068,10 +1068,10 @@
expected: FAIL
[HTMLMediaElement interface: document.createElement("video") must inherit property "audioTracks" with the proper type]
expected: FAIL
expected: PASS
[HTMLMediaElement interface: document.createElement("video") must inherit property "videoTracks" with the proper type]
expected: FAIL
expected: PASS
[HTMLMediaElement interface: document.createElement("video") must inherit property "textTracks" with the proper type]
expected: FAIL
@ -1137,10 +1137,10 @@
expected: FAIL
[HTMLMediaElement interface: document.createElement("audio") must inherit property "audioTracks" with the proper type]
expected: FAIL
expected: PASS
[HTMLMediaElement interface: document.createElement("audio") must inherit property "videoTracks" with the proper type]
expected: FAIL
expected: PASS
[HTMLMediaElement interface: document.createElement("audio") must inherit property "textTracks" with the proper type]
expected: FAIL
@ -1278,10 +1278,10 @@
expected: FAIL
[HTMLMediaElement interface: new Audio() must inherit property "audioTracks" with the proper type]
expected: FAIL
expected: PASS
[HTMLMediaElement interface: new Audio() must inherit property "videoTracks" with the proper type]
expected: FAIL
expected: PASS
[HTMLMediaElement interface: new Audio() must inherit property "textTracks" with the proper type]
expected: FAIL
@ -1422,10 +1422,10 @@
expected: FAIL
[HTMLMediaElement interface: attribute audioTracks]
expected: FAIL
expected: PASS
[HTMLMediaElement interface: attribute videoTracks]
expected: FAIL
expected: PASS
[HTMLMediaElement interface: attribute textTracks]
expected: FAIL
@ -1434,139 +1434,139 @@
expected: FAIL
[AudioTrackList interface: existence and properties of interface object]
expected: FAIL
expected: PASS
[AudioTrackList interface object length]
expected: FAIL
expected: PASS
[AudioTrackList interface object name]
expected: FAIL
expected: PASS
[AudioTrackList interface: existence and properties of interface prototype object]
expected: FAIL
expected: PASS
[AudioTrackList interface: existence and properties of interface prototype object's "constructor" property]
expected: FAIL
expected: PASS
[AudioTrackList interface: existence and properties of interface prototype object's @@unscopables property]
expected: FAIL
expected: PASS
[AudioTrackList interface: attribute length]
expected: FAIL
expected: PASS
[AudioTrackList interface: operation getTrackById(DOMString)]
expected: FAIL
expected: PASS
[AudioTrackList interface: attribute onchange]
expected: FAIL
expected: PASS
[AudioTrackList interface: attribute onaddtrack]
expected: FAIL
expected: PASS
[AudioTrackList interface: attribute onremovetrack]
expected: FAIL
expected: PASS
[AudioTrack interface: existence and properties of interface object]
expected: FAIL
expected: PASS
[AudioTrack interface object length]
expected: FAIL
expected: PASS
[AudioTrack interface object name]
expected: FAIL
expected: PASS
[AudioTrack interface: existence and properties of interface prototype object]
expected: FAIL
expected: PASS
[AudioTrack interface: existence and properties of interface prototype object's "constructor" property]
expected: FAIL
expected: PASS
[AudioTrack interface: existence and properties of interface prototype object's @@unscopables property]
expected: FAIL
expected: PASS
[AudioTrack interface: attribute id]
expected: FAIL
expected: PASS
[AudioTrack interface: attribute kind]
expected: FAIL
expected: PASS
[AudioTrack interface: attribute label]
expected: FAIL
expected: PASS
[AudioTrack interface: attribute language]
expected: FAIL
expected: PASS
[AudioTrack interface: attribute enabled]
expected: FAIL
expected: PASS
[VideoTrackList interface: existence and properties of interface object]
expected: FAIL
expected: PASS
[VideoTrackList interface object length]
expected: FAIL
expected: PASS
[VideoTrackList interface object name]
expected: FAIL
expected: PASS
[VideoTrackList interface: existence and properties of interface prototype object]
expected: FAIL
expected: PASS
[VideoTrackList interface: existence and properties of interface prototype object's "constructor" property]
expected: FAIL
expected: PASS
[VideoTrackList interface: existence and properties of interface prototype object's @@unscopables property]
expected: FAIL
expected: PASS
[VideoTrackList interface: attribute length]
expected: FAIL
expected: PASS
[VideoTrackList interface: operation getTrackById(DOMString)]
expected: FAIL
expected: PASS
[VideoTrackList interface: attribute selectedIndex]
expected: FAIL
expected: PASS
[VideoTrackList interface: attribute onchange]
expected: FAIL
expected: PASS
[VideoTrackList interface: attribute onaddtrack]
expected: FAIL
expected: PASS
[VideoTrackList interface: attribute onremovetrack]
expected: FAIL
expected: PASS
[VideoTrack interface: existence and properties of interface object]
expected: FAIL
expected: PASS
[VideoTrack interface object length]
expected: FAIL
expected: PASS
[VideoTrack interface object name]
expected: FAIL
expected: PASS
[VideoTrack interface: existence and properties of interface prototype object]
expected: FAIL
expected: PASS
[VideoTrack interface: existence and properties of interface prototype object's "constructor" property]
expected: FAIL
expected: PASS
[VideoTrack interface: existence and properties of interface prototype object's @@unscopables property]
expected: FAIL
expected: PASS
[VideoTrack interface: attribute id]
expected: FAIL
expected: PASS
[VideoTrack interface: attribute kind]
expected: FAIL
expected: PASS
[VideoTrack interface: attribute label]
expected: FAIL
expected: PASS
[VideoTrack interface: attribute language]
expected: FAIL
expected: PASS
[VideoTrack interface: attribute selected]
expected: FAIL
expected: PASS
[TextTrackList interface: existence and properties of interface object]
expected: FAIL
@ -1848,34 +1848,34 @@
expected: FAIL
[TrackEvent interface: existence and properties of interface object]
expected: FAIL
expected: PASS
[TrackEvent interface object length]
expected: FAIL
expected: PASS
[TrackEvent interface object name]
expected: FAIL
expected: PASS
[TrackEvent interface: existence and properties of interface prototype object]
expected: FAIL
expected: PASS
[TrackEvent interface: existence and properties of interface prototype object's "constructor" property]
expected: FAIL
expected: PASS
[TrackEvent interface: existence and properties of interface prototype object's @@unscopables property]
expected: FAIL
expected: PASS
[TrackEvent interface: attribute track]
expected: FAIL
expected: PASS
[TrackEvent must be primary interface of new TrackEvent("addtrack", {track:document.createElement("track").track})]
expected: FAIL
expected: PASS
[Stringification of new TrackEvent("addtrack", {track:document.createElement("track").track})]
expected: FAIL
expected: PASS
[TrackEvent interface: new TrackEvent("addtrack", {track:document.createElement("track").track}) must inherit property "track" with the proper type]
expected: FAIL
expected: PASS
[HTMLMapElement interface: attribute name]
expected: FAIL
@ -6784,10 +6784,10 @@
expected: FAIL
[HTMLMediaElement interface: document.createElement("video") must inherit property "audioTracks" with the proper type]
expected: FAIL
expected: PASS
[HTMLMediaElement interface: document.createElement("video") must inherit property "videoTracks" with the proper type]
expected: FAIL
expected: PASS
[HTMLMediaElement interface: document.createElement("audio") must inherit property "srcObject" with the proper type]
expected: FAIL
@ -6808,10 +6808,10 @@
expected: FAIL
[HTMLMediaElement interface: document.createElement("audio") must inherit property "audioTracks" with the proper type]
expected: FAIL
expected: PASS
[HTMLMediaElement interface: document.createElement("audio") must inherit property "videoTracks" with the proper type]
expected: FAIL
expected: PASS
[HTMLMediaElement interface: new Audio() must inherit property "srcObject" with the proper type]
expected: FAIL
@ -6832,10 +6832,10 @@
expected: FAIL
[HTMLMediaElement interface: new Audio() must inherit property "audioTracks" with the proper type]
expected: FAIL
expected: PASS
[HTMLMediaElement interface: new Audio() must inherit property "videoTracks" with the proper type]
expected: FAIL
expected: PASS
[HTMLMediaElement interface: attribute crossOrigin]
expected: FAIL
@ -6856,10 +6856,10 @@
expected: FAIL
[HTMLMediaElement interface: attribute audioTracks]
expected: FAIL
expected: PASS
[HTMLMediaElement interface: attribute videoTracks]
expected: FAIL
expected: PASS
[HTMLMapElement interface: attribute name]
expected: FAIL
@ -9408,139 +9408,139 @@
expected: FAIL
[AudioTrackList interface: existence and properties of interface object]
expected: FAIL
expected: PASS
[AudioTrackList interface object length]
expected: FAIL
expected: PASS
[AudioTrackList interface object name]
expected: FAIL
expected: PASS
[AudioTrackList interface: existence and properties of interface prototype object]
expected: FAIL
expected: PASS
[AudioTrackList interface: existence and properties of interface prototype object's "constructor" property]
expected: FAIL
expected: PASS
[AudioTrackList interface: existence and properties of interface prototype object's @@unscopables property]
expected: FAIL
expected: PASS
[AudioTrackList interface: attribute length]
expected: FAIL
expected: PASS
[AudioTrackList interface: operation getTrackById(DOMString)]
expected: FAIL
expected: PASS
[AudioTrackList interface: attribute onchange]
expected: FAIL
expected: PASS
[AudioTrackList interface: attribute onaddtrack]
expected: FAIL
expected: PASS
[AudioTrackList interface: attribute onremovetrack]
expected: FAIL
expected: PASS
[AudioTrack interface: existence and properties of interface object]
expected: FAIL
expected: PASS
[AudioTrack interface object length]
expected: FAIL
expected: PASS
[AudioTrack interface object name]
expected: FAIL
expected: PASS
[AudioTrack interface: existence and properties of interface prototype object]
expected: FAIL
expected: PASS
[AudioTrack interface: existence and properties of interface prototype object's "constructor" property]
expected: FAIL
expected: PASS
[AudioTrack interface: existence and properties of interface prototype object's @@unscopables property]
expected: FAIL
expected: PASS
[AudioTrack interface: attribute id]
expected: FAIL
expected: PASS
[AudioTrack interface: attribute kind]
expected: FAIL
expected: PASS
[AudioTrack interface: attribute label]
expected: FAIL
expected: PASS
[AudioTrack interface: attribute language]
expected: FAIL
expected: PASS
[AudioTrack interface: attribute enabled]
expected: FAIL
expected: PASS
[VideoTrackList interface: existence and properties of interface object]
expected: FAIL
expected: PASS
[VideoTrackList interface object length]
expected: FAIL
expected: PASS
[VideoTrackList interface object name]
expected: FAIL
expected: PASS
[VideoTrackList interface: existence and properties of interface prototype object]
expected: FAIL
expected: PASS
[VideoTrackList interface: existence and properties of interface prototype object's "constructor" property]
expected: FAIL
expected: PASS
[VideoTrackList interface: existence and properties of interface prototype object's @@unscopables property]
expected: FAIL
expected: PASS
[VideoTrackList interface: attribute length]
expected: FAIL
expected: PASS
[VideoTrackList interface: operation getTrackById(DOMString)]
expected: FAIL
expected: PASS
[VideoTrackList interface: attribute selectedIndex]
expected: FAIL
expected: PASS
[VideoTrackList interface: attribute onchange]
expected: FAIL
expected: PASS
[VideoTrackList interface: attribute onaddtrack]
expected: FAIL
expected: PASS
[VideoTrackList interface: attribute onremovetrack]
expected: FAIL
expected: PASS
[VideoTrack interface: existence and properties of interface object]
expected: FAIL
expected: PASS
[VideoTrack interface object length]
expected: FAIL
expected: PASS
[VideoTrack interface object name]
expected: FAIL
expected: PASS
[VideoTrack interface: existence and properties of interface prototype object]
expected: FAIL
expected: PASS
[VideoTrack interface: existence and properties of interface prototype object's "constructor" property]
expected: FAIL
expected: PASS
[VideoTrack interface: existence and properties of interface prototype object's @@unscopables property]
expected: FAIL
expected: PASS
[VideoTrack interface: attribute id]
expected: FAIL
expected: PASS
[VideoTrack interface: attribute kind]
expected: FAIL
expected: PASS
[VideoTrack interface: attribute label]
expected: FAIL
expected: PASS
[VideoTrack interface: attribute language]
expected: FAIL
expected: PASS
[VideoTrack interface: attribute selected]
expected: FAIL
expected: PASS
[TextTrack interface: attribute inBandMetadataTrackDispatchType]
expected: FAIL
@ -9549,34 +9549,34 @@
expected: FAIL
[TrackEvent interface: existence and properties of interface object]
expected: FAIL
expected: PASS
[TrackEvent interface object length]
expected: FAIL
expected: PASS
[TrackEvent interface object name]
expected: FAIL
expected: PASS
[TrackEvent interface: existence and properties of interface prototype object]
expected: FAIL
expected: PASS
[TrackEvent interface: existence and properties of interface prototype object's "constructor" property]
expected: FAIL
expected: PASS
[TrackEvent interface: existence and properties of interface prototype object's @@unscopables property]
expected: FAIL
expected: PASS
[TrackEvent interface: attribute track]
expected: FAIL
expected: PASS
[TrackEvent must be primary interface of new TrackEvent("addtrack", {track:document.createElement("track").track})]
expected: FAIL
expected: PASS
[Stringification of new TrackEvent("addtrack", {track:document.createElement("track").track})]
expected: FAIL
expected: PASS
[TrackEvent interface: new TrackEvent("addtrack", {track:document.createElement("track").track}) must inherit property "track" with the proper type]
expected: FAIL
expected: PASS
[ValidityState must be primary interface of document.createElement("input").validity]
expected: FAIL

View file

@ -1,7 +1,7 @@
[constructor.html]
[TrackEvent constructor, two args]
expected: FAIL
expected: PASS
[TrackEvent constructor, one arg]
expected: FAIL
expected: PASS

View file

@ -1,4 +1,4 @@
[createEvent.html]
[TrackEvent created with createEvent]
expected: FAIL
expected: PASS

View file

@ -19557,7 +19557,7 @@
"testharness"
],
"mozilla/interfaces.html": [
"55cafc9995da83d48230eed5b5c3863d8cf173c9",
"ab4ead5cfb5afc8b65cb71841e32ee46ec75318b",
"testharness"
],
"mozilla/interfaces.js": [

View file

@ -22,6 +22,8 @@ test_interfaces([
"AudioNode",
"AudioParam",
"AudioScheduledSourceNode",
"AudioTrack",
"AudioTrackList",
"BaseAudioContext",
"BeforeUnloadEvent",
"BiquadFilterNode",
@ -214,12 +216,15 @@ test_interfaces([
"Touch",
"TouchEvent",
"TouchList",
"TrackEvent",
"TransitionEvent",
"TreeWalker",
"UIEvent",
"URL",
"URLSearchParams",
"ValidityState",
"VideoTrack",
"VideoTrackList",
"WebAssembly",
"WebGLRenderingContext",
"WebGLUniformLocation",