| <!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> | |
| let immersiveTestName = "XRSession cancelAnimationFrame does not have unexpected " | |
| + "behavior when given invalid handles on immersive testSession"; | |
| let nonImmersiveTestName = "XRSession cancelAnimationFrame does not have unexpected " | |
| + "behavior when given invalid handles on non-immersive testSession"; | |
| let fakeDeviceInitParams = TRACKED_IMMERSIVE_DEVICE; | |
| let testFunction = (testSession) => new Promise((resolve) => { | |
| let counter = 0; | |
| function onFrame(time, vrFrame) { | |
| if(counter <= 10) { | |
| testSession.requestAnimationFrame(onFrame); | |
| } else { | |
| resolve(); | |
| } | |
| counter++; | |
| } | |
| let handle = testSession.requestAnimationFrame(onFrame); | |
| testSession.cancelAnimationFrame(0); | |
| testSession.cancelAnimationFrame(-1); | |
| testSession.cancelAnimationFrame(handle + 1); | |
| testSession.cancelAnimationFrame(handle - 1); | |
| testSession.cancelAnimationFrame(0.5); | |
| testSession.cancelAnimationFrame(null); | |
| }); | |
| xr_session_promise_test( | |
| immersiveTestName, testFunction, fakeDeviceInitParams, 'immersive-vr'); | |
| xr_session_promise_test( | |
| nonImmersiveTestName, testFunction, fakeDeviceInitParams, 'inline'); | |
| </script> | |
| </body> |