mirror of
https://github.com/servo/servo.git
synced 2025-06-06 16:45:39 +00:00
Add dom.webxr.enabled pref
This commit is contained in:
parent
4b2fa5ef08
commit
241d93340b
14 changed files with 32 additions and 24 deletions
|
@ -633,7 +633,6 @@ impl VRDisplay {
|
||||||
|
|
||||||
fn handle_raf(&self, end_sender: &Sender<Result<(f64, f64), ()>>) {
|
fn handle_raf(&self, end_sender: &Sender<Result<(f64, f64), ()>>) {
|
||||||
self.frame_data_status.set(VRFrameDataStatus::Waiting);
|
self.frame_data_status.set(VRFrameDataStatus::Waiting);
|
||||||
|
|
||||||
|
|
||||||
let now = self.global().as_window().Performance().Now();
|
let now = self.global().as_window().Performance().Now();
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
// https://immersive-web.github.io/webxr/#xr-interface
|
// https://immersive-web.github.io/webxr/#xr-interface
|
||||||
[SecureContext, Exposed=Window]
|
[SecureContext, Exposed=Window, Pref="dom.webxr.enabled"]
|
||||||
interface XR: EventTarget {
|
interface XR: EventTarget {
|
||||||
// Methods
|
// Methods
|
||||||
Promise<void> supportsSessionMode(XRSessionMode mode);
|
Promise<void> supportsSessionMode(XRSessionMode mode);
|
||||||
|
@ -15,7 +15,7 @@ interface XR: EventTarget {
|
||||||
|
|
||||||
[SecureContext]
|
[SecureContext]
|
||||||
partial interface Navigator {
|
partial interface Navigator {
|
||||||
[SameObject, Pref="dom.webvr.enabled"] readonly attribute XR xr;
|
[SameObject, Pref="dom.webxr.enabled"] readonly attribute XR xr;
|
||||||
};
|
};
|
||||||
|
|
||||||
enum XRSessionMode {
|
enum XRSessionMode {
|
||||||
|
|
|
@ -4,9 +4,10 @@
|
||||||
|
|
||||||
// https://immersive-web.github.io/webxr/#xrframe-interface
|
// https://immersive-web.github.io/webxr/#xrframe-interface
|
||||||
|
|
||||||
[SecureContext, Exposed=Window] interface XRFrame {
|
[SecureContext, Exposed=Window, Pref="dom.webxr.enabled"]
|
||||||
|
interface XRFrame {
|
||||||
readonly attribute XRSession session;
|
readonly attribute XRSession session;
|
||||||
|
|
||||||
XRViewerPose? getViewerPose(optional XRReferenceSpace referenceSpace);
|
XRViewerPose? getViewerPose(optional XRReferenceSpace referenceSpace);
|
||||||
// XRInputPose? getInputPose(XRInputSource inputSource, optional XRReferenceSpace referenceSpace);
|
// XRInputPose? getInputPose(XRInputSource inputSource, optional XRReferenceSpace referenceSpace);
|
||||||
};
|
};
|
||||||
|
|
|
@ -4,4 +4,5 @@
|
||||||
|
|
||||||
// https://immersive-web.github.io/webxr/#xrlayer-interface
|
// https://immersive-web.github.io/webxr/#xrlayer-interface
|
||||||
|
|
||||||
[SecureContext, Exposed=Window] interface XRLayer {};
|
[SecureContext, Exposed=Window, Pref="dom.webxr.enabled"]
|
||||||
|
interface XRLayer {};
|
||||||
|
|
|
@ -14,7 +14,8 @@ dictionary XRReferenceSpaceOptions {
|
||||||
required XRReferenceSpaceType type;
|
required XRReferenceSpaceType type;
|
||||||
};
|
};
|
||||||
|
|
||||||
[SecureContext, Exposed=Window] interface XRReferenceSpace : XRSpace {
|
[SecureContext, Exposed=Window, Pref="dom.webxr.enabled"]
|
||||||
|
interface XRReferenceSpace : XRSpace {
|
||||||
// attribute XRRigidTransform originOffset;
|
// attribute XRRigidTransform originOffset;
|
||||||
// attribute EventHandler onreset;
|
// attribute EventHandler onreset;
|
||||||
};
|
};
|
||||||
|
|
|
@ -4,10 +4,10 @@
|
||||||
|
|
||||||
// https://immersive-web.github.io/webxr/#xrrigidtransform-interface
|
// https://immersive-web.github.io/webxr/#xrrigidtransform-interface
|
||||||
|
|
||||||
[SecureContext, Exposed=Window]
|
[SecureContext, Exposed=Window, Pref="dom.webxr.enabled"]
|
||||||
// [Constructor(optional DOMPointInit position, optional DOMPointInit orientation)]
|
// [Constructor(optional DOMPointInit position, optional DOMPointInit orientation)]
|
||||||
interface XRRigidTransform {
|
interface XRRigidTransform {
|
||||||
// readonly attribute DOMPointReadOnly position;
|
// readonly attribute DOMPointReadOnly position;
|
||||||
// readonly attribute DOMPointReadOnly orientation;
|
// readonly attribute DOMPointReadOnly orientation;
|
||||||
// readonly attribute Float32Array matrix;
|
// readonly attribute Float32Array matrix;
|
||||||
};
|
};
|
||||||
|
|
|
@ -12,7 +12,7 @@ enum XREnvironmentBlendMode {
|
||||||
|
|
||||||
callback XRFrameRequestCallback = void (DOMHighResTimeStamp time, XRFrame frame);
|
callback XRFrameRequestCallback = void (DOMHighResTimeStamp time, XRFrame frame);
|
||||||
|
|
||||||
[SecureContext, Exposed=Window] interface XRSession : EventTarget {
|
[SecureContext, Exposed=Window, Pref="dom.webxr.enabled"] interface XRSession : EventTarget {
|
||||||
// // Attributes
|
// // Attributes
|
||||||
readonly attribute XRSessionMode mode;
|
readonly attribute XRSessionMode mode;
|
||||||
// readonly attribute XRPresentationContext outputContext;
|
// readonly attribute XRPresentationContext outputContext;
|
||||||
|
@ -40,4 +40,4 @@ callback XRFrameRequestCallback = void (DOMHighResTimeStamp time, XRFrame frame)
|
||||||
// attribute EventHandler oninputsourceschange;
|
// attribute EventHandler oninputsourceschange;
|
||||||
// attribute EventHandler onselectstart;
|
// attribute EventHandler onselectstart;
|
||||||
// attribute EventHandler onselectend;
|
// attribute EventHandler onselectend;
|
||||||
};
|
};
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
[SecureContext, Exposed=Window] interface XRSpace : EventTarget {
|
[SecureContext, Exposed=Window, Pref="dom.webxr.enabled"]
|
||||||
|
interface XRSpace : EventTarget {
|
||||||
// XRRigidTransform? getTransformTo(XRSpace other);
|
// XRRigidTransform? getTransformTo(XRSpace other);
|
||||||
};
|
};
|
||||||
|
|
|
@ -14,7 +14,7 @@ dictionary XRStationaryReferenceSpaceOptions : XRReferenceSpaceOptions {
|
||||||
required XRStationaryReferenceSpaceSubtype subtype;
|
required XRStationaryReferenceSpaceSubtype subtype;
|
||||||
};
|
};
|
||||||
|
|
||||||
[SecureContext, Exposed=Window]
|
[SecureContext, Exposed=Window, Pref="dom.webxr.enabled"]
|
||||||
interface XRStationaryReferenceSpace: XRReferenceSpace {
|
interface XRStationaryReferenceSpace: XRReferenceSpace {
|
||||||
// readonly attribute XRStationaryReferenceSpaceSubtype subtype;
|
// readonly attribute XRStationaryReferenceSpaceSubtype subtype;
|
||||||
};
|
};
|
||||||
|
|
|
@ -9,9 +9,10 @@ enum XREye {
|
||||||
"right"
|
"right"
|
||||||
};
|
};
|
||||||
|
|
||||||
[SecureContext, Exposed=Window] interface XRView {
|
[SecureContext, Exposed=Window, Pref="dom.webxr.enabled"]
|
||||||
|
interface XRView {
|
||||||
readonly attribute XREye eye;
|
readonly attribute XREye eye;
|
||||||
readonly attribute Float32Array projectionMatrix;
|
readonly attribute Float32Array projectionMatrix;
|
||||||
readonly attribute Float32Array viewMatrix;
|
readonly attribute Float32Array viewMatrix;
|
||||||
// readonly attribute XRRigidTransform transform;
|
// readonly attribute XRRigidTransform transform;
|
||||||
};
|
};
|
||||||
|
|
|
@ -4,9 +4,10 @@
|
||||||
|
|
||||||
// https://immersive-web.github.io/webxr/#xrviewerpose-interface
|
// https://immersive-web.github.io/webxr/#xrviewerpose-interface
|
||||||
|
|
||||||
[SecureContext, Exposed=Window] interface XRViewerPose {
|
[SecureContext, Exposed=Window, Pref="dom.webxr.enabled"]
|
||||||
|
interface XRViewerPose {
|
||||||
// readonly attribute XRRigidTransform transform;
|
// readonly attribute XRRigidTransform transform;
|
||||||
// readonly attribute FrozenArray<XRView> views;
|
// readonly attribute FrozenArray<XRView> views;
|
||||||
// workaround until we have FrozenArray
|
// workaround until we have FrozenArray
|
||||||
sequence<XRView> views();
|
sequence<XRView> views();
|
||||||
};
|
};
|
||||||
|
|
|
@ -4,9 +4,10 @@
|
||||||
|
|
||||||
// https://immersive-web.github.io/webxr/#xrviewport-interface
|
// https://immersive-web.github.io/webxr/#xrviewport-interface
|
||||||
|
|
||||||
[SecureContext, Exposed=Window] interface XRViewport {
|
[SecureContext, Exposed=Window, Pref="dom.webxr.enabled"]
|
||||||
|
interface XRViewport {
|
||||||
readonly attribute long x;
|
readonly attribute long x;
|
||||||
readonly attribute long y;
|
readonly attribute long y;
|
||||||
readonly attribute long width;
|
readonly attribute long width;
|
||||||
readonly attribute long height;
|
readonly attribute long height;
|
||||||
};
|
};
|
||||||
|
|
|
@ -19,7 +19,8 @@ dictionary XRWebGLLayerInit {
|
||||||
|
|
||||||
[SecureContext, Exposed=Window, Constructor(XRSession session,
|
[SecureContext, Exposed=Window, Constructor(XRSession session,
|
||||||
XRWebGLRenderingContext context,
|
XRWebGLRenderingContext context,
|
||||||
optional XRWebGLLayerInit layerInit)]
|
optional XRWebGLLayerInit layerInit),
|
||||||
|
Pref="dom.webxr.enabled"]
|
||||||
interface XRWebGLLayer : XRLayer {
|
interface XRWebGLLayer : XRLayer {
|
||||||
// // Attributes
|
// // Attributes
|
||||||
readonly attribute XRWebGLRenderingContext context;
|
readonly attribute XRWebGLRenderingContext context;
|
||||||
|
@ -39,4 +40,4 @@ interface XRWebGLLayer : XRLayer {
|
||||||
|
|
||||||
// // Static Methods
|
// // Static Methods
|
||||||
// static double getNativeFramebufferScaleFactor(XRSession session);
|
// static double getNativeFramebufferScaleFactor(XRSession session);
|
||||||
};
|
};
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
"windows": {},
|
"windows": {},
|
||||||
"vr": {
|
"vr": {
|
||||||
"_comment": "settings specific to VR builds",
|
"_comment": "settings specific to VR builds",
|
||||||
"dom.webvr.enabled": true
|
"dom.webvr.enabled": true,
|
||||||
|
"dom.webxr.enabled": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue