Align WebXR input hardening with upstream Quest controls - #19
Conversation
|
Small follow-up on the Node 18 check: the only failure was the test loader treating the WebXR module as CommonJS on Node 18.19.1, while Node 24 auto-detected it as ESM. I made the boundary explicit by renaming it to webxr.mjs and updating the browser/test imports; both Node compatibility jobs are green now. The emulated immersive-vr session test passes too. I can't repeat the last step on a real headset from here, so real Quest validation is still the one bit I can't personally confirm yet, but the code path should now be covered cleanly by CI. |
|
I made some changes to restore controls add an exit button, this no longer applies cleanly. Is some of this still desired? |
87976a9 to
a7ce5d2
Compare
a7ce5d2 to
8fd450f
Compare
|
I'm unclear what exactly this patch does other than add documentation. It looks like it stops keyboard and game controller input in XR mode. That is not correct. A Quest, for example, can bluetooth pair to game controllers, mice, and keyboards. All inputs that are present should be allowed. What does the patch do? ie: what is broken before and fixed after? or what functionality was not there that this adds? The description above us useless. It goes on and on about all the things it does NOT do. Remove all of that. the description should state clearly the things it DOES do. Also, how are you testing this? What devices are supported? |
What this PR does
This follow-up is rebuilt on the current upstream
mainand keeps the owner’s XR behavior as the source of truth. It adds a small capability and lifecycle hardening layer without changing the upstream keybinds or adding a DOM overlay.public/webxr.jsmodule layout; no.mjsrename.select/squeezeevents supplement the corresponding Gamepad buttons.No small
Exit VRDOM Overlay is added. The existing upstream exit paths remain unchanged. WebGPU, WebVR polyfills, and unrelated renderer behavior are outside this change.Platform scope
BZO remains browser-only. Meta Quest is the primary target; desktop Chrome or Edge with SteamVR/OpenXR is an optional validation path, not a runtime dependency. iOS/iPadOS and visionOS/Apple Vision Pro immersive mode remain outside the current physical-controller support contract.
Testing
npm run checkpasses, including server syntax, lint, documentation checks, shot-limit tests, and the WebXR capability tests.Closes #2