mirror of
https://github.com/servo/servo.git
synced 2025-08-05 13:40:08 +01:00
Auto merge of #27429 - asajeffrey:webxr-user-intent-pref, r=Manishearth
Add a pref to indicate user intent to enter webxr <!-- Please describe your changes on the following line: --> Add a pref to indicate that the user has indicated intent to enter webxr. --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: --> - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [x] These changes do not require tests because it's a command-line pref <!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.--> <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
This commit is contained in:
commit
c26a803fee
4 changed files with 10 additions and 2 deletions
|
@ -301,6 +301,8 @@ mod gen {
|
||||||
enabled: bool,
|
enabled: bool,
|
||||||
},
|
},
|
||||||
sessionavailable: bool,
|
sessionavailable: bool,
|
||||||
|
#[serde(rename = "dom.webxr.unsafe-assume-user-intent")]
|
||||||
|
unsafe_assume_user_intent: bool,
|
||||||
},
|
},
|
||||||
worklet: {
|
worklet: {
|
||||||
blockingsleep: {
|
blockingsleep: {
|
||||||
|
|
|
@ -162,8 +162,12 @@ impl XRSystemMethods for XRSystem {
|
||||||
|
|
||||||
if mode != XRSessionMode::Inline {
|
if mode != XRSessionMode::Inline {
|
||||||
if !ScriptThread::is_user_interacting() {
|
if !ScriptThread::is_user_interacting() {
|
||||||
promise.reject_error(Error::Security);
|
if pref!(dom.webxr.unsafe_assume_user_intent) {
|
||||||
return promise;
|
warn!("The dom.webxr.unsafe-assume-user-intent preference assumes user intent to enter WebXR.");
|
||||||
|
} else {
|
||||||
|
promise.reject_error(Error::Security);
|
||||||
|
return promise;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if self.pending_or_active_session() {
|
if self.pending_or_active_session() {
|
||||||
|
|
|
@ -218,6 +218,7 @@ impl ServoThread {
|
||||||
None => Some(webrender_swap_chain),
|
None => Some(webrender_swap_chain),
|
||||||
Some(..) => {
|
Some(..) => {
|
||||||
set_pref!(dom.webxr.sessionavailable, true);
|
set_pref!(dom.webxr.sessionavailable, true);
|
||||||
|
set_pref!(dom.webxr.unsafe_assume_user_intent, true);
|
||||||
servo.handle_events(vec![WindowEvent::ChangeBrowserVisibility(id, false)]);
|
servo.handle_events(vec![WindowEvent::ChangeBrowserVisibility(id, false)]);
|
||||||
None
|
None
|
||||||
},
|
},
|
||||||
|
|
|
@ -50,6 +50,7 @@
|
||||||
"dom.webxr.layers.enabled": false,
|
"dom.webxr.layers.enabled": false,
|
||||||
"dom.webxr.sessionavailable": false,
|
"dom.webxr.sessionavailable": false,
|
||||||
"dom.webxr.test": false,
|
"dom.webxr.test": false,
|
||||||
|
"dom.webxr.unsafe-assume-user-intent": false,
|
||||||
"dom.worklet.timeout_ms": 10,
|
"dom.worklet.timeout_ms": 10,
|
||||||
"gfx.subpixel-text-antialiasing.enabled": true,
|
"gfx.subpixel-text-antialiasing.enabled": true,
|
||||||
"gfx.texture-swizzling.enabled": true,
|
"gfx.texture-swizzling.enabled": true,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue