summaryrefslogtreecommitdiffstats
path: root/dom/workers/test/worker_suspended.js
blob: f2b4146cba22584f01c52f1deeae1bfa2f2f96f9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
var count = 0;

function do_magic(data) {
  caches
    .open("test")
    .then(function (cache) {
      return cache.put(
        "http://mochi.test:888/foo",
        new Response(data.type + "-" + count++)
      );
    })
    .then(function () {
      if (count == 1) {
        postMessage("ready");
      }

      if (data.loop) {
        setTimeout(function () {
          do_magic(data);
        }, 500);
      }
    });
}

onmessage = function (e) {
  if (e.data.type == "page1") {
    if (e.data.count > 0) {
      var a = new Worker("worker_suspended.js");
      a.postMessage({ type: "page1", count: e.data - 1 });
      a.onmessage = function () {
        postMessage("ready");
      };
    } else {
      do_magic({ type: e.data.type, loop: true });
    }
  } else if (e.data.type == "page2") {
    do_magic({ type: e.data.type, loop: false });
  }
};