aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Adams <70986246+msub2@users.noreply.github.com>2024-09-09 11:07:56 +0000
committerGitHub <noreply@github.com>2024-09-09 11:07:56 +0000
commit938fd8c12fc2489303e12538d3e3585bd771141f (patch)
tree879979efe6034879b80d2d0dc48f1a78e1601f21
parent9cfbaf92e5bc80dca90f1226dbc4cdcfe025eeb3 (diff)
downloadservo-938fd8c12fc2489303e12538d3e3585bd771141f.tar.gz
servo-938fd8c12fc2489303e12538d3e3585bd771141f.zip
webxr: Update XRInputSource gamepad index to be -1 (#33369)
* Update XRInputSource gamepad index to be -1 Signed-off-by: Daniel Adams <msub2official@gmail.com> * Update test expectations Signed-off-by: Daniel Adams <msub2official@gmail.com> --------- Signed-off-by: Daniel Adams <msub2official@gmail.com>
-rw-r--r--components/script/dom/gamepad.rs6
-rw-r--r--components/script/dom/globalscope.rs3
-rw-r--r--components/script/dom/xrinputsource.rs1
-rw-r--r--tests/wpt/meta-legacy-layout/webxr/gamepads-module/xrInputSource_gamepad_disconnect.https.html.ini5
-rw-r--r--tests/wpt/meta/webxr/gamepads-module/xrInputSource_gamepad_disconnect.https.html.ini5
5 files changed, 14 insertions, 6 deletions
diff --git a/components/script/dom/gamepad.rs b/components/script/dom/gamepad.rs
index 725a9bbf99b..953132e3f02 100644
--- a/components/script/dom/gamepad.rs
+++ b/components/script/dom/gamepad.rs
@@ -96,6 +96,7 @@ impl Gamepad {
axis_bounds: (f64, f64),
button_bounds: (f64, f64),
supported_haptic_effects: GamepadSupportedHapticEffects,
+ xr: bool,
) -> DomRoot<Gamepad> {
Self::new_with_proto(
global,
@@ -105,6 +106,7 @@ impl Gamepad {
axis_bounds,
button_bounds,
supported_haptic_effects,
+ xr,
)
}
@@ -121,15 +123,17 @@ impl Gamepad {
axis_bounds: (f64, f64),
button_bounds: (f64, f64),
supported_haptic_effects: GamepadSupportedHapticEffects,
+ xr: bool,
) -> DomRoot<Gamepad> {
let button_list = GamepadButtonList::init_buttons(global);
let vibration_actuator =
GamepadHapticActuator::new(global, gamepad_id, supported_haptic_effects);
+ let index = if xr { -1 } else { 0 };
let gamepad = reflect_dom_object_with_proto(
Box::new(Gamepad::new_inherited(
gamepad_id,
id,
- 0,
+ index,
true,
0.,
mapping_type,
diff --git a/components/script/dom/globalscope.rs b/components/script/dom/globalscope.rs
index 43ad1764c49..2caf00da4cf 100644
--- a/components/script/dom/globalscope.rs
+++ b/components/script/dom/globalscope.rs
@@ -3236,7 +3236,8 @@ impl GlobalScope {
"standard".into(),
axis_bounds,
button_bounds,
- supported_haptic_effects
+ supported_haptic_effects,
+ false
);
navigator.set_gamepad(selected_index as usize, &gamepad);
}
diff --git a/components/script/dom/xrinputsource.rs b/components/script/dom/xrinputsource.rs
index 699c861ab11..8db4fb5dae3 100644
--- a/components/script/dom/xrinputsource.rs
+++ b/components/script/dom/xrinputsource.rs
@@ -55,6 +55,7 @@ impl XRInputSource {
supports_dual_rumble: false,
supports_trigger_rumble: false,
},
+ true,
);
XRInputSource {
reflector: Reflector::new(),
diff --git a/tests/wpt/meta-legacy-layout/webxr/gamepads-module/xrInputSource_gamepad_disconnect.https.html.ini b/tests/wpt/meta-legacy-layout/webxr/gamepads-module/xrInputSource_gamepad_disconnect.https.html.ini
index aba9da4c7db..f6ca9de7957 100644
--- a/tests/wpt/meta-legacy-layout/webxr/gamepads-module/xrInputSource_gamepad_disconnect.https.html.ini
+++ b/tests/wpt/meta-legacy-layout/webxr/gamepads-module/xrInputSource_gamepad_disconnect.https.html.ini
@@ -1,7 +1,8 @@
[xrInputSource_gamepad_disconnect.https.html]
+ expected: ERROR
[WebXR InputSource's gamepad gets disconnected when the input source is removed - webgl2]
- expected: FAIL
+ expected: NOTRUN
[WebXR InputSource's gamepad gets disconnected when the input source is removed - webgl]
- expected: FAIL
+ expected: TIMEOUT
diff --git a/tests/wpt/meta/webxr/gamepads-module/xrInputSource_gamepad_disconnect.https.html.ini b/tests/wpt/meta/webxr/gamepads-module/xrInputSource_gamepad_disconnect.https.html.ini
index aba9da4c7db..f6ca9de7957 100644
--- a/tests/wpt/meta/webxr/gamepads-module/xrInputSource_gamepad_disconnect.https.html.ini
+++ b/tests/wpt/meta/webxr/gamepads-module/xrInputSource_gamepad_disconnect.https.html.ini
@@ -1,7 +1,8 @@
[xrInputSource_gamepad_disconnect.https.html]
+ expected: ERROR
[WebXR InputSource's gamepad gets disconnected when the input source is removed - webgl2]
- expected: FAIL
+ expected: NOTRUN
[WebXR InputSource's gamepad gets disconnected when the input source is removed - webgl]
- expected: FAIL
+ expected: TIMEOUT