|
1 // The including script sets this for us |
|
2 //var NUM_STEPS; |
|
3 |
|
4 var plugin; |
|
5 var left = 1, top = 1, width = 199, height = 199; |
|
6 function movePluginTo(x, y, w, h) { |
|
7 left = x; top = y; width = w; height = h; |
|
8 plugin.width = w; |
|
9 plugin.height = h; |
|
10 plugin.style.left = left + "px"; |
|
11 plugin.style.top = top + "px"; |
|
12 } |
|
13 function deltaInBounds(dx,dy, dw,dh) { |
|
14 var l = dx + left; |
|
15 var r = l + width + dw; |
|
16 var t = dy + top; |
|
17 var b = t + height + dh; |
|
18 return (0 <= l && l <= 20 && |
|
19 0 <= t && t <= 20 && |
|
20 200 <= r && r <= 220 && |
|
21 200 <= b && b <= 220); |
|
22 } |
|
23 |
|
24 var initialFrame; |
|
25 function start() { |
|
26 window.removeEventListener("MozReftestInvalidate", start, false); |
|
27 |
|
28 window.addEventListener("MozAfterPaint", step, false); |
|
29 window.addEventListener("MozPaintWaitFinished", step, false); |
|
30 |
|
31 initialFrame = window.mozPaintCount; |
|
32 plugin = document.getElementById("plugin"); |
|
33 |
|
34 movePluginTo(0,0, 200,200); |
|
35 } |
|
36 |
|
37 var steps = 0; |
|
38 var which = "move"; // or "grow" |
|
39 var dx = 1, dy = 1, dw = 1, dh = 1; |
|
40 function step() { |
|
41 if (++steps >= NUM_STEPS) { |
|
42 window.removeEventListener("MozAfterPaint", step, false); |
|
43 window.removeEventListener("MozPaintWaitFinished", step, false); |
|
44 return finish(); |
|
45 } |
|
46 |
|
47 var didSomething = false; |
|
48 if (which == "grow") { |
|
49 if (deltaInBounds(0,0, dw,dh)) { |
|
50 movePluginTo(left,top, width+dw, height+dh); |
|
51 didSomething = true; |
|
52 } else { |
|
53 dw = -dw; dh = -dh; |
|
54 } |
|
55 } else { |
|
56 // "move" |
|
57 if (deltaInBounds(dx,dy, 0,0)) { |
|
58 movePluginTo(left+dx,top+dy, width, height); |
|
59 didSomething = true; |
|
60 } else { |
|
61 dx = -dx; dy = -dy; |
|
62 } |
|
63 } |
|
64 which = (which == "grow") ? "move" : "grow"; |
|
65 |
|
66 if (!didSomething) { |
|
67 step(); |
|
68 } |
|
69 } |
|
70 |
|
71 function finish() { |
|
72 document.documentElement.removeAttribute("class"); |
|
73 } |
|
74 |
|
75 window.addEventListener("MozReftestInvalidate", start, false); |