<!DOCTYPE html> <body> <script src=/resources/testharness.js></script> <script src=/resources/testharnessreport.js></script> <script src="resources/webxr_util.js"></script> <script src="resources/webxr_test_constants.js"></script> <script> const immersivetestName = "end event fires when immersive session ends"; const nonimmersiveTestName = "end event fires when non-immersive session ends"; let watcherDone = new Event("watcherdone"); const fakeDeviceInitParams = TRACKED_IMMERSIVE_DEVICE; let testFunction = function(session, testDeviceController, t) { let eventWatcher = new EventWatcher(t, session, ["end", "watcherdone"]); let eventPromise = eventWatcher.wait_for(["end", "watcherdone"]); function onSessionEnd(event) { t.step( () => { assert_equals(event.session, session); let eventSession = event.session; assert_equals(eventSession, event.session, "XRSessionEvent.session returns the same object."); session.dispatchEvent(watcherDone); }); } session.addEventListener("end", onSessionEnd, false); session.end(); return eventPromise; }; xr_session_promise_test(immersivetestName, testFunction, fakeDeviceInitParams, 'immersive-vr'); xr_session_promise_test(nonimmersiveTestName, testFunction, fakeDeviceInitParams, 'inline'); </script> </body>