dom/plugins/test/reftest/plugin-background.js

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/dom/plugins/test/reftest/plugin-background.js	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,75 @@
     1.4 +// The including script sets this for us
     1.5 +//var NUM_STEPS;
     1.6 +
     1.7 +var plugin;
     1.8 +var left = 1, top = 1, width = 199, height = 199;
     1.9 +function movePluginTo(x, y, w, h) {
    1.10 +    left = x; top = y;  width = w; height = h;
    1.11 +    plugin.width = w;
    1.12 +    plugin.height = h;
    1.13 +    plugin.style.left = left + "px";
    1.14 +    plugin.style.top = top + "px";
    1.15 +}
    1.16 +function deltaInBounds(dx,dy, dw,dh) {
    1.17 +    var l = dx + left;
    1.18 +    var r = l + width + dw;
    1.19 +    var t = dy + top;
    1.20 +    var b = t + height + dh;
    1.21 +    return (0 <= l && l <= 20 &&
    1.22 +            0 <= t && t <= 20 &&
    1.23 +            200 <= r && r <= 220 &&
    1.24 +            200 <= b && b <= 220);
    1.25 +}
    1.26 +
    1.27 +var initialFrame;
    1.28 +function start() {
    1.29 +    window.removeEventListener("MozReftestInvalidate", start, false);
    1.30 +
    1.31 +    window.addEventListener("MozAfterPaint", step, false);
    1.32 +    window.addEventListener("MozPaintWaitFinished", step, false);
    1.33 +
    1.34 +    initialFrame = window.mozPaintCount;
    1.35 +    plugin = document.getElementById("plugin");
    1.36 +
    1.37 +    movePluginTo(0,0, 200,200);
    1.38 +}
    1.39 +
    1.40 +var steps = 0;
    1.41 +var which = "move"; // or "grow"
    1.42 +var dx = 1, dy = 1, dw = 1, dh = 1;
    1.43 +function step() {
    1.44 +    if (++steps >= NUM_STEPS) {
    1.45 +        window.removeEventListener("MozAfterPaint", step, false);
    1.46 +        window.removeEventListener("MozPaintWaitFinished", step, false);
    1.47 +        return finish();
    1.48 +    }
    1.49 +
    1.50 +    var didSomething = false;
    1.51 +    if (which == "grow") {
    1.52 +        if (deltaInBounds(0,0, dw,dh)) {
    1.53 +            movePluginTo(left,top, width+dw, height+dh);
    1.54 +            didSomething = true;
    1.55 +        } else {
    1.56 +            dw = -dw;  dh = -dh;
    1.57 +        }
    1.58 +    } else {
    1.59 +        // "move"
    1.60 +        if (deltaInBounds(dx,dy, 0,0)) {
    1.61 +            movePluginTo(left+dx,top+dy, width, height);
    1.62 +            didSomething = true;
    1.63 +        } else {
    1.64 +            dx = -dx;  dy = -dy;
    1.65 +        }
    1.66 +    }
    1.67 +    which = (which == "grow") ? "move" : "grow";
    1.68 +
    1.69 +    if (!didSomething) {
    1.70 +        step();
    1.71 +    }
    1.72 +}
    1.73 +
    1.74 +function finish() {
    1.75 +    document.documentElement.removeAttribute("class");
    1.76 +}
    1.77 +
    1.78 +window.addEventListener("MozReftestInvalidate", start, false);

mercurial