Skip to content

Commit

Permalink
Check requested reference space against enabled XR session features
Browse files Browse the repository at this point in the history
Currently we only check if the requested reference space is supported
by the device before resolving the request. With more detailed consent
this is no longer sufficient, we need to also check the underlying
feature of the reference space against which features have been enabled.

This CL also does some minor refactoring of code related to
XRSessionFeature.

Bug: 985095
Change-Id: Ibe6ecadbc6ce25c523eb4ee9d8a73560d8580df5
  • Loading branch information
willcassella authored and chromium-wpt-export-bot committed Aug 16, 2019
1 parent 6a439fd commit 5fc3ddc
Show file tree
Hide file tree
Showing 9 changed files with 25 additions and 9 deletions.
4 changes: 3 additions & 1 deletion webxr/events_referenceSpace_reset.https.html
Expand Up @@ -50,6 +50,8 @@
xr_session_promise_test(
immersiveTestName, testFunction, fakeDeviceInitParams, 'immersive-vr');
xr_session_promise_test(
nonImmersiveTestName, testFunction, fakeDeviceInitParams, 'inline');
nonImmersiveTestName, testFunction, fakeDeviceInitParams, 'inline', {
'requiredFeatures': ['local'],
});

</script>
2 changes: 1 addition & 1 deletion webxr/xrBoundedReferenceSpace_updates.https.html
Expand Up @@ -58,6 +58,6 @@
});
};

xr_session_promise_test(testName, testFunction, fakeDeviceInitParams, 'immersive-vr');
xr_session_promise_test(testName, testFunction, fakeDeviceInitParams, 'immersive-vr', { 'requiredFeatures': ['bounded-floor'] });

</script>
2 changes: 1 addition & 1 deletion webxr/xrFrame_getPose.https.html
Expand Up @@ -77,6 +77,6 @@
xr_session_promise_test(immersiveTestName, testFunction,
fakeDeviceInitParams, 'immersive-vr');
xr_session_promise_test(nonImmersiveTestName, testFunction,
fakeDeviceInitParams, 'inline');
fakeDeviceInitParams, 'inline', { 'requiredFeatures': ['local'] });

</script>
2 changes: 1 addition & 1 deletion webxr/xrFrame_lifetime.https.html
Expand Up @@ -52,7 +52,7 @@
xr_session_promise_test(immersiveTestName, testFunction,
fakeDeviceInitParams, 'immersive-vr');
xr_session_promise_test(nonImmersiveTestName, testFunction,
fakeDeviceInitParams, 'inline');
fakeDeviceInitParams, 'inline', { 'requiredFeatures': ['local'] });

</script>
</body>
2 changes: 1 addition & 1 deletion webxr/xrReferenceSpace_originOffsetBounded.https.html
Expand Up @@ -239,6 +239,6 @@
};

xr_session_promise_test(
testName, testFunction, fakeDeviceInitParams, 'immersive-vr');
testName, testFunction, fakeDeviceInitParams, 'immersive-vr', { 'requiredFeatures': ['bounded-floor'] });

</script>
Expand Up @@ -68,7 +68,7 @@
};

xr_session_promise_test(nonImmersiveTestName, testFunction,
fakeDeviceInitParams, 'inline');
fakeDeviceInitParams, 'inline', { 'requiredFeatures': ['local'] });
xr_session_promise_test(immersiveTestName, testFunction,
fakeDeviceInitParams, 'immersive-vr');

Expand Down
2 changes: 1 addition & 1 deletion webxr/xrSession_requestAnimationFrame_timestamp.https.html
Expand Up @@ -87,6 +87,6 @@
xr_session_promise_test(
immersiveTestName, testFunction, fakeDeviceInitParams, 'immersive-vr');
xr_session_promise_test(
nonImmersiveTestName, testFunction, fakeDeviceInitParams, 'inline');
nonImmersiveTestName, testFunction, fakeDeviceInitParams, 'inline', { 'requiredFeatures': ['local'] });

</script>
14 changes: 14 additions & 0 deletions webxr/xrSession_requestReferenceSpace_features.https.html
Expand Up @@ -38,6 +38,12 @@
xr_session_promise_test(
"Immersive session supports local space by default",
makeSpaceTest('local'), fakeDeviceInitParams, 'immersive-vr', {});
xr_session_promise_test(
"Immersive AR session supports viewer space by default",
makeSpaceTest('viewer'), fakeDeviceInitParams, 'immersive-ar', {});
xr_session_promise_test(
"Immersive AR session supports local space by default",
makeSpaceTest('local'), fakeDeviceInitParams, 'immersive-ar', {});

// Test that session-appropriate non-default reference spaces work when requested
xr_session_promise_test(
Expand All @@ -60,6 +66,14 @@
"Immersive session supports local-floor space when optional",
makeSpaceTest('local-floor'), fakeDeviceInitParams, 'immersive-vr',
{optionalFeatures: ['local-floor']});
xr_session_promise_test(
"Immersive AR session supports local-floor space when required",
makeSpaceTest('local-floor'), fakeDeviceInitParams, 'immersive-ar',
{requiredFeatures: ['local-floor']});
xr_session_promise_test(
"Immersive AR session supports local-floor space when optional",
makeSpaceTest('local-floor'), fakeDeviceInitParams, 'immersive-ar',
{optionalFeatures: ['local-floor']});

// Test that inline space can't request 'bounded-floor' or 'unbounded'
xr_session_promise_test(
Expand Down
Expand Up @@ -64,7 +64,7 @@
}));
};

xr_session_promise_test(immersiveTestName, testFunction, fakeDeviceInitParams, 'immersive-vr');
xr_session_promise_test(nonImmersiveTestName, testFunction, fakeDeviceInitParams, 'inline');
xr_session_promise_test(immersiveTestName, testFunction, fakeDeviceInitParams, 'immersive-vr', { 'requiredFeatures': ['local-floor'] });
xr_session_promise_test(nonImmersiveTestName, testFunction, fakeDeviceInitParams, 'inline', { 'requiredFeatures': ['local-floor'] });

</script>

0 comments on commit 5fc3ddc

Please sign in to comment.