diff options
author | Josh Matthews <josh@joshmatthews.net> | 2024-11-24 13:01:35 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-11-24 18:01:35 +0000 |
commit | 3faed9b9212fee1f0ff9be5f7cfb5e24c5b84b91 (patch) | |
tree | f59efff26edc58b9cd32c08da070a6e27655ae82 /components/script/dom | |
parent | e956f3124c230549c6ef4a63e2c27e56d0965453 (diff) | |
download | servo-3faed9b9212fee1f0ff9be5f7cfb5e24c5b84b91.tar.gz servo-3faed9b9212fee1f0ff9be5f7cfb5e24c5b84b91.zip |
Filter out webidl files based on special comments, and feature-gate webxr interfaces. (#34348)
* Filter out webidl files based on skip-if directives.
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
* script: Don't build XR functionality without webxr feature.
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
* Fix tidy.
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
* script: Adjust imports for file movement.
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
* Fix clippy.
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
* Formatting.
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
* Clean up webxr module import.
Co-authored-by: Samson <16504129+sagudev@users.noreply.github.com>
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
---------
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
Co-authored-by: Samson <16504129+sagudev@users.noreply.github.com>
Diffstat (limited to 'components/script/dom')
91 files changed, 200 insertions, 52 deletions
diff --git a/components/script/dom/bindings/codegen/run.py b/components/script/dom/bindings/codegen/run.py index 52840b1b1d3..2dee39814b2 100644 --- a/components/script/dom/bindings/codegen/run.py +++ b/components/script/dom/bindings/codegen/run.py @@ -5,10 +5,13 @@ import os import sys import json +import re SCRIPT_PATH = os.path.abspath(os.path.dirname(__file__)) SERVO_ROOT = os.path.abspath(os.path.join(SCRIPT_PATH, "..", "..", "..", "..", "..")) +FILTER_PATTERN = re.compile("// skip-unless ([A-Z_]+)\n") + def main(): os.chdir(os.path.join(os.path.dirname(__file__))) @@ -32,7 +35,14 @@ def main(): for webidl in webidls: filename = os.path.join(webidls_dir, webidl) with open(filename, "r", encoding="utf-8") as f: - parser.parse(f.read(), filename) + contents = f.read() + filter_match = FILTER_PATTERN.search(contents) + if filter_match: + env_var = filter_match.group(1) + if not os.environ.get(env_var): + continue + + parser.parse(contents, filename) add_css_properties_attributes(css_properties_json, parser) parser_results = parser.finish() diff --git a/components/script/dom/bindings/trace.rs b/components/script/dom/bindings/trace.rs index 06ec5b92d89..9e1373279ab 100644 --- a/components/script/dom/bindings/trace.rs +++ b/components/script/dom/bindings/trace.rs @@ -53,6 +53,7 @@ use style::stylesheet_set::{AuthorStylesheetSet, DocumentStylesheetSet}; use tendril::fmt::UTF8; use tendril::stream::LossyDecoder; use tendril::TendrilSink; +#[cfg(feature = "webxr")] use webxr_api::{Finger, Hand}; use crate::dom::bindings::cell::DomRefCell; @@ -424,6 +425,7 @@ where } } +#[cfg(feature = "webxr")] unsafe impl<J> CustomTraceable for Hand<J> where J: JSTraceable, @@ -454,6 +456,7 @@ where } } +#[cfg(feature = "webxr")] unsafe impl<J> CustomTraceable for Finger<J> where J: JSTraceable, diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs index dc228788b94..ed66eff6a47 100644 --- a/components/script/dom/document.rs +++ b/components/script/dom/document.rs @@ -2538,6 +2538,7 @@ impl Document { // TODO: should this only happen on the first document loaded? // https://immersive-web.github.io/webxr/#user-intention // https://github.com/immersive-web/navigation/issues/10 + #[cfg(feature = "webxr")] if pref!(dom.webxr.sessionavailable) && self.window.is_top_level() { self.window.Navigator().Xr().dispatch_sessionavailable(); } diff --git a/components/script/dom/mod.rs b/components/script/dom/mod.rs index 02e441476f6..3deecb1cb0d 100644 --- a/components/script/dom/mod.rs +++ b/components/script/dom/mod.rs @@ -308,8 +308,6 @@ pub mod eventsource; pub mod eventtarget; pub mod extendableevent; pub mod extendablemessageevent; -pub mod fakexrdevice; -pub mod fakexrinputcontroller; pub mod file; pub mod filelist; pub mod filereader; @@ -614,6 +612,10 @@ pub mod webgluniformlocation; pub mod webglvertexarrayobject; pub mod webglvertexarrayobjectoes; pub mod websocket; +#[cfg(feature = "webxr")] +mod webxr; +#[cfg(feature = "webxr")] +pub use self::webxr::*; pub mod wheelevent; pub mod window; pub mod windowproxy; @@ -628,42 +630,4 @@ pub mod xmlhttprequest; pub mod xmlhttprequesteventtarget; pub mod xmlhttprequestupload; pub mod xmlserializer; -pub mod xrboundedreferencespace; -pub mod xrcompositionlayer; -pub mod xrcubelayer; -pub mod xrcylinderlayer; -pub mod xrequirectlayer; -pub mod xrframe; -pub mod xrhand; -pub mod xrhittestresult; -pub mod xrhittestsource; -pub mod xrinputsource; -pub mod xrinputsourcearray; -pub mod xrinputsourceevent; -pub mod xrinputsourceschangeevent; -pub mod xrjointpose; -pub mod xrjointspace; -pub mod xrlayer; -pub mod xrlayerevent; -pub mod xrmediabinding; -pub mod xrpose; -pub mod xrprojectionlayer; -pub mod xrquadlayer; -pub mod xrray; -pub mod xrreferencespace; -pub mod xrreferencespaceevent; -pub mod xrrenderstate; -pub mod xrrigidtransform; -pub mod xrsession; -pub mod xrsessionevent; -pub mod xrspace; -pub mod xrsubimage; -pub mod xrsystem; -pub mod xrtest; -pub mod xrview; -pub mod xrviewerpose; -pub mod xrviewport; -pub mod xrwebglbinding; -pub mod xrwebgllayer; -pub mod xrwebglsubimage; pub use self::webgl_extensions::ext::*; diff --git a/components/script/dom/navigator.rs b/components/script/dom/navigator.rs index 10b9732ddb6..16325907f32 100644 --- a/components/script/dom/navigator.rs +++ b/components/script/dom/navigator.rs @@ -28,6 +28,7 @@ use crate::dom::permissions::Permissions; use crate::dom::pluginarray::PluginArray; use crate::dom::serviceworkercontainer::ServiceWorkerContainer; use crate::dom::window::Window; +#[cfg(feature = "webxr")] use crate::dom::xrsystem::XRSystem; use crate::script_runtime::{CanGc, JSContext}; @@ -44,6 +45,7 @@ pub struct Navigator { plugins: MutNullableDom<PluginArray>, mime_types: MutNullableDom<MimeTypeArray>, service_worker: MutNullableDom<ServiceWorkerContainer>, + #[cfg(feature = "webxr")] xr: MutNullableDom<XRSystem>, mediadevices: MutNullableDom<MediaDevices>, /// <https://www.w3.org/TR/gamepad/#dfn-gamepads> @@ -63,6 +65,7 @@ impl Navigator { plugins: Default::default(), mime_types: Default::default(), service_worker: Default::default(), + #[cfg(feature = "webxr")] xr: Default::default(), mediadevices: Default::default(), gamepads: Default::default(), @@ -77,6 +80,7 @@ impl Navigator { reflect_dom_object(Box::new(Navigator::new_inherited()), window) } + #[cfg(feature = "webxr")] pub fn xr(&self) -> Option<DomRoot<XRSystem>> { self.xr.get() } @@ -250,6 +254,7 @@ impl NavigatorMethods<crate::DomTypeHolder> for Navigator { } /// <https://immersive-web.github.io/webxr/#dom-navigator-xr> + #[cfg(feature = "webxr")] fn Xr(&self) -> DomRoot<XRSystem> { self.xr.or_init(|| XRSystem::new(self.global().as_window())) } diff --git a/components/script/dom/webgl2renderingcontext.rs b/components/script/dom/webgl2renderingcontext.rs index 80a73014ebc..acafcf04bc6 100644 --- a/components/script/dom/webgl2renderingcontext.rs +++ b/components/script/dom/webgl2renderingcontext.rs @@ -4569,6 +4569,7 @@ impl WebGL2RenderingContextMethods<crate::DomTypeHolder> for WebGL2RenderingCont } /// <https://immersive-web.github.io/webxr/#dom-webglrenderingcontextbase-makexrcompatible> + #[cfg(feature = "webxr")] fn MakeXRCompatible(&self, can_gc: CanGc) -> Rc<Promise> { // XXXManishearth Fill in with compatibility checks when rust-webxr supports this let p = Promise::new(&self.global(), can_gc); diff --git a/components/script/dom/webglframebuffer.rs b/components/script/dom/webglframebuffer.rs index f2b6c24dfac..5fb4f2efa7a 100644 --- a/components/script/dom/webglframebuffer.rs +++ b/components/script/dom/webglframebuffer.rs @@ -2,6 +2,8 @@ * 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/. */ +#![allow(unused_imports)] + // https://www.khronos.org/registry/webgl/specs/latest/1.0/webgl.idl use std::cell::Cell; @@ -11,6 +13,7 @@ use canvas_traits::webgl::{ }; use dom_struct::dom_struct; use euclid::Size2D; +#[cfg(feature = "webxr")] use webxr_api::Viewport; use crate::dom::bindings::cell::DomRefCell; @@ -22,6 +25,7 @@ use crate::dom::webglobject::WebGLObject; use crate::dom::webglrenderbuffer::WebGLRenderbuffer; use crate::dom::webglrenderingcontext::{Operation, WebGLRenderingContext}; use crate::dom::webgltexture::WebGLTexture; +#[cfg(feature = "webxr")] use crate::dom::xrsession::XRSession; pub enum CompleteForRendering { @@ -108,6 +112,7 @@ pub struct WebGLFramebuffer { is_initialized: Cell<bool>, // Framebuffers for XR keep a reference to the XR session. // https://github.com/immersive-web/webxr/issues/856 + #[cfg(feature = "webxr")] xr_session: MutNullableDom<XRSession>, } @@ -128,6 +133,7 @@ impl WebGLFramebuffer { color_read_buffer: DomRefCell::new(constants::COLOR_ATTACHMENT0), color_draw_buffers: DomRefCell::new(vec![constants::COLOR_ATTACHMENT0]), is_initialized: Cell::new(false), + #[cfg(feature = "webxr")] xr_session: Default::default(), } } @@ -142,6 +148,7 @@ impl WebGLFramebuffer { // TODO: depth, stencil and alpha // https://github.com/servo/servo/issues/24498 + #[cfg(feature = "webxr")] pub fn maybe_new_webxr( session: &XRSession, context: &WebGLRenderingContext, @@ -167,10 +174,16 @@ impl WebGLFramebuffer { self.id } + #[cfg(feature = "webxr")] fn is_in_xr_session(&self) -> bool { self.xr_session.get().is_some() } + #[cfg(not(feature = "webxr"))] + fn is_in_xr_session(&self) -> bool { + false + } + pub fn validate_transparent(&self) -> WebGLResult<()> { if self.is_in_xr_session() { Err(WebGLError::InvalidOperation) @@ -445,15 +458,16 @@ impl WebGLFramebuffer { pub fn check_status(&self) -> u32 { // For opaque framebuffers, check to see if the XR session is currently processing an rAF // https://immersive-web.github.io/webxr/#opaque-framebuffer + #[cfg(feature = "webxr")] if let Some(xr_session) = self.xr_session.get() { - if xr_session.is_outside_raf() { + return if xr_session.is_outside_raf() { constants::FRAMEBUFFER_UNSUPPORTED } else { constants::FRAMEBUFFER_COMPLETE - } - } else { - self.status.get() + }; } + + self.status.get() // TODO: if a framebuffer has an attachment which is invalid due to // being outside a webxr rAF, should this make the framebuffer incomplete? // https://github.com/immersive-web/layers/issues/196 @@ -467,6 +481,7 @@ impl WebGLFramebuffer { // XR framebuffers are complete inside an rAF // https://github.com/immersive-web/webxr/issues/854 + #[cfg(feature = "webxr")] if self.xr_session.get().is_some() { return CompleteForRendering::Complete; } diff --git a/components/script/dom/webglrenderingcontext.rs b/components/script/dom/webglrenderingcontext.rs index 215f076c229..7e8a3a01b1e 100644 --- a/components/script/dom/webglrenderingcontext.rs +++ b/components/script/dom/webglrenderingcontext.rs @@ -4796,6 +4796,7 @@ impl WebGLRenderingContextMethods<crate::DomTypeHolder> for WebGLRenderingContex } /// <https://immersive-web.github.io/webxr/#dom-webglrenderingcontextbase-makexrcompatible> + #[cfg(feature = "webxr")] fn MakeXRCompatible(&self, can_gc: CanGc) -> Rc<Promise> { // XXXManishearth Fill in with compatibility checks when rust-webxr supports this let p = Promise::new(&self.global(), can_gc); diff --git a/components/script/dom/webgltexture.rs b/components/script/dom/webgltexture.rs index 7f26e822233..c3653bec6ab 100644 --- a/components/script/dom/webgltexture.rs +++ b/components/script/dom/webgltexture.rs @@ -2,6 +2,8 @@ * 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/. */ +#![allow(unused_imports)] + // https://www.khronos.org/registry/webgl/specs/latest/1.0/webgl.idl use std::cell::Cell; @@ -23,6 +25,7 @@ use crate::dom::webgl_validations::types::TexImageTarget; use crate::dom::webglframebuffer::WebGLFramebuffer; use crate::dom::webglobject::WebGLObject; use crate::dom::webglrenderingcontext::{Operation, WebGLRenderingContext}; +#[cfg(feature = "webxr")] use crate::dom::xrsession::XRSession; pub enum TexParameterValue { @@ -37,6 +40,7 @@ pub enum TexParameterValue { #[derive(JSTraceable, MallocSizeOf)] enum WebGLTextureOwner { WebGL, + #[cfg(feature = "webxr")] WebXR(Dom<XRSession>), } @@ -71,16 +75,19 @@ impl WebGLTexture { fn new_inherited( context: &WebGLRenderingContext, id: WebGLTextureId, - owner: Option<&XRSession>, + #[cfg(feature = "webxr")] owner: Option<&XRSession>, ) -> Self { Self { webgl_object: WebGLObject::new_inherited(context), id, target: Cell::new(None), is_deleted: Cell::new(false), + #[cfg(feature = "webxr")] owner: owner .map(|session| WebGLTextureOwner::WebXR(Dom::from_ref(session))) .unwrap_or(WebGLTextureOwner::WebGL), + #[cfg(not(feature = "webxr"))] + owner: WebGLTextureOwner::WebGL, immutable_levels: Cell::new(None), face_count: Cell::new(0), base_mipmap_level: 0, @@ -102,11 +109,17 @@ impl WebGLTexture { pub fn new(context: &WebGLRenderingContext, id: WebGLTextureId) -> DomRoot<Self> { reflect_dom_object( - Box::new(WebGLTexture::new_inherited(context, id, None)), + Box::new(WebGLTexture::new_inherited( + context, + id, + #[cfg(feature = "webxr")] + None, + )), &*context.global(), ) } + #[cfg(feature = "webxr")] pub fn new_webxr( context: &WebGLRenderingContext, id: WebGLTextureId, @@ -238,6 +251,7 @@ impl WebGLTexture { } // We don't delete textures owned by WebXR + #[cfg(feature = "webxr")] if let WebGLTextureOwner::WebXR(_) = self.owner { return; } @@ -252,6 +266,7 @@ impl WebGLTexture { pub fn is_invalid(&self) -> bool { // https://immersive-web.github.io/layers/#xrwebglsubimagetype + #[cfg(feature = "webxr")] if let WebGLTextureOwner::WebXR(ref session) = self.owner { if session.is_outside_raf() { return true; diff --git a/components/script/dom/webidls/FakeXRDevice.webidl b/components/script/dom/webidls/FakeXRDevice.webidl index 66027d8627c..22a2ddbbd27 100644 --- a/components/script/dom/webidls/FakeXRDevice.webidl +++ b/components/script/dom/webidls/FakeXRDevice.webidl @@ -2,6 +2,8 @@ * 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/. */ +// skip-unless CARGO_FEATURE_WEBXR + // https://github.com/immersive-web/webxr-test-api/ [Exposed=Window, Pref="dom.webxr.test"] diff --git a/components/script/dom/webidls/FakeXRInputController.webidl b/components/script/dom/webidls/FakeXRInputController.webidl index 94f5e5666f8..42230c980bb 100644 --- a/components/script/dom/webidls/FakeXRInputController.webidl +++ b/components/script/dom/webidls/FakeXRInputController.webidl @@ -2,6 +2,8 @@ * 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/. */ +// skip-unless CARGO_FEATURE_WEBXR + // https://immersive-web.github.io/webxr-test-api/#fakexrinputcontroller [Exposed=Window, Pref="dom.webxr.test"] diff --git a/components/script/dom/webidls/XRBoundedReferenceSpace.webidl b/components/script/dom/webidls/XRBoundedReferenceSpace.webidl index ee7f59085ba..c028f740c87 100644 --- a/components/script/dom/webidls/XRBoundedReferenceSpace.webidl +++ b/components/script/dom/webidls/XRBoundedReferenceSpace.webidl @@ -2,6 +2,8 @@ * 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/. */ +// skip-unless CARGO_FEATURE_WEBXR + // https://immersive-web.github.io/webxr/#xrboundedreferencespace-interface [SecureContext, Exposed=Window, Pref="dom.webxr.enabled"] diff --git a/components/script/dom/webidls/XRCompositionLayer.webidl b/components/script/dom/webidls/XRCompositionLayer.webidl index bde8aed6cdf..e8cedf71240 100644 --- a/components/script/dom/webidls/XRCompositionLayer.webidl +++ b/components/script/dom/webidls/XRCompositionLayer.webidl @@ -2,6 +2,8 @@ * 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/. */ +// skip-unless CARGO_FEATURE_WEBXR + // TODO: Implement the layer types // https://github.com/servo/servo/issues/27493 diff --git a/components/script/dom/webidls/XRCubeLayer.webidl b/components/script/dom/webidls/XRCubeLayer.webidl index 66e8eb18130..1b213f34be3 100644 --- a/components/script/dom/webidls/XRCubeLayer.webidl +++ b/components/script/dom/webidls/XRCubeLayer.webidl @@ -2,6 +2,8 @@ * 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/. */ +// skip-unless CARGO_FEATURE_WEBXR + // TODO: Implement the layer types // https://github.com/servo/servo/issues/27493 diff --git a/components/script/dom/webidls/XRCylinderLayer.webidl b/components/script/dom/webidls/XRCylinderLayer.webidl index 9a3e2d051c6..e290aecdee4 100644 --- a/components/script/dom/webidls/XRCylinderLayer.webidl +++ b/components/script/dom/webidls/XRCylinderLayer.webidl @@ -2,6 +2,8 @@ * 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/. */ +// skip-unless CARGO_FEATURE_WEBXR + // TODO: Implement the layer types // https://github.com/servo/servo/issues/27493 diff --git a/components/script/dom/webidls/XREquirectLayer.webidl b/components/script/dom/webidls/XREquirectLayer.webidl index 98a82bc80dd..f7eeb327b9a 100644 --- a/components/script/dom/webidls/XREquirectLayer.webidl +++ b/components/script/dom/webidls/XREquirectLayer.webidl @@ -2,6 +2,8 @@ * 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/. */ +// skip-unless CARGO_FEATURE_WEBXR + // TODO: Implement the layer types // https://github.com/servo/servo/issues/27493 diff --git a/components/script/dom/webidls/XRFrame.webidl b/components/script/dom/webidls/XRFrame.webidl index 8279b380efb..2e05028ec0c 100644 --- a/components/script/dom/webidls/XRFrame.webidl +++ b/components/script/dom/webidls/XRFrame.webidl @@ -2,6 +2,8 @@ * 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/. */ +// skip-unless CARGO_FEATURE_WEBXR + // https://immersive-web.github.io/webxr/#xrframe-interface [SecureContext, Exposed=Window, Pref="dom.webxr.enabled"] diff --git a/components/script/dom/webidls/XRHand.webidl b/components/script/dom/webidls/XRHand.webidl index 5ca30c2eaf1..ad46e719f2b 100644 --- a/components/script/dom/webidls/XRHand.webidl +++ b/components/script/dom/webidls/XRHand.webidl @@ -2,6 +2,8 @@ * 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/. */ +// skip-unless CARGO_FEATURE_WEBXR + // https://github.com/immersive-web/webxr-hands-input/blob/master/explainer.md enum XRHandJoint { diff --git a/components/script/dom/webidls/XRHitTestResult.webidl b/components/script/dom/webidls/XRHitTestResult.webidl index 08bf4bf5389..cdbac19d504 100644 --- a/components/script/dom/webidls/XRHitTestResult.webidl +++ b/components/script/dom/webidls/XRHitTestResult.webidl @@ -2,6 +2,8 @@ * 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/. */ +// skip-unless CARGO_FEATURE_WEBXR + // https://immersive-web.github.io/hit-test/#xrhittestresult-interface [SecureContext, Exposed=Window] diff --git a/components/script/dom/webidls/XRHitTestSource.webidl b/components/script/dom/webidls/XRHitTestSource.webidl index e2a11768158..4db03b437a1 100644 --- a/components/script/dom/webidls/XRHitTestSource.webidl +++ b/components/script/dom/webidls/XRHitTestSource.webidl @@ -2,6 +2,8 @@ * 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/. */ +// skip-unless CARGO_FEATURE_WEBXR + // https://immersive-web.github.io/hit-test/#xrhittestsource-interface enum XRHitTestTrackableType { diff --git a/components/script/dom/webidls/XRInputSource.webidl b/components/script/dom/webidls/XRInputSource.webidl index 5e5afa58ae1..820f24c363f 100644 --- a/components/script/dom/webidls/XRInputSource.webidl +++ b/components/script/dom/webidls/XRInputSource.webidl @@ -2,6 +2,8 @@ * 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/. */ +// skip-unless CARGO_FEATURE_WEBXR + // https://immersive-web.github.io/webxr/#xrinputsource-interface enum XRHandedness { diff --git a/components/script/dom/webidls/XRInputSourceArray.webidl b/components/script/dom/webidls/XRInputSourceArray.webidl index f8a0eb4308d..5987c0039d3 100644 --- a/components/script/dom/webidls/XRInputSourceArray.webidl +++ b/components/script/dom/webidls/XRInputSourceArray.webidl @@ -2,6 +2,8 @@ * 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/. */ +// skip-unless CARGO_FEATURE_WEBXR + // https://immersive-web.github.io/webxr/#xrinputsourcearray-interface [SecureContext, Exposed=Window, Pref="dom.webxr.enabled"] diff --git a/components/script/dom/webidls/XRInputSourceEvent.webidl b/components/script/dom/webidls/XRInputSourceEvent.webidl index f1ffbf2a799..e2cb1b394c9 100644 --- a/components/script/dom/webidls/XRInputSourceEvent.webidl +++ b/components/script/dom/webidls/XRInputSourceEvent.webidl @@ -2,6 +2,8 @@ * 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/. */ +// skip-unless CARGO_FEATURE_WEBXR + // https://immersive-web.github.io/webxr/#xrinputsourceevent-interface [SecureContext, Exposed=Window, Pref="dom.webxr.enabled"] diff --git a/components/script/dom/webidls/XRInputSourcesChangeEvent.webidl b/components/script/dom/webidls/XRInputSourcesChangeEvent.webidl index aba56f8b0a6..25a4885cca3 100644 --- a/components/script/dom/webidls/XRInputSourcesChangeEvent.webidl +++ b/components/script/dom/webidls/XRInputSourcesChangeEvent.webidl @@ -2,6 +2,8 @@ * 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/. */ +// skip-unless CARGO_FEATURE_WEBXR + // https://immersive-web.github.io/webxr/#xrinputsourceschangedevent-interface [SecureContext, Exposed=Window, Pref="dom.webxr.test"] diff --git a/components/script/dom/webidls/XRJointPose.webidl b/components/script/dom/webidls/XRJointPose.webidl index 70750b66cc4..e824745588e 100644 --- a/components/script/dom/webidls/XRJointPose.webidl +++ b/components/script/dom/webidls/XRJointPose.webidl @@ -2,6 +2,8 @@ * 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/. */ +// skip-unless CARGO_FEATURE_WEBXR + // https://github.com/immersive-web/webxr-hands-input/blob/master/explainer.md [SecureContext, Exposed=Window, Pref="dom.webxr.hands.enabled"] diff --git a/components/script/dom/webidls/XRJointSpace.webidl b/components/script/dom/webidls/XRJointSpace.webidl index fe347f6a84c..7326e9990a1 100644 --- a/components/script/dom/webidls/XRJointSpace.webidl +++ b/components/script/dom/webidls/XRJointSpace.webidl @@ -2,6 +2,8 @@ * 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/. */ +// skip-unless CARGO_FEATURE_WEBXR + // https://github.com/immersive-web/webxr-hands-input/blob/master/explainer.md [SecureContext, Exposed=Window, Pref="dom.webxr.hands.enabled"] diff --git a/components/script/dom/webidls/XRLayer.webidl b/components/script/dom/webidls/XRLayer.webidl index 5f719db7bdb..122946defb9 100644 --- a/components/script/dom/webidls/XRLayer.webidl +++ b/components/script/dom/webidls/XRLayer.webidl @@ -2,6 +2,8 @@ * 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/. */ +// skip-unless CARGO_FEATURE_WEBXR + // https://immersive-web.github.io/webxr/#xrlayer [SecureContext, Exposed=Window, Pref="dom.webxr.enabled"] interface XRLayer : EventTarget {}; diff --git a/components/script/dom/webidls/XRLayerEvent.webidl b/components/script/dom/webidls/XRLayerEvent.webidl index 9a05272138e..e45f116da34 100644 --- a/components/script/dom/webidls/XRLayerEvent.webidl +++ b/components/script/dom/webidls/XRLayerEvent.webidl @@ -2,6 +2,8 @@ * 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/. */ +// skip-unless CARGO_FEATURE_WEBXR + // https://immersive-web.github.io/layers/#xrlayerevent-interface [SecureContext, Exposed=Window, Pref="dom.webxr.layers.enabled"] interface XRLayerEvent : Event { diff --git a/components/script/dom/webidls/XRMediaBinding.webidl b/components/script/dom/webidls/XRMediaBinding.webidl index 87a858f098e..4c3bfc91e80 100644 --- a/components/script/dom/webidls/XRMediaBinding.webidl +++ b/components/script/dom/webidls/XRMediaBinding.webidl @@ -2,6 +2,8 @@ * 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/. */ +// skip-unless CARGO_FEATURE_WEBXR + // https://immersive-web.github.io/layers/#xrmediabindingtype [SecureContext, Exposed=Window, Pref="dom.webxr.layers.enabled"] interface XRMediaBinding { diff --git a/components/script/dom/webidls/XRPose.webidl b/components/script/dom/webidls/XRPose.webidl index 14a6c1289d0..dab2d9e7af9 100644 --- a/components/script/dom/webidls/XRPose.webidl +++ b/components/script/dom/webidls/XRPose.webidl @@ -2,6 +2,8 @@ * 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/. */ +// skip-unless CARGO_FEATURE_WEBXR + // https://immersive-web.github.io/webxr/#xrpose-interface [SecureContext, Exposed=Window, Pref="dom.webxr.enabled"] diff --git a/components/script/dom/webidls/XRProjectionLayer.webidl b/components/script/dom/webidls/XRProjectionLayer.webidl index c96afe4c28d..0c812948795 100644 --- a/components/script/dom/webidls/XRProjectionLayer.webidl +++ b/components/script/dom/webidls/XRProjectionLayer.webidl @@ -2,6 +2,8 @@ * 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/. */ +// skip-unless CARGO_FEATURE_WEBXR + // TODO: Implement the layer types // https://github.com/servo/servo/issues/27493 diff --git a/components/script/dom/webidls/XRQuadLayer.webidl b/components/script/dom/webidls/XRQuadLayer.webidl index 78c513ecdb9..a4c43b0b62e 100644 --- a/components/script/dom/webidls/XRQuadLayer.webidl +++ b/components/script/dom/webidls/XRQuadLayer.webidl @@ -2,6 +2,8 @@ * 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/. */ +// skip-unless CARGO_FEATURE_WEBXR + // TODO: Implement the layer types // https://github.com/servo/servo/issues/27493 diff --git a/components/script/dom/webidls/XRRay.webidl b/components/script/dom/webidls/XRRay.webidl index f578436685d..748bd085147 100644 --- a/components/script/dom/webidls/XRRay.webidl +++ b/components/script/dom/webidls/XRRay.webidl @@ -2,6 +2,8 @@ * 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/. */ +// skip-unless CARGO_FEATURE_WEBXR + // https://immersive-web.github.io/hit-test/#xrray-interface dictionary XRRayDirectionInit { diff --git a/components/script/dom/webidls/XRReferenceSpace.webidl b/components/script/dom/webidls/XRReferenceSpace.webidl index 21814883e18..ad9bd41659c 100644 --- a/components/script/dom/webidls/XRReferenceSpace.webidl +++ b/components/script/dom/webidls/XRReferenceSpace.webidl @@ -2,6 +2,8 @@ * 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/. */ +// skip-unless CARGO_FEATURE_WEBXR + // https://immersive-web.github.io/webxr/#xrreferencespace-interface enum XRReferenceSpaceType { diff --git a/components/script/dom/webidls/XRReferenceSpaceEvent.webidl b/components/script/dom/webidls/XRReferenceSpaceEvent.webidl index af3a646ec1a..a15e7aba316 100644 --- a/components/script/dom/webidls/XRReferenceSpaceEvent.webidl +++ b/components/script/dom/webidls/XRReferenceSpaceEvent.webidl @@ -2,6 +2,8 @@ * 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/. */ +// skip-unless CARGO_FEATURE_WEBXR + // https://immersive-web.github.io/webxr/#xrreferencespaceevent-interface [SecureContext, Exposed=Window, Pref="dom.webxr.enabled"] diff --git a/components/script/dom/webidls/XRRenderState.webidl b/components/script/dom/webidls/XRRenderState.webidl index 52c72511923..d02ab20646a 100644 --- a/components/script/dom/webidls/XRRenderState.webidl +++ b/components/script/dom/webidls/XRRenderState.webidl @@ -2,6 +2,8 @@ * 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/. */ +// skip-unless CARGO_FEATURE_WEBXR + // https://immersive-web.github.io/webxr/#xrrenderstate-interface dictionary XRRenderStateInit { diff --git a/components/script/dom/webidls/XRRigidTransform.webidl b/components/script/dom/webidls/XRRigidTransform.webidl index 91505a96285..85fb73509fe 100644 --- a/components/script/dom/webidls/XRRigidTransform.webidl +++ b/components/script/dom/webidls/XRRigidTransform.webidl @@ -2,6 +2,8 @@ * 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/. */ +// skip-unless CARGO_FEATURE_WEBXR + // https://immersive-web.github.io/webxr/#xrrigidtransform-interface [SecureContext, Exposed=Window, Pref="dom.webxr.enabled"] diff --git a/components/script/dom/webidls/XRSession.webidl b/components/script/dom/webidls/XRSession.webidl index d974babb3b9..a214d6aa133 100644 --- a/components/script/dom/webidls/XRSession.webidl +++ b/components/script/dom/webidls/XRSession.webidl @@ -2,6 +2,8 @@ * 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/. */ +// skip-unless CARGO_FEATURE_WEBXR + // https://immersive-web.github.io/webxr/#xrsession-interface enum XREnvironmentBlendMode { diff --git a/components/script/dom/webidls/XRSessionEvent.webidl b/components/script/dom/webidls/XRSessionEvent.webidl index 19506af613d..19ddd9e1b95 100644 --- a/components/script/dom/webidls/XRSessionEvent.webidl +++ b/components/script/dom/webidls/XRSessionEvent.webidl @@ -2,6 +2,8 @@ * 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/. */ +// skip-unless CARGO_FEATURE_WEBXR + // https://immersive-web.github.io/webxr/#xrsessionevent-interface [SecureContext, Exposed=Window, Pref="dom.webxr.enabled"] diff --git a/components/script/dom/webidls/XRSpace.webidl b/components/script/dom/webidls/XRSpace.webidl index 54401b051c8..3f85f4e4a52 100644 --- a/components/script/dom/webidls/XRSpace.webidl +++ b/components/script/dom/webidls/XRSpace.webidl @@ -2,6 +2,8 @@ * 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/. */ +// skip-unless CARGO_FEATURE_WEBXR + // https://immersive-web.github.io/webxr/#xrspace-interface [SecureContext, Exposed=Window, Pref="dom.webxr.enabled"] diff --git a/components/script/dom/webidls/XRSubImage.webidl b/components/script/dom/webidls/XRSubImage.webidl index c96067fab17..109ee39513b 100644 --- a/components/script/dom/webidls/XRSubImage.webidl +++ b/components/script/dom/webidls/XRSubImage.webidl @@ -2,6 +2,8 @@ * 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/. */ +// skip-unless CARGO_FEATURE_WEBXR + // https://immersive-web.github.io/layers/#xrsubimagetype [SecureContext, Exposed=Window, Pref="dom.webxr.layers.enabled"] interface XRSubImage { diff --git a/components/script/dom/webidls/XRSystem.webidl b/components/script/dom/webidls/XRSystem.webidl index b7eeed756bb..41682865cd4 100644 --- a/components/script/dom/webidls/XRSystem.webidl +++ b/components/script/dom/webidls/XRSystem.webidl @@ -2,6 +2,8 @@ * 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/. */ +// skip-unless CARGO_FEATURE_WEBXR + // https://immersive-web.github.io/webxr/#xrsystem-interface [SecureContext, Exposed=Window, Pref="dom.webxr.enabled"] interface XRSystem: EventTarget { diff --git a/components/script/dom/webidls/XRTest.webidl b/components/script/dom/webidls/XRTest.webidl index b65fb1c7485..2421f873976 100644 --- a/components/script/dom/webidls/XRTest.webidl +++ b/components/script/dom/webidls/XRTest.webidl @@ -2,6 +2,8 @@ * 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/. */ +// skip-unless CARGO_FEATURE_WEBXR + // https://github.com/immersive-web/webxr-test-api/ [Exposed=Window, Pref="dom.webxr.test"] diff --git a/components/script/dom/webidls/XRView.webidl b/components/script/dom/webidls/XRView.webidl index ac58caa8144..2050afe028a 100644 --- a/components/script/dom/webidls/XRView.webidl +++ b/components/script/dom/webidls/XRView.webidl @@ -2,6 +2,8 @@ * 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/. */ +// skip-unless CARGO_FEATURE_WEBXR + // https://immersive-web.github.io/webxr/#xrview-interface enum XREye { diff --git a/components/script/dom/webidls/XRViewerPose.webidl b/components/script/dom/webidls/XRViewerPose.webidl index 6a2663067ca..06274c3dfeb 100644 --- a/components/script/dom/webidls/XRViewerPose.webidl +++ b/components/script/dom/webidls/XRViewerPose.webidl @@ -2,6 +2,8 @@ * 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/. */ +// skip-unless CARGO_FEATURE_WEBXR + // https://immersive-web.github.io/webxr/#xrviewerpose-interface [SecureContext, Exposed=Window, Pref="dom.webxr.enabled"] diff --git a/components/script/dom/webidls/XRViewport.webidl b/components/script/dom/webidls/XRViewport.webidl index 325b52c9f8f..079c2d11e2d 100644 --- a/components/script/dom/webidls/XRViewport.webidl +++ b/components/script/dom/webidls/XRViewport.webidl @@ -2,6 +2,8 @@ * 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/. */ +// skip-unless CARGO_FEATURE_WEBXR + // https://immersive-web.github.io/webxr/#xrviewport-interface [SecureContext, Exposed=Window, Pref="dom.webxr.enabled"] diff --git a/components/script/dom/webidls/XRWebGLBinding.webidl b/components/script/dom/webidls/XRWebGLBinding.webidl index f4ee859eeaf..5bcb4b381fa 100644 --- a/components/script/dom/webidls/XRWebGLBinding.webidl +++ b/components/script/dom/webidls/XRWebGLBinding.webidl @@ -2,6 +2,8 @@ * 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/. */ +// skip-unless CARGO_FEATURE_WEBXR + // https://immersive-web.github.io/layers/#XRWebGLBindingtype [SecureContext, Exposed=Window, Pref="dom.webxr.layers.enabled"] interface XRWebGLBinding { diff --git a/components/script/dom/webidls/XRWebGLLayer.webidl b/components/script/dom/webidls/XRWebGLLayer.webidl index 5b26716ebd2..c3bd54b3d03 100644 --- a/components/script/dom/webidls/XRWebGLLayer.webidl +++ b/components/script/dom/webidls/XRWebGLLayer.webidl @@ -2,6 +2,8 @@ * 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/. */ +// skip-unless CARGO_FEATURE_WEBXR + // https://immersive-web.github.io/webxr/#xrwebgllayer-interface typedef (WebGLRenderingContext or diff --git a/components/script/dom/webidls/XRWebGLSubImage.webidl b/components/script/dom/webidls/XRWebGLSubImage.webidl index 2682206cc0a..d93f12ff4c5 100644 --- a/components/script/dom/webidls/XRWebGLSubImage.webidl +++ b/components/script/dom/webidls/XRWebGLSubImage.webidl @@ -2,6 +2,8 @@ * 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/. */ +// skip-unless CARGO_FEATURE_WEBXR + // https://immersive-web.github.io/layers/#xrwebglsubimagetype [SecureContext, Exposed=Window, Pref="dom.webxr.layers.enabled"] interface XRWebGLSubImage : XRSubImage { diff --git a/components/script/dom/fakexrdevice.rs b/components/script/dom/webxr/fakexrdevice.rs index 7024aa9dc65..7024aa9dc65 100644 --- a/components/script/dom/fakexrdevice.rs +++ b/components/script/dom/webxr/fakexrdevice.rs diff --git a/components/script/dom/fakexrinputcontroller.rs b/components/script/dom/webxr/fakexrinputcontroller.rs index a9bf8038f5e..a9bf8038f5e 100644 --- a/components/script/dom/fakexrinputcontroller.rs +++ b/components/script/dom/webxr/fakexrinputcontroller.rs diff --git a/components/script/dom/webxr/mod.rs b/components/script/dom/webxr/mod.rs new file mode 100644 index 00000000000..6faee016890 --- /dev/null +++ b/components/script/dom/webxr/mod.rs @@ -0,0 +1,44 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * 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/. */ + +pub mod fakexrdevice; +pub mod fakexrinputcontroller; +pub mod xrboundedreferencespace; +pub mod xrcompositionlayer; +pub mod xrcubelayer; +pub mod xrcylinderlayer; +pub mod xrequirectlayer; +pub mod xrframe; +pub mod xrhand; +pub mod xrhittestresult; +pub mod xrhittestsource; +pub mod xrinputsource; +pub mod xrinputsourcearray; +pub mod xrinputsourceevent; +pub mod xrinputsourceschangeevent; +pub mod xrjointpose; +pub mod xrjointspace; +pub mod xrlayer; +pub mod xrlayerevent; +pub mod xrmediabinding; +pub mod xrpose; +pub mod xrprojectionlayer; +pub mod xrquadlayer; +pub mod xrray; +pub mod xrreferencespace; +pub mod xrreferencespaceevent; +pub mod xrrenderstate; +pub mod xrrigidtransform; +pub mod xrsession; +pub mod xrsessionevent; +pub mod xrspace; +pub mod xrsubimage; +pub mod xrsystem; +pub mod xrtest; +pub mod xrview; +pub mod xrviewerpose; +pub mod xrviewport; +pub mod xrwebglbinding; +pub mod xrwebgllayer; +pub mod xrwebglsubimage; diff --git a/components/script/dom/xrboundedreferencespace.rs b/components/script/dom/webxr/xrboundedreferencespace.rs index 1434e23e6e1..1434e23e6e1 100644 --- a/components/script/dom/xrboundedreferencespace.rs +++ b/components/script/dom/webxr/xrboundedreferencespace.rs diff --git a/components/script/dom/xrcompositionlayer.rs b/components/script/dom/webxr/xrcompositionlayer.rs index fbb71149716..fbb71149716 100644 --- a/components/script/dom/xrcompositionlayer.rs +++ b/components/script/dom/webxr/xrcompositionlayer.rs diff --git a/components/script/dom/xrcubelayer.rs b/components/script/dom/webxr/xrcubelayer.rs index 587d088e88b..587d088e88b 100644 --- a/components/script/dom/xrcubelayer.rs +++ b/components/script/dom/webxr/xrcubelayer.rs diff --git a/components/script/dom/xrcylinderlayer.rs b/components/script/dom/webxr/xrcylinderlayer.rs index f468380bb36..f468380bb36 100644 --- a/components/script/dom/xrcylinderlayer.rs +++ b/components/script/dom/webxr/xrcylinderlayer.rs diff --git a/components/script/dom/xrequirectlayer.rs b/components/script/dom/webxr/xrequirectlayer.rs index 25cc04595ef..25cc04595ef 100644 --- a/components/script/dom/xrequirectlayer.rs +++ b/components/script/dom/webxr/xrequirectlayer.rs diff --git a/components/script/dom/xrframe.rs b/components/script/dom/webxr/xrframe.rs index f3a8a263fd3..f3a8a263fd3 100644 --- a/components/script/dom/xrframe.rs +++ b/components/script/dom/webxr/xrframe.rs diff --git a/components/script/dom/xrhand.rs b/components/script/dom/webxr/xrhand.rs index b73e9cddb35..b73e9cddb35 100644 --- a/components/script/dom/xrhand.rs +++ b/components/script/dom/webxr/xrhand.rs diff --git a/components/script/dom/xrhittestresult.rs b/components/script/dom/webxr/xrhittestresult.rs index faca7dad3a3..faca7dad3a3 100644 --- a/components/script/dom/xrhittestresult.rs +++ b/components/script/dom/webxr/xrhittestresult.rs diff --git a/components/script/dom/xrhittestsource.rs b/components/script/dom/webxr/xrhittestsource.rs index 5210bfa84a9..5210bfa84a9 100644 --- a/components/script/dom/xrhittestsource.rs +++ b/components/script/dom/webxr/xrhittestsource.rs diff --git a/components/script/dom/xrinputsource.rs b/components/script/dom/webxr/xrinputsource.rs index c7155d343d2..c7155d343d2 100644 --- a/components/script/dom/xrinputsource.rs +++ b/components/script/dom/webxr/xrinputsource.rs diff --git a/components/script/dom/xrinputsourcearray.rs b/components/script/dom/webxr/xrinputsourcearray.rs index 18059db822a..18059db822a 100644 --- a/components/script/dom/xrinputsourcearray.rs +++ b/components/script/dom/webxr/xrinputsourcearray.rs diff --git a/components/script/dom/xrinputsourceevent.rs b/components/script/dom/webxr/xrinputsourceevent.rs index cc694f8f99c..cc694f8f99c 100644 --- a/components/script/dom/xrinputsourceevent.rs +++ b/components/script/dom/webxr/xrinputsourceevent.rs diff --git a/components/script/dom/xrinputsourceschangeevent.rs b/components/script/dom/webxr/xrinputsourceschangeevent.rs index 4429f7d545e..4429f7d545e 100644 --- a/components/script/dom/xrinputsourceschangeevent.rs +++ b/components/script/dom/webxr/xrinputsourceschangeevent.rs diff --git a/components/script/dom/xrjointpose.rs b/components/script/dom/webxr/xrjointpose.rs index 9d1ed301486..9d1ed301486 100644 --- a/components/script/dom/xrjointpose.rs +++ b/components/script/dom/webxr/xrjointpose.rs diff --git a/components/script/dom/xrjointspace.rs b/components/script/dom/webxr/xrjointspace.rs index 8d8dc9309f7..8d8dc9309f7 100644 --- a/components/script/dom/xrjointspace.rs +++ b/components/script/dom/webxr/xrjointspace.rs diff --git a/components/script/dom/xrlayer.rs b/components/script/dom/webxr/xrlayer.rs index 3dc3b4dfeea..3dc3b4dfeea 100644 --- a/components/script/dom/xrlayer.rs +++ b/components/script/dom/webxr/xrlayer.rs diff --git a/components/script/dom/xrlayerevent.rs b/components/script/dom/webxr/xrlayerevent.rs index 136aac87450..136aac87450 100644 --- a/components/script/dom/xrlayerevent.rs +++ b/components/script/dom/webxr/xrlayerevent.rs diff --git a/components/script/dom/xrmediabinding.rs b/components/script/dom/webxr/xrmediabinding.rs index 14eec1fb354..14eec1fb354 100644 --- a/components/script/dom/xrmediabinding.rs +++ b/components/script/dom/webxr/xrmediabinding.rs diff --git a/components/script/dom/xrpose.rs b/components/script/dom/webxr/xrpose.rs index dea8aa62dc4..dea8aa62dc4 100644 --- a/components/script/dom/xrpose.rs +++ b/components/script/dom/webxr/xrpose.rs diff --git a/components/script/dom/xrprojectionlayer.rs b/components/script/dom/webxr/xrprojectionlayer.rs index 489c3a9e706..489c3a9e706 100644 --- a/components/script/dom/xrprojectionlayer.rs +++ b/components/script/dom/webxr/xrprojectionlayer.rs diff --git a/components/script/dom/xrquadlayer.rs b/components/script/dom/webxr/xrquadlayer.rs index dd93aea9c0a..dd93aea9c0a 100644 --- a/components/script/dom/xrquadlayer.rs +++ b/components/script/dom/webxr/xrquadlayer.rs diff --git a/components/script/dom/xrray.rs b/components/script/dom/webxr/xrray.rs index d80a4c00d61..4936edd0acb 100644 --- a/components/script/dom/xrray.rs +++ b/components/script/dom/webxr/xrray.rs @@ -8,7 +8,7 @@ use js::rust::HandleObject; use js::typedarray::{Float32, Float32Array}; use webxr_api::{ApiSpace, Ray}; -use super::bindings::buffer_source::HeapBufferSource; +use crate::dom::bindings::buffer_source::HeapBufferSource; use crate::dom::bindings::codegen::Bindings::DOMPointBinding::DOMPointInit; use crate::dom::bindings::codegen::Bindings::XRRayBinding::{XRRayDirectionInit, XRRayMethods}; use crate::dom::bindings::error::{Error, Fallible}; diff --git a/components/script/dom/xrreferencespace.rs b/components/script/dom/webxr/xrreferencespace.rs index 6f8c409edbc..6f8c409edbc 100644 --- a/components/script/dom/xrreferencespace.rs +++ b/components/script/dom/webxr/xrreferencespace.rs diff --git a/components/script/dom/xrreferencespaceevent.rs b/components/script/dom/webxr/xrreferencespaceevent.rs index e75aabe14a1..e75aabe14a1 100644 --- a/components/script/dom/xrreferencespaceevent.rs +++ b/components/script/dom/webxr/xrreferencespaceevent.rs diff --git a/components/script/dom/xrrenderstate.rs b/components/script/dom/webxr/xrrenderstate.rs index cf6976404d6..cf6976404d6 100644 --- a/components/script/dom/xrrenderstate.rs +++ b/components/script/dom/webxr/xrrenderstate.rs diff --git a/components/script/dom/xrrigidtransform.rs b/components/script/dom/webxr/xrrigidtransform.rs index fda4332eb0b..e215c17cf4e 100644 --- a/components/script/dom/xrrigidtransform.rs +++ b/components/script/dom/webxr/xrrigidtransform.rs @@ -7,7 +7,7 @@ use euclid::{RigidTransform3D, Rotation3D, Vector3D}; use js::rust::HandleObject; use js::typedarray::{Float32, Float32Array}; -use super::bindings::buffer_source::HeapBufferSource; +use crate::dom::bindings::buffer_source::HeapBufferSource; use crate::dom::bindings::codegen::Bindings::DOMPointBinding::DOMPointInit; use crate::dom::bindings::codegen::Bindings::XRRigidTransformBinding::XRRigidTransformMethods; use crate::dom::bindings::error::{Error, Fallible}; diff --git a/components/script/dom/xrsession.rs b/components/script/dom/webxr/xrsession.rs index 3bbe6537bb9..920c94aaada 100644 --- a/components/script/dom/xrsession.rs +++ b/components/script/dom/webxr/xrsession.rs @@ -24,7 +24,7 @@ use webxr_api::{ SelectEvent, SelectKind, Session, SessionId, View, Viewer, Visibility, }; -use super::bindings::trace::HashMapTracedValues; +use crate::dom::bindings::trace::HashMapTracedValues; use crate::dom::bindings::buffer_source::create_buffer_source; use crate::dom::bindings::callback::ExceptionHandling; use crate::dom::bindings::cell::DomRefCell; diff --git a/components/script/dom/xrsessionevent.rs b/components/script/dom/webxr/xrsessionevent.rs index fda299a9f2a..fda299a9f2a 100644 --- a/components/script/dom/xrsessionevent.rs +++ b/components/script/dom/webxr/xrsessionevent.rs diff --git a/components/script/dom/xrspace.rs b/components/script/dom/webxr/xrspace.rs index d810d5c07f0..d810d5c07f0 100644 --- a/components/script/dom/xrspace.rs +++ b/components/script/dom/webxr/xrspace.rs diff --git a/components/script/dom/xrsubimage.rs b/components/script/dom/webxr/xrsubimage.rs index 53d2e3ca697..53d2e3ca697 100644 --- a/components/script/dom/xrsubimage.rs +++ b/components/script/dom/webxr/xrsubimage.rs diff --git a/components/script/dom/xrsystem.rs b/components/script/dom/webxr/xrsystem.rs index 21705357e0b..21705357e0b 100644 --- a/components/script/dom/xrsystem.rs +++ b/components/script/dom/webxr/xrsystem.rs diff --git a/components/script/dom/xrtest.rs b/components/script/dom/webxr/xrtest.rs index 0117ab5c3ce..0117ab5c3ce 100644 --- a/components/script/dom/xrtest.rs +++ b/components/script/dom/webxr/xrtest.rs diff --git a/components/script/dom/xrview.rs b/components/script/dom/webxr/xrview.rs index b1ef9596401..89c5f7d7868 100644 --- a/components/script/dom/xrview.rs +++ b/components/script/dom/webxr/xrview.rs @@ -9,7 +9,7 @@ use euclid::RigidTransform3D; use js::typedarray::{Float32, Float32Array}; use webxr_api::{ApiSpace, View}; -use super::bindings::buffer_source::HeapBufferSource; +use crate::dom::bindings::buffer_source::HeapBufferSource; use crate::dom::bindings::codegen::Bindings::XRViewBinding::{XREye, XRViewMethods}; use crate::dom::bindings::num::Finite; use crate::dom::bindings::reflector::{reflect_dom_object, Reflector}; diff --git a/components/script/dom/xrviewerpose.rs b/components/script/dom/webxr/xrviewerpose.rs index 47b166ab375..47b166ab375 100644 --- a/components/script/dom/xrviewerpose.rs +++ b/components/script/dom/webxr/xrviewerpose.rs diff --git a/components/script/dom/xrviewport.rs b/components/script/dom/webxr/xrviewport.rs index 8ac28519620..8ac28519620 100644 --- a/components/script/dom/xrviewport.rs +++ b/components/script/dom/webxr/xrviewport.rs diff --git a/components/script/dom/xrwebglbinding.rs b/components/script/dom/webxr/xrwebglbinding.rs index c2d652bb81d..c2d652bb81d 100644 --- a/components/script/dom/xrwebglbinding.rs +++ b/components/script/dom/webxr/xrwebglbinding.rs diff --git a/components/script/dom/xrwebgllayer.rs b/components/script/dom/webxr/xrwebgllayer.rs index 031bd4b2f4d..031bd4b2f4d 100644 --- a/components/script/dom/xrwebgllayer.rs +++ b/components/script/dom/webxr/xrwebgllayer.rs diff --git a/components/script/dom/xrwebglsubimage.rs b/components/script/dom/webxr/xrwebglsubimage.rs index acdcd22f4a9..acdcd22f4a9 100644 --- a/components/script/dom/xrwebglsubimage.rs +++ b/components/script/dom/webxr/xrwebglsubimage.rs diff --git a/components/script/dom/window.rs b/components/script/dom/window.rs index d7ac58667f0..d5504436708 100644 --- a/components/script/dom/window.rs +++ b/components/script/dom/window.rs @@ -287,6 +287,7 @@ pub struct Window { #[ignore_malloc_size_of = "defined in webxr"] #[no_trace] + #[cfg(feature = "webxr")] webxr_registry: Option<webxr_api::Registry>, /// All of the elements that have an outstanding image request that was @@ -495,6 +496,7 @@ impl Window { .map(|chan| WebGLCommandSender::new(chan.clone())) } + #[cfg(feature = "webxr")] pub fn webxr_registry(&self) -> Option<webxr_api::Registry> { self.webxr_registry.clone() } @@ -2545,6 +2547,7 @@ impl Window { self.webrender_document } + #[cfg(feature = "webxr")] pub fn in_immersive_xr_session(&self) -> bool { self.navigator .get() @@ -2552,6 +2555,11 @@ impl Window { .and_then(|nav| nav.xr()) .is_some_and(|xr| xr.pending_or_active_session()) } + + #[cfg(not(feature = "webxr"))] + pub fn in_immersive_xr_session(&self) -> bool { + false + } } impl Window { @@ -2579,7 +2587,7 @@ impl Window { creator_url: ServoUrl, navigation_start: CrossProcessInstant, webgl_chan: Option<WebGLChan>, - webxr_registry: Option<webxr_api::Registry>, + #[cfg(feature = "webxr")] webxr_registry: Option<webxr_api::Registry>, microtask_queue: Rc<MicrotaskQueue>, webrender_document: DocumentId, compositor_api: CrossProcessCompositorApi, @@ -2661,6 +2669,7 @@ impl Window { media_query_lists: DOMTracker::new(), test_runner: Default::default(), webgl_chan, + #[cfg(feature = "webxr")] webxr_registry, pending_layout_images: Default::default(), unminified_css_dir: Default::default(), |