aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom
diff options
context:
space:
mode:
authorManish Goregaokar <manishsmail@gmail.com>2019-05-07 14:45:48 -0700
committerManish Goregaokar <manishsmail@gmail.com>2019-05-08 08:15:01 -0700
commit477ca175e38b232535bdad47eb71f1f2152b4da4 (patch)
treed8186fb3a40d05870195c1aef347936f66a74214 /components/script/dom
parent571c3d6d0e9785a611f39357ca9736259aa23004 (diff)
downloadservo-477ca175e38b232535bdad47eb71f1f2152b4da4.tar.gz
servo-477ca175e38b232535bdad47eb71f1f2152b4da4.zip
Add MediaStream.addTrack() and MediaStream.removeTrack()
Diffstat (limited to 'components/script/dom')
-rw-r--r--components/script/dom/mediastream.rs15
-rw-r--r--components/script/dom/webidls/MediaStream.webidl4
2 files changed, 17 insertions, 2 deletions
diff --git a/components/script/dom/mediastream.rs b/components/script/dom/mediastream.rs
index 395abd95ab6..38a9ce5f652 100644
--- a/components/script/dom/mediastream.rs
+++ b/components/script/dom/mediastream.rs
@@ -83,4 +83,19 @@ impl MediaStreamMethods for MediaStream {
.find(|x| x.id().id().to_string() == &*id)
.map(|x| DomRoot::from_ref(&**x))
}
+
+ /// https://w3c.github.io/mediacapture-main/#dom-mediastream-addtrack
+ fn AddTrack(&self, track: &MediaStreamTrack) {
+ let existing = self.tracks.borrow().iter().find(|x| *x == &track).is_some();
+
+ if existing {
+ return;
+ }
+ self.add_track(track)
+ }
+
+ /// https://w3c.github.io/mediacapture-main/#dom-mediastream-removetrack
+ fn RemoveTrack(&self, track: &MediaStreamTrack) {
+ self.tracks.borrow_mut().retain(|x| *x != track);
+ }
}
diff --git a/components/script/dom/webidls/MediaStream.webidl b/components/script/dom/webidls/MediaStream.webidl
index 10b151225de..5b991f2e53a 100644
--- a/components/script/dom/webidls/MediaStream.webidl
+++ b/components/script/dom/webidls/MediaStream.webidl
@@ -15,8 +15,8 @@ interface MediaStream : EventTarget {
sequence<MediaStreamTrack> getVideoTracks();
sequence<MediaStreamTrack> getTracks();
MediaStreamTrack? getTrackById(DOMString trackId);
- // void addTrack(MediaStreamTrack track);
- // void removeTrack(MediaStreamTrack track);
+ void addTrack(MediaStreamTrack track);
+ void removeTrack(MediaStreamTrack track);
// MediaStream clone();
// readonly attribute boolean active;
// attribute EventHandler onaddtrack;