blob: 7967cda9d935b4e516845498e0841d1d33c317fd [file] [log] [blame]
<!DOCTYPE html>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<script src="resources/fake-vr-displays.js"></script>
<script src="file:///gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script>
<script src="file:///gen/device/vr/vr_service.mojom.js"></script>
<script src="resources/mock-vr-service.js"></script>
<canvas id="webgl-canvas"></canvas>
<script src="resources/presentation-setup.js"></script>
<script>
let fakeDisplays = fakeVRDisplays();
vr_test( (t) => {
return navigator.getVRDisplays().then( (displays) => {
var display = displays[0];
runWithUserGesture( () => {
display.requestPresent([{ source : webglCanvas }]).then( () => {
t.step( () => {
assert_true(display.isPresenting);
}, "Display should be presenting");
// Call requestPresent again after a short delay, but without a user
// gesture. Should resolve because it's already presenting.
setTimeout( () => {
display.requestPresent([{ source : webglCanvas }]).then( () => {
t.step( () => {
assert_true(display.isPresenting);
}, "Display should still be presenting");
}, (err) => {
t.step( () => {
assert_unreached(err);
}, "Should never reach here");
}).then( () => {
t.done();
});
}, 100);
}, (err) => {
t.step( () => {
assert_unreached(err);
}, "Should never reach here");
t.done();
});
});
}, (err) => {
t.step( () => {
assert_unreached(err);
}, "getVRDisplays rejected");
t.done();
});
}, [fakeDisplays["Pixel"]],
"Test requestPresent resolves without a user gesture when already presenting");
</script>