blob: 4b7885779f15f98e4e455101d6b0e9131f51efec [file] [log] [blame]
<!DOCTYPE html>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<script src="file:///gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script>
<script src="file:///gen/device/vr/public/mojom/vr_service.mojom.js"></script>
<script src="../external/wpt/resources/chromium/webxr-test.js"></script>
<script src="../external/wpt/webxr/resources/webxr_test_constants.js"></script>
<script src="../xr/resources/xr-internal-device-mocking.js"></script>
<script src="../xr/resources/xr-test-utils.js"></script>
<canvas id="webgl-canvas"></canvas>
<script>
let testName = "inlineVerticalFieldOfView is set appropriately on immersively sessions";
let fakeDeviceInitParams = { supportsImmersive: true };
let requestSessionModes = ['immersive-vr'];
let testFunction = function(session, t, fakeDeviceController) {
// Session must have a baseLayer or frame requests will be ignored.
session.updateRenderState({
baseLayer: new XRWebGLLayer(session, gl, {
compositionDisabled: session.mode == 'inline' })
});
return new Promise((resolve, reject) => {
// inlineVerticalFieldOfView should be null for immersive sessions;
t.step(() => {
assert_equals(session.renderState.inlineVerticalFieldOfView, null);
});
// Trying to set it should throw an exception
try {
session.updateRenderState({
inlineVerticalFieldOfView: 1.0
});
t.step(() => {
assert_unreached("Should not be able to set inlineVerticalFieldOfView on immersive sessions");
});
} catch(err) {
t.step(() => {
assert_equals(err.name, "InvalidStateError");
});
}
resolve();
});
};
xr_session_promise_test(
testFunction, fakeDeviceInitParams, requestSessionModes, testName);
</script>