diff options
-rw-r--r-- | components/script/dom/mediastream.rs | 34 | ||||
-rw-r--r-- | components/script/dom/mod.rs | 1 | ||||
-rw-r--r-- | components/script/dom/webidls/MediaStream.webidl | 24 |
3 files changed, 59 insertions, 0 deletions
diff --git a/components/script/dom/mediastream.rs b/components/script/dom/mediastream.rs new file mode 100644 index 00000000000..2641a9929bb --- /dev/null +++ b/components/script/dom/mediastream.rs @@ -0,0 +1,34 @@ +/* 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/. */ + +use crate::dom::bindings::codegen::Bindings::MediaStreamBinding; +use crate::dom::bindings::error::Fallible; +use crate::dom::bindings::reflector::reflect_dom_object; +use crate::dom::bindings::reflector::DomObject; +use crate::dom::bindings::root::DomRoot; +use crate::dom::eventtarget::EventTarget; +use crate::dom::globalscope::GlobalScope; +use crate::dom::window::Window; +use dom_struct::dom_struct; + +#[dom_struct] +pub struct MediaStream { + eventtarget: EventTarget, +} + +impl MediaStream { + pub fn new_inherited() -> MediaStream { + MediaStream { + eventtarget: EventTarget::new_inherited(), + } + } + + pub fn new(global: &GlobalScope) -> DomRoot<MediaStream> { + reflect_dom_object( + Box::new(MediaStream::new_inherited()), + global, + MediaStreamBinding::Wrap, + ) + } +} diff --git a/components/script/dom/mod.rs b/components/script/dom/mod.rs index 6d7dbcc92ab..a965b6893bc 100644 --- a/components/script/dom/mod.rs +++ b/components/script/dom/mod.rs @@ -394,6 +394,7 @@ pub mod mediaerror; pub mod medialist; pub mod mediaquerylist; pub mod mediaquerylistevent; +pub mod mediastream; pub mod messageevent; pub mod mimetype; pub mod mimetypearray; diff --git a/components/script/dom/webidls/MediaStream.webidl b/components/script/dom/webidls/MediaStream.webidl new file mode 100644 index 00000000000..0257e3c6061 --- /dev/null +++ b/components/script/dom/webidls/MediaStream.webidl @@ -0,0 +1,24 @@ +/* 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://w3c.github.io/mediacapture-main/#dom-mediastream + +// [Exposed=Window, +// Constructor, +// Constructor(MediaStream stream), +// Constructor(sequence<MediaStreamTrack> tracks)] +[Exposed=Window, Pref="dom.webrtc.enabled"] +interface MediaStream : EventTarget { + // readonly attribute DOMString id; + // sequence<MediaStreamTrack> getAudioTracks(); + // sequence<MediaStreamTrack> getVideoTracks(); + // sequence<MediaStreamTrack> getTracks(); + // MediaStreamTrack? getTrackById(DOMString trackId); + // void addTrack(MediaStreamTrack track); + // void removeTrack(MediaStreamTrack track); + // MediaStream clone(); + // readonly attribute boolean active; + // attribute EventHandler onaddtrack; + // attribute EventHandler onremovetrack; +}; |