5 Test for animation.effect.updateTiming({ endDelay }) on compositor
8 <script src=
"/tests/SimpleTest/SimpleTest.js"></script>
9 <script src=
"/tests/SimpleTest/paint_listener.js"></script>
10 <script type=
"application/javascript" src=
"animation_utils.js"></script>
11 <link rel=
"stylesheet" type=
"text/css" href=
"/tests/SimpleTest/test.css">
12 <style type=
"text/css">
14 /* The animation target needs geometry in order to qualify for OMTA */
17 background-color: white
;
22 <div id=
"display"></div>
23 <script type=
"application/javascript">
26 SimpleTest.waitForExplicitFinish();
28 runOMTATest(function() {
29 runAllAsyncAnimTests().then(SimpleTest.finish);
30 }, SimpleTest.finish, SpecialPowers);
32 addAsyncAnimTest(async function() {
33 var [ div ] = new_div(
"");
34 var animation = div.animate(
35 [ { transform: 'translate(
0px)' }, { transform: 'translate(
100px)' } ],
36 { duration:
1000, fill: 'none' });
37 await waitForPaints();
40 omta_is(div,
"transform", { tx:
10 }, RunningOn.Compositor,
41 "Animation is running on compositor");
42 animation.effect.updateTiming({ endDelay:
1000 });
44 await waitForPaints();
45 omta_is(div,
"transform", { tx:
10 }, RunningOn.Compositor,
46 "Animation remains on compositor when endDelay is changed");
49 await waitForPaints();
50 omta_is(div,
"transform", { tx:
0 }, RunningOn.MainThread,
51 "Animation is updated on main thread");
56 addAsyncAnimTest(async function() {
57 var [ div ] = new_div(
"");
58 var animation = div.animate(
59 [ { transform: 'translate(
0px)' }, { transform: 'translate(
100px)' } ],
60 { duration:
1000, endDelay: -
500, fill: 'none' });
61 await waitForPaints();
64 await waitForPaints();
65 omta_is(div,
"transform", { tx:
40 }, RunningOn.Compositor,
66 "Animation is updated on compositor " +
67 "duration 1000, endDelay -500, fill none, current time 400");
70 await waitForPaints();
71 omta_is(div,
"transform", { tx:
0 }, RunningOn.MainThread,
72 "Animation is updated on main thread " +
73 "duration 1000, endDelay -500, fill none, current time 500");
76 await waitForPaints();
77 omta_is(div,
"transform", { tx:
0 }, RunningOn.MainThread,
78 "Animation is updated on main thread " +
79 "duration 1000, endDelay -500, fill none, current time 900");
82 await waitForPaints();
83 omta_is(div,
"transform", { tx:
0 }, RunningOn.MainThread,
84 "Animation is updated on main thread " +
85 "duration 1000, endDelay -500, fill none, current time 1000");
90 addAsyncAnimTest(async function() {
91 var [ div ] = new_div(
"");
92 var animation = div.animate(
93 [ { transform: 'translate(
0px)' }, { transform: 'translate(
100px)' } ],
94 { duration:
1000, endDelay:
1000, fill: 'forwards' });
95 await waitForPaints();
98 await waitForPaints();
99 omta_is(div,
"transform", { tx:
100 }, RunningOn.Compositor,
100 "The end delay is performed on the compositor thread");
105 addAsyncAnimTest(async function() {
106 var [ div ] = new_div(
"");
107 var animation = div.animate(
108 [ { transform: 'translate(
0px)' }, { transform: 'translate(
100px)' } ],
109 { duration:
1000, endDelay: -
500, fill: 'forwards' });
110 await waitForPaints();
113 await waitForPaints();
114 omta_is(div,
"transform", { tx:
40 }, RunningOn.Compositor,
115 "Animation is updated on compositor " +
116 "duration 1000, endDelay -500, fill forwards, current time 400");
119 await waitForPaints();
120 omta_is(div,
"transform", { tx:
50 }, RunningOn.MainThread,
121 "Animation is updated on main thread " +
122 "duration 1000, endDelay -500, fill forwards, current time 500");
125 await waitForPaints();
126 omta_is(div,
"transform", { tx:
50 }, RunningOn.MainThread,
127 "Animation is updated on main thread " +
128 "duration 1000, endDelay -500, fill forwards, current time 900");
131 await waitForPaints();
132 omta_is(div,
"transform", { tx:
50 }, RunningOn.MainThread,
133 "Animation is updated on main thread " +
134 "duration 1000, endDelay -500, fill forwards, current time 1000");