| <!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/public/mojom/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]; |
| |
| let watcherDone = new Event("watcherdone"); |
| let eventWatcher = new EventWatcher(t, window, ["vrdisplaypresentchange", |
| "watcherdone"]); |
| eventWatcher.wait_for(["vrdisplaypresentchange", /*First requestPresent*/ |
| "vrdisplaypresentchange", /*First exitPresent*/ |
| "watcherdone"]) |
| .then( () => { |
| t.done(); |
| }); |
| |
| runWithUserGesture( () => { |
| display.requestPresent([{ source : webglCanvas }]).then( () => { |
| // Should not fire again if already presenting |
| display.requestPresent([{ source: webglCanvas }]).then( () => { |
| display.exitPresent().then( () => { |
| // Should not fire again if not presenting |
| display.exitPresent().then( () => { |
| t.step( () => { |
| assert_unreached(); |
| }, "Second exitPresent succeeded"); |
| t.done(); |
| }, (err) => { |
| setTimeout( () => {window.dispatchEvent(watcherDone);}, 100); |
| }); |
| }, (err) => { |
| t.step( () => { |
| assert_unreached(err); |
| }, "exitPresent rejected"); |
| }); |
| }, (err) => { |
| t.step( () => { |
| assert_unreached(err); |
| }, "second requestPresent rejected"); |
| t.done(); |
| }); |
| }, (err) => { |
| t.step( () => { |
| assert_unreached(err); |
| }, "requestPresent rejected"); |
| }); |
| }); |
| }, (err) => { |
| t.step( () => { |
| assert_unreached(); |
| }, "getVRDisplays rejected"); |
| t.done(); |
| }); |
| }, [fakeDisplays["Pixel"]], |
| "Test vrdisplaypresentchange fires only when expected"); |
| |
| </script> |