Revert "Refactor XR mojo API to directly send array of views"
This reverts commit 6aa36ea5b2abd250d763a94016235441b3c9c823.
Reason for revert: fix webkit_unit_tests for
https://ci.chromium.org/p/chromium/builders/ci/Linux%20Tests%20%28dbg%29%281%29
https://ci.chromium.org/p/chromium/builders/ci/linux-chromeos-dbg
https://ci.chromium.org/p/chromium/builders/ci/Win7%20Tests%20%28dbg%29%281%29
Original change's description:
> Refactor XR mojo API to directly send array of views
>
> This change sends the array of views directly from the XR process to
> Blink and the browser process, instead of sending individual
> head-from-eye and head-from-local poses. With this change, Blink
> and the browser process no longer have to manually calculate the
> transforms and can instead use the transforms directly from the XR
> runtime. This also allows the XR runtime to send an arbitrary number
> of views in the case where WebXR requests secondary views.
>
> This change also improves OpenXR stability. Requesting head-from-eye
> and head-from-local poses requires two separate calls to OpenXR,
> which uses slightly different timestamps. As a result, the final
> transform calculated by Blink and passed to WebXR is slightly off
> from the transform OpenXR use, resulting in some jittering in
> certain devices.
>
> Change-Id: I5da254537ce1317e43677863aeeb6c0f234957f8
> Bug: 998146
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2977592
> Commit-Queue: Patrick To <patrto@microsoft.com>
> Reviewed-by: Sam McNally <sammc@chromium.org>
> Reviewed-by: Alexander Cooper <alcooper@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#913173}
Bug: 998146
Change-Id: I3fea6d7d7801ec67d3d474fda69c809877604c59
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3106526
Auto-Submit: Roman Sorokin [CET] <rsorokin@chromium.org>
Commit-Queue: Roman Sorokin [CET] <rsorokin@chromium.org>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Owners-Override: Roman Sorokin [CET] <rsorokin@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#913335}
diff --git a/resources/chromium/webxr-test.js b/resources/chromium/webxr-test.js
index e8e3708..4e32992 100644
--- a/resources/chromium/webxr-test.js
+++ b/resources/chromium/webxr-test.js
@@ -502,10 +502,8 @@
setViews(views) {
if (views) {
this.displayInfo_.views = [];
- this.viewOffsets_ = [];
for (let i = 0; i < views.length; i++) {
this.displayInfo_.views[i] = this.getView(views[i]);
- this.viewOffsets_[i] = composeGFXTransform(views[i].viewOffset);
}
if (this.sessionClient_) {
@@ -735,10 +733,10 @@
leftDegrees: 50.899,
rightDegrees: 35.197
},
- mojoFromView: this._getMojoFromViewerWithOffset(composeGFXTransform({
+ headFromEye: composeGFXTransform({
position: [-0.032, 0, 0],
orientation: [0, 0, 0, 1]
- })),
+ }),
viewport: { width: viewport_size, height: viewport_size }
},
{
@@ -749,10 +747,10 @@
leftDegrees: 50.899,
rightDegrees: 35.197
},
- mojoFromView: this._getMojoFromViewerWithOffset(composeGFXTransform({
+ headFromEye: composeGFXTransform({
position: [0.032, 0, 0],
orientation: [0, 0, 0, 1]
- })),
+ }),
viewport: { width: viewport_size, height: viewport_size }
}]
};
@@ -809,7 +807,7 @@
return {
eye: viewEye,
fieldOfView: fov,
- mojoFromView: this._getMojoFromViewerWithOffset(composeGFXTransform(fakeXRViewInit.viewOffset)),
+ headFromEye: composeGFXTransform(fakeXRViewInit.viewOffset),
viewport: {
width: fakeXRViewInit.resolution.width,
height: fakeXRViewInit.resolution.height
@@ -883,14 +881,9 @@
}
}
- let views = this.displayInfo_.views;
- for (let i = 0; i < views.length; i++) {
- views[i].mojoFromView = this._getMojoFromViewerWithOffset(this.viewOffsets_[i]);
- }
-
const frameData = {
pose: this.pose_,
- views: views,
+ views: [],
mojoSpaceReset: mojo_space_reset,
inputState: input_state,
timeDelta: {
@@ -1554,9 +1547,6 @@
}
_getMojoFromViewer() {
- if (!this.pose_) {
- return XRMathHelper.identity();
- }
const transform = {
position: [
this.pose_.position.x,
@@ -1572,10 +1562,6 @@
return getMatrixFromTransform(transform);
}
- _getMojoFromViewerWithOffset(viewOffset) {
- return { matrix: XRMathHelper.mul4x4(this._getMojoFromViewer(), viewOffset.matrix) };
- }
-
_getMojoFromNativeOrigin(nativeOriginInformation) {
const mojo_from_viewer = this._getMojoFromViewer();