mirror of
https://github.com/servo/servo.git
synced 2025-08-06 14:10:11 +01:00
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:
commit
4ccbd1e87e
19 changed files with 974 additions and 138 deletions
14
components/script/dom/webidls/AudioTrack.webidl
Normal file
14
components/script/dom/webidls/AudioTrack.webidl
Normal file
|
@ -0,0 +1,14 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#audiotrack
|
||||
|
||||
[Exposed=Window]
|
||||
interface AudioTrack {
|
||||
readonly attribute DOMString id;
|
||||
readonly attribute DOMString kind;
|
||||
readonly attribute DOMString label;
|
||||
readonly attribute DOMString language;
|
||||
attribute boolean enabled;
|
||||
};
|
16
components/script/dom/webidls/AudioTrackList.webidl
Normal file
16
components/script/dom/webidls/AudioTrackList.webidl
Normal file
|
@ -0,0 +1,16 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#audiotracklist
|
||||
|
||||
[Exposed=Window]
|
||||
interface AudioTrackList : EventTarget {
|
||||
readonly attribute unsigned long length;
|
||||
getter AudioTrack (unsigned long index);
|
||||
AudioTrack? getTrackById(DOMString id);
|
||||
|
||||
attribute EventHandler onchange;
|
||||
attribute EventHandler onaddtrack;
|
||||
attribute EventHandler onremovetrack;
|
||||
};
|
|
@ -59,8 +59,8 @@ interface HTMLMediaElement : HTMLElement {
|
|||
[CEReactions] attribute boolean defaultMuted;
|
||||
|
||||
// tracks
|
||||
// readonly attribute AudioTrackList audioTracks;
|
||||
// readonly attribute VideoTrackList videoTracks;
|
||||
readonly attribute AudioTrackList audioTracks;
|
||||
readonly attribute VideoTrackList videoTracks;
|
||||
readonly attribute TextTrackList textTracks;
|
||||
TextTrack addTextTrack(TextTrackKind kind, optional DOMString label = "", optional DOMString language = "");
|
||||
};
|
||||
|
|
15
components/script/dom/webidls/TrackEvent.webidl
Normal file
15
components/script/dom/webidls/TrackEvent.webidl
Normal file
|
@ -0,0 +1,15 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#the-trackevent-interface
|
||||
|
||||
[Exposed=Window,
|
||||
Constructor(DOMString type, optional TrackEventInit eventInitDict)]
|
||||
interface TrackEvent : Event {
|
||||
readonly attribute (VideoTrack or AudioTrack or TextTrack)? track;
|
||||
};
|
||||
|
||||
dictionary TrackEventInit : EventInit {
|
||||
(VideoTrack or AudioTrack or TextTrack)? track = null;
|
||||
};
|
14
components/script/dom/webidls/VideoTrack.webidl
Normal file
14
components/script/dom/webidls/VideoTrack.webidl
Normal file
|
@ -0,0 +1,14 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#videotrack
|
||||
|
||||
[Exposed=Window]
|
||||
interface VideoTrack {
|
||||
readonly attribute DOMString id;
|
||||
readonly attribute DOMString kind;
|
||||
readonly attribute DOMString label;
|
||||
readonly attribute DOMString language;
|
||||
attribute boolean selected;
|
||||
};
|
17
components/script/dom/webidls/VideoTrackList.webidl
Normal file
17
components/script/dom/webidls/VideoTrackList.webidl
Normal file
|
@ -0,0 +1,17 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#videotracklist
|
||||
|
||||
[Exposed=Window]
|
||||
interface VideoTrackList : EventTarget {
|
||||
readonly attribute unsigned long length;
|
||||
getter VideoTrack (unsigned long index);
|
||||
VideoTrack? getTrackById(DOMString id);
|
||||
readonly attribute long selectedIndex;
|
||||
|
||||
attribute EventHandler onchange;
|
||||
attribute EventHandler onaddtrack;
|
||||
attribute EventHandler onremovetrack;
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue