blob: 9c5a7ee4aad17469375ef79e6b059ad0bee745bb [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="resources/vr-test-utils.js "></script>
<script src="resources/test-constants.js"></script>
<canvas id="webgl-canvas"></canvas>
<script src="resources/presentation-setup.js"></script>
<canvas id="webgl-canvas2"></canvas>
<script>
var webglCanvas2 = document.getElementById("webgl-canvas2");
var gl2 = webglCanvas2.getContext("webgl", glAttributes);
let fakeDisplays = fakeVRDisplays();
vr_test( (t) => {
return navigator.getVRDisplays().then( (displays) => {
var display = displays[0];
t.step( () => {
assert_equals(display.getLayers().length, 0);
}, "No layers initially returned");
runWithUserGesture( () => {
display.requestPresent([{ source : webglCanvas }]).then( () => {
t.step( () => {
assert_equals(display.getLayers()[0].source, webglCanvas);
}, "Initial layer source matches first canvas");
display.requestPresent([{ source : webglCanvas2 }]).then( () => {
t.step( () => {
assert_equals(display.getLayers()[0].source, webglCanvas2);
assert_not_equals(display.getLayers()[0].source, webglCanvas);
}, "Source now matches second canvas");
}, (err) => {
t.step( () => {
assert_unreached(err);
}, "Second requestPresent failed")
}).then( () => {
t.done();
});
}, (err) => {
t.step( () => {
assert_unreached();
}, "First requestPresent failed");
});
});
}, (err) => {
t.step( () => {
assert_unreached();
}, "getVRDisplays rejected");
t.done();
});
}, [fakeDisplays["Pixel"]],
"Test getLayers returns updated source layer when requestPresent is re-called");
</script>