aboutsummaryrefslogtreecommitdiffstats
path: root/components/script
diff options
context:
space:
mode:
Diffstat (limited to 'components/script')
-rw-r--r--components/script/dom/webidls/XRInputSourceArray.webidl6
-rw-r--r--components/script/dom/xrinputsourcearray.rs16
2 files changed, 19 insertions, 3 deletions
diff --git a/components/script/dom/webidls/XRInputSourceArray.webidl b/components/script/dom/webidls/XRInputSourceArray.webidl
index 939371bf417..f8a0eb4308d 100644
--- a/components/script/dom/webidls/XRInputSourceArray.webidl
+++ b/components/script/dom/webidls/XRInputSourceArray.webidl
@@ -6,7 +6,7 @@
[SecureContext, Exposed=Window, Pref="dom.webxr.enabled"]
interface XRInputSourceArray {
- // iterable<XRInputSource>;
- // readonly attribute unsigned long length;
- // getter XRInputSource(unsigned long index);
+ iterable<XRInputSource>;
+ readonly attribute unsigned long length;
+ getter XRInputSource(unsigned long index);
};
diff --git a/components/script/dom/xrinputsourcearray.rs b/components/script/dom/xrinputsourcearray.rs
index bf63e38e073..b0565940373 100644
--- a/components/script/dom/xrinputsourcearray.rs
+++ b/components/script/dom/xrinputsourcearray.rs
@@ -4,6 +4,7 @@
use crate::dom::bindings::cell::DomRefCell;
use crate::dom::bindings::codegen::Bindings::XRInputSourceArrayBinding;
+use crate::dom::bindings::codegen::Bindings::XRInputSourceArrayBinding::XRInputSourceArrayMethods;
use crate::dom::bindings::reflector::{reflect_dom_object, DomObject, Reflector};
use crate::dom::bindings::root::{Dom, DomRoot};
use crate::dom::globalscope::GlobalScope;
@@ -46,3 +47,18 @@ impl XRInputSourceArray {
});
}
}
+
+impl XRInputSourceArrayMethods for XRInputSourceArray {
+ /// https://immersive-web.github.io/webxr/#dom-xrinputsourcearray-length
+ fn Length(&self) -> u32 {
+ self.input_sources.borrow().len() as u32
+ }
+
+ /// https://immersive-web.github.io/webxr/#xrinputsourcearray
+ fn IndexedGetter(&self, n: u32) -> Option<DomRoot<XRInputSource>> {
+ self.input_sources
+ .borrow()
+ .get(n as usize)
+ .map(|x| DomRoot::from_ref(&**x))
+ }
+}