Add Navigator::MediaDevices

This commit is contained in:
Manish Goregaokar 2019-01-28 13:15:38 -08:00
parent 8b55d69fe1
commit eee183d7f4
2 changed files with 9 additions and 1 deletions

View file

@ -10,6 +10,7 @@ use crate::dom::bindings::root::{DomRoot, MutNullableDom};
use crate::dom::bindings::str::DOMString; use crate::dom::bindings::str::DOMString;
use crate::dom::bluetooth::Bluetooth; use crate::dom::bluetooth::Bluetooth;
use crate::dom::gamepadlist::GamepadList; use crate::dom::gamepadlist::GamepadList;
use crate::dom::mediadevices::MediaDevices;
use crate::dom::mimetypearray::MimeTypeArray; use crate::dom::mimetypearray::MimeTypeArray;
use crate::dom::navigatorinfo; use crate::dom::navigatorinfo;
use crate::dom::permissions::Permissions; use crate::dom::permissions::Permissions;
@ -29,6 +30,7 @@ pub struct Navigator {
mime_types: MutNullableDom<MimeTypeArray>, mime_types: MutNullableDom<MimeTypeArray>,
service_worker: MutNullableDom<ServiceWorkerContainer>, service_worker: MutNullableDom<ServiceWorkerContainer>,
xr: MutNullableDom<XR>, xr: MutNullableDom<XR>,
mediadevices: MutNullableDom<MediaDevices>,
gamepads: MutNullableDom<GamepadList>, gamepads: MutNullableDom<GamepadList>,
permissions: MutNullableDom<Permissions>, permissions: MutNullableDom<Permissions>,
} }
@ -42,6 +44,7 @@ impl Navigator {
mime_types: Default::default(), mime_types: Default::default(),
service_worker: Default::default(), service_worker: Default::default(),
xr: Default::default(), xr: Default::default(),
mediadevices: Default::default(),
gamepads: Default::default(), gamepads: Default::default(),
permissions: Default::default(), permissions: Default::default(),
} }
@ -161,4 +164,9 @@ impl NavigatorMethods for Navigator {
fn Xr(&self) -> DomRoot<XR> { fn Xr(&self) -> DomRoot<XR> {
self.xr.or_init(|| XR::new(&self.global())) self.xr.or_init(|| XR::new(&self.global()))
} }
/// https://w3c.github.io/mediacapture-main/#dom-navigator-mediadevices
fn MediaDevices(&self) -> DomRoot<MediaDevices> {
self.mediadevices.or_init(|| MediaDevices::new(&self.global()))
}
} }

View file

@ -13,7 +13,7 @@ interface MediaDevices : EventTarget {
partial interface Navigator { partial interface Navigator {
// [SameObject, SecureContext] // [SameObject, SecureContext]
// readonly attribute MediaDevices mediaDevices; [Pref="dom.webrtc.enabled"] readonly attribute MediaDevices mediaDevices;
}; };
partial interface MediaDevices { partial interface MediaDevices {