aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--components/script/dom/mediastream.rs34
-rw-r--r--components/script/dom/mod.rs1
-rw-r--r--components/script/dom/webidls/MediaStream.webidl24
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;
+};