| <!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> |