Skip to content
Permalink
Browse files

Add XR.test()

  • Loading branch information...
Manishearth committed May 29, 2019
1 parent 422fadd commit c689866d3545c5adadcdbf19362894faf52d660e
Showing with 14 additions and 0 deletions.
  1. +5 −0 components/script/dom/webidls/XR.webidl
  2. +8 −0 components/script/dom/xr.rs
  3. +1 −0 python/tidy/servo_tidy/tidy.py
@@ -28,3 +28,8 @@ dictionary XRSessionCreationOptions {
XRSessionMode mode = "inline";
// XRPresentationContext outputContext;
};

partial interface XR {
// https://github.com/immersive-web/webxr-test-api/
[SameObject, Pref="dom.webxr.test"] readonly attribute XRTest test;
};
@@ -21,6 +21,7 @@ use crate::dom::promise::Promise;
use crate::dom::vrdisplay::VRDisplay;
use crate::dom::vrdisplayevent::VRDisplayEvent;
use crate::dom::xrsession::XRSession;
use crate::dom::xrtest::XRTest;
use dom_struct::dom_struct;
use ipc_channel::ipc::IpcSender;
use profile_traits::ipc;
@@ -36,6 +37,7 @@ pub struct XR {
gamepads: DomRefCell<Vec<Dom<Gamepad>>>,
pending_immersive_session: Cell<bool>,
active_immersive_session: MutNullableDom<VRDisplay>,
test: MutNullableDom<XRTest>,
}

impl XR {
@@ -46,6 +48,7 @@ impl XR {
gamepads: DomRefCell::new(Vec::new()),
pending_immersive_session: Cell::new(false),
active_immersive_session: Default::default(),
test: Default::default(),
}
}

@@ -141,6 +144,11 @@ impl XRMethods for XR {
session.xr_present(promise.clone());
promise
}

// https://github.com/immersive-web/webxr-test-api/blob/master/explainer.md
fn Test(&self) -> DomRoot<XRTest> {
self.test.or_init(|| XRTest::new(&self.global()))
}
}

impl XR {
@@ -98,6 +98,7 @@ def wpt_path(*args):
"//wicg.github.io",
"//webaudio.github.io",
"//immersive-web.github.io/",
"//github.com/immersive-web/webxr-test-api/",
# Not a URL
"// This interface is entirely internal to Servo, and should not be" +
" accessible to\n// web pages."

0 comments on commit c689866

Please sign in to comment.
You can’t perform that action at this time.