aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--components/script/dom/navigator.rs8
-rw-r--r--components/script/dom/webidls/MediaDevices.webidl2
2 files changed, 9 insertions, 1 deletions
diff --git a/components/script/dom/navigator.rs b/components/script/dom/navigator.rs
index 1d60759f1d7..49d7646b3c8 100644
--- a/components/script/dom/navigator.rs
+++ b/components/script/dom/navigator.rs
@@ -10,6 +10,7 @@ use crate::dom::bindings::root::{DomRoot, MutNullableDom};
use crate::dom::bindings::str::DOMString;
use crate::dom::bluetooth::Bluetooth;
use crate::dom::gamepadlist::GamepadList;
+use crate::dom::mediadevices::MediaDevices;
use crate::dom::mimetypearray::MimeTypeArray;
use crate::dom::navigatorinfo;
use crate::dom::permissions::Permissions;
@@ -29,6 +30,7 @@ pub struct Navigator {
mime_types: MutNullableDom<MimeTypeArray>,
service_worker: MutNullableDom<ServiceWorkerContainer>,
xr: MutNullableDom<XR>,
+ mediadevices: MutNullableDom<MediaDevices>,
gamepads: MutNullableDom<GamepadList>,
permissions: MutNullableDom<Permissions>,
}
@@ -42,6 +44,7 @@ impl Navigator {
mime_types: Default::default(),
service_worker: Default::default(),
xr: Default::default(),
+ mediadevices: Default::default(),
gamepads: Default::default(),
permissions: Default::default(),
}
@@ -161,4 +164,9 @@ impl NavigatorMethods for Navigator {
fn Xr(&self) -> DomRoot<XR> {
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()))
+ }
}
diff --git a/components/script/dom/webidls/MediaDevices.webidl b/components/script/dom/webidls/MediaDevices.webidl
index d22dbb2dff4..da877bde267 100644
--- a/components/script/dom/webidls/MediaDevices.webidl
+++ b/components/script/dom/webidls/MediaDevices.webidl
@@ -13,7 +13,7 @@ interface MediaDevices : EventTarget {
partial interface Navigator {
// [SameObject, SecureContext]
- // readonly attribute MediaDevices mediaDevices;
+ [Pref="dom.webrtc.enabled"] readonly attribute MediaDevices mediaDevices;
};
partial interface MediaDevices {