diff --git a/testing/web-platform/tests/resources/chromium/webxr-test-math-helper.js b/testing/web-platform/tests/resources/chromium/webxr-test-math-helper.js
index 9f10a9d4b7f7..d47fde208dac 100644
--- a/testing/web-platform/tests/resources/chromium/webxr-test-math-helper.js
+++ b/testing/web-platform/tests/resources/chromium/webxr-test-math-helper.js
@@ -196,23 +196,23 @@ class XRMathHelper {
const result2 = [
// First column (m0r):
invDet * det3x3(m11, m12, m13, m21, m22, m23, m32, m32, m33),
- invDet * det3x3(m10, m12, m13, m20, m22, m23, m30, m32, m33),
+ -invDet * det3x3(m10, m12, m13, m20, m22, m23, m30, m32, m33),
invDet * det3x3(m10, m11, m13, m20, m21, m23, m30, m31, m33),
- invDet * det3x3(m10, m11, m12, m20, m21, m22, m30, m31, m32),
+ -invDet * det3x3(m10, m11, m12, m20, m21, m22, m30, m31, m32),
// Second column (m1r):
- invDet * det3x3(m01, m02, m03, m21, m22, m23, m32, m32, m33),
+ -invDet * det3x3(m01, m02, m03, m21, m22, m23, m32, m32, m33),
invDet * det3x3(m00, m02, m03, m20, m22, m23, m30, m32, m33),
- invDet * det3x3(m00, m01, m03, m20, m21, m23, m30, m31, m33),
+ -invDet * det3x3(m00, m01, m03, m20, m21, m23, m30, m31, m33),
invDet * det3x3(m00, m01, m02, m20, m21, m22, m30, m31, m32),
// Third column (m2r):
invDet * det3x3(m01, m02, m03, m11, m12, m13, m31, m32, m33),
- invDet * det3x3(m00, m02, m03, m10, m12, m13, m30, m32, m33),
+ -invDet * det3x3(m00, m02, m03, m10, m12, m13, m30, m32, m33),
invDet * det3x3(m00, m01, m03, m10, m11, m13, m30, m31, m33),
- invDet * det3x3(m00, m01, m02, m10, m11, m12, m30, m31, m32),
+ -invDet * det3x3(m00, m01, m02, m10, m11, m12, m30, m31, m32),
// Fourth column (m3r):
- invDet * det3x3(m01, m02, m03, m11, m12, m13, m21, m22, m23),
+ -invDet * det3x3(m01, m02, m03, m11, m12, m13, m21, m22, m23),
invDet * det3x3(m00, m02, m03, m10, m12, m13, m20, m22, m23),
- invDet * det3x3(m00, m01, m03, m10, m11, m13, m20, m21, m23),
+ -invDet * det3x3(m00, m01, m03, m10, m11, m13, m20, m21, m23),
invDet * det3x3(m00, m01, m02, m10, m11, m12, m20, m21, m22),
];
diff --git a/testing/web-platform/tests/resources/chromium/webxr-test.js b/testing/web-platform/tests/resources/chromium/webxr-test.js
index a9dd9b1d7c7c..4401972c8b38 100644
--- a/testing/web-platform/tests/resources/chromium/webxr-test.js
+++ b/testing/web-platform/tests/resources/chromium/webxr-test.js
@@ -3,7 +3,7 @@
// This polyfill library implements the WebXR Test API as specified here:
// https://github.com/immersive-web/webxr-test-api
-
+// The standingTransform is floor_from_mojo and represented as such here.
const default_standing = new gfx.mojom.Transform();
default_standing.matrix = [1, 0, 0, 0,
0, 1, 0, 0,
@@ -409,8 +409,11 @@ class MockRuntime {
}
this.stageParameters_.standingTransform = new gfx.mojom.Transform();
+
+ // floorOrigin is passed in as mojoFromFloor; however, standingTransform is
+ // floorFromMojo so we need to invert the result of |getMatrixFromTransform|
this.stageParameters_.standingTransform.matrix =
- getMatrixFromTransform(floorOrigin);
+ XRMathHelper.inverse(getMatrixFromTransform(floorOrigin));
this.onStageParametersUpdated();
}
diff --git a/testing/web-platform/tests/webxr/hit-test/ar_hittest_subscription_refSpaces.https.html b/testing/web-platform/tests/webxr/hit-test/ar_hittest_subscription_refSpaces.https.html
index ecdfab479c7b..f1c223ae7495 100644
--- a/testing/web-platform/tests/webxr/hit-test/ar_hittest_subscription_refSpaces.https.html
+++ b/testing/web-platform/tests/webxr/hit-test/ar_hittest_subscription_refSpaces.https.html
@@ -17,14 +17,14 @@ const VIEWER_ORIGIN_TRANSFORM = {
// 0.25m above world origin.
const FLOOR_ORIGIN_TRANSFORM = {
- position: [0, -0.25, 0],
+ position: [0, 0.25, 0],
orientation: [0, 0, 0, 1],
};
const fakeDeviceInitParams = {
supportedModes: ["immersive-ar"],
views: VALID_VIEWS,
- floorOrigin: FLOOR_ORIGIN_TRANSFORM, // aka floor_from_mojo
+ floorOrigin: FLOOR_ORIGIN_TRANSFORM, // aka mojo_from_floor
viewerOrigin: VIEWER_ORIGIN_TRANSFORM, // aka mojo_from_viewer
supportedFeatures: ALL_FEATURES,
world: createFakeWorld(5.0, 2.0, 5.0), // webxr_test_constants_fake_world.js has detailed description of the fake world
diff --git a/testing/web-platform/tests/webxr/resources/webxr_test_constants.js b/testing/web-platform/tests/webxr/resources/webxr_test_constants.js
index 959859cba213..19ddbc24200d 100644
--- a/testing/web-platform/tests/webxr/resources/webxr_test_constants.js
+++ b/testing/web-platform/tests/webxr/resources/webxr_test_constants.js
@@ -71,7 +71,7 @@ const VALID_FLOOR_ORIGIN_MATRIX = [1, 0, 0, 0,
1, 1.65, -1, 1];
const VALID_FLOOR_ORIGIN = {
- position: [1.0, 1.65, -1.0],
+ position: [-1.0, -1.65, 1.0],
orientation: [0, 0, 0, 1]
};
diff --git a/testing/web-platform/tests/webxr/xrReferenceSpace_originOffsetBounded.https.html b/testing/web-platform/tests/webxr/xrReferenceSpace_originOffsetBounded.https.html
index 7ef880c32c09..561c34ae9427 100644
--- a/testing/web-platform/tests/webxr/xrReferenceSpace_originOffsetBounded.https.html
+++ b/testing/web-platform/tests/webxr/xrReferenceSpace_originOffsetBounded.https.html
@@ -28,7 +28,7 @@ const VIEWS_WITH_OFFSET = [{
}];
const FLOOR_TRANSFORM = {
- position: [0.1, 0.2, 0.3],
+ position: [-0.1, -0.2, -0.3],
orientation: [0, 0, 0, 1]
};
diff --git a/testing/web-platform/tests/webxr/xrReferenceSpace_relationships.https.html b/testing/web-platform/tests/webxr/xrReferenceSpace_relationships.https.html
new file mode 100644
index 000000000000..f97ca6639f7c
--- /dev/null
+++ b/testing/web-platform/tests/webxr/xrReferenceSpace_relationships.https.html
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+
+
+