| Index: third_party/WebKit/LayoutTests/vr/requestAnimationFrame_submitFrame_combinations.html
|
| diff --git a/third_party/WebKit/LayoutTests/vr/requestAnimationFrame_submitFrame_combinations.html b/third_party/WebKit/LayoutTests/vr/requestAnimationFrame_submitFrame_combinations.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..4c115d16a59d187d225c55a8edd66ffc2ef67719
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/vr/requestAnimationFrame_submitFrame_combinations.html
|
| @@ -0,0 +1,72 @@
|
| +<!DOCTYPE html>
|
| +<script src="../resources/testharness.js"></script>
|
| +<script src="../resources/testharnessreport.js"></script>
|
| +<script src="../resources/mojo-helpers.js"></script>
|
| +<script src="resources/fake-vr-displays.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) => {
|
| + let display = displays[0];
|
| +
|
| + function onFrameStartup() {
|
| + // Wait until presentation starts, then proceed
|
| + // with the remaining tests.
|
| + if (display.isPresenting) {
|
| + display.requestAnimationFrame(onFrame1);
|
| + display.submitFrame();
|
| + } else {
|
| + display.requestAnimationFrame(onFrameStartup);
|
| + }
|
| + }
|
| +
|
| + function onFrame1() {
|
| + // case (b): submit frame first, then rAF
|
| + display.submitFrame();
|
| + display.requestAnimationFrame(onFrame2);
|
| + }
|
| +
|
| + function onFrame2() {
|
| + // case (c): rAF first, then submit frame
|
| + display.requestAnimationFrame(onFrame3);
|
| + display.submitFrame();
|
| + }
|
| +
|
| + function onFrame3(time) {
|
| + // case (d): don't submit a frame.
|
| + display.requestAnimationFrame(onFrame4);
|
| + }
|
| +
|
| + function onFrame4(time) {
|
| + // If we get here, we're done.
|
| + t.done();
|
| + }
|
| +
|
| + runWithUserGesture( () => {
|
| + display.requestPresent([{ source : webglCanvas }]).then( () => {
|
| + t.step( () => {
|
| + assert_true(display.isPresenting);
|
| + }, "Display should be presenting");
|
| + }, (err) => {
|
| + t.step( () => {
|
| + assert_unreached(err);
|
| + }, "requestPresent rejected");
|
| + });
|
| + });
|
| +
|
| + // Start: case (a) outside animating context.
|
| + display.requestAnimationFrame(onFrameStartup);
|
| + }, (err) => {
|
| + t.step( () => {
|
| + assert_unreached("getVRDisplays rejected");
|
| + });
|
| + t.done();
|
| + });
|
| +}, [fakeDisplays["Pixel"]],
|
| +"multiple requestAnimationFrame requests call the correct callbacks");
|
| +
|
| +</script>
|
|
|