Add {MediaStream, MediaStreamTrack}.clone()

This commit is contained in:
Manish Goregaokar 2019-05-07 14:56:46 -07:00
parent 477ca175e3
commit 229ce36431
4 changed files with 18 additions and 4 deletions

View file

@ -4,7 +4,7 @@
use crate::dom::bindings::cell::DomRefCell;
use crate::dom::bindings::codegen::Bindings::MediaStreamBinding::{self, MediaStreamMethods};
use crate::dom::bindings::reflector::reflect_dom_object;
use crate::dom::bindings::reflector::{reflect_dom_object, DomObject};
use crate::dom::bindings::root::{Dom, DomRoot};
use crate::dom::bindings::str::DOMString;
use crate::dom::eventtarget::EventTarget;
@ -98,4 +98,13 @@ impl MediaStreamMethods for MediaStream {
fn RemoveTrack(&self, track: &MediaStreamTrack) {
self.tracks.borrow_mut().retain(|x| *x != track);
}
/// https://w3c.github.io/mediacapture-main/#dom-mediastream-clone
fn Clone(&self) -> DomRoot<MediaStream> {
let new = MediaStream::new(&self.global());
for track in &*self.tracks.borrow() {
new.add_track(&track)
}
new
}
}