Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(80)

Side by Side Diff: third_party/WebKit/LayoutTests/vr/requestAnimationFrame_submitFrame_combinations.html

Issue 2888313002: WebVR: Defer GetVSync calls until the current frame is submitted. (Closed)
Patch Set: Rebase on crrev.com/2891033002#ps80001 (ps5) Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 <!DOCTYPE html>
2 <script src="../resources/testharness.js"></script>
3 <script src="../resources/testharnessreport.js"></script>
4 <script src="../resources/mojo-helpers.js"></script>
5 <script src="resources/fake-vr-displays.js"></script>
6 <script src="resources/mock-vr-service.js"></script>
7 <canvas id="webgl-canvas"></canvas>
8 <script src="resources/presentation-setup.js"></script>
9 <script>
10 let fakeDisplays = fakeVRDisplays();
11
12 vr_test( (t) => {
13 return navigator.getVRDisplays().then( (displays) => {
14 let display = displays[0];
15
16 function onFrameStartup() {
17 // Wait until presentation starts, then proceed
18 // with the remaining tests.
19 if (display.isPresenting) {
20 display.requestAnimationFrame(onFrame1);
21 display.submitFrame();
22 } else {
23 display.requestAnimationFrame(onFrameStartup);
24 }
25 }
26
27 function onFrame1() {
28 // case (b): submit frame first, then rAF
29 display.submitFrame();
30 display.requestAnimationFrame(onFrame2);
31 }
32
33 function onFrame2() {
34 // case (c): rAF first, then submit frame
35 display.requestAnimationFrame(onFrame3);
36 display.submitFrame();
37 }
38
39 function onFrame3(time) {
40 // case (d): don't submit a frame.
41 display.requestAnimationFrame(onFrame4);
42 }
43
44 function onFrame4(time) {
45 // If we get here, we're done.
46 t.done();
47 }
48
49 runWithUserGesture( () => {
50 display.requestPresent([{ source : webglCanvas }]).then( () => {
51 t.step( () => {
52 assert_true(display.isPresenting);
53 }, "Display should be presenting");
54 }, (err) => {
55 t.step( () => {
56 assert_unreached(err);
57 }, "requestPresent rejected");
58 });
59 });
60
61 // Start: case (a) outside animating context.
62 display.requestAnimationFrame(onFrameStartup);
63 }, (err) => {
64 t.step( () => {
65 assert_unreached("getVRDisplays rejected");
66 });
67 t.done();
68 });
69 }, [fakeDisplays["Pixel"]],
70 "multiple requestAnimationFrame requests call the correct callbacks");
71
72 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698