123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- /**
- * Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/
- */
- var gTimeoutId;
- var gTimeoutCount = 0;
- var gIntervalCount = 0;
- function timeoutFunc() {
- if (++gTimeoutCount > 1) {
- throw new Error("Timeout called more than once!");
- }
- postMessage("timeoutFinished");
- }
- function intervalFunc() {
- if (++gIntervalCount == 2) {
- postMessage("intervalFinished");
- }
- }
- function messageListener(event) {
- switch (event.data) {
- case "startTimeout":
- gTimeoutId = setTimeout(timeoutFunc, 2000);
- clearTimeout(gTimeoutId);
- gTimeoutId = setTimeout(timeoutFunc, 2000);
- break;
- case "startInterval":
- gTimeoutId = setInterval(intervalFunc, 2000);
- break;
- case "cancelInterval":
- clearInterval(gTimeoutId);
- postMessage("intervalCanceled");
- break;
- case "startExpression":
- setTimeout("this.postMessage('expressionFinished');", 2000);
- break;
- default:
- throw "Bad message: " + event.data;
- }
- }
- addEventListener("message", messageListener, false);
|