summaryrefslogtreecommitdiffstats
path: root/dom/serviceworkers/test/thirdparty/register.html
blob: b166acb8a4a910aaa7ec8a9d890876b22ab7933c (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
<!DOCTYPE html>
<script>
  function ok(v, msg) {
    window.parent.postMessage({status: "ok", result: !!v, message: msg}, "*");
  }

  var isDone = false;
  function done(reg) {
    if (!isDone) {
      ok(reg.waiting || reg.active,
         "Either active or waiting worker should be available.");
      window.parent.postMessage({status: "registrationdone"}, "*");
      isDone = true;
    }
  }

  navigator.serviceWorker.register("sw.js", {scope: "."})
    .then(function(registration) {
      if (registration.installing) {
        registration.installing.onstatechange = function(e) {
          done(registration);
        };
      } else {
        done(registration);
      }
    }).catch(function(e) {
      window.parent.postMessage({status: "registrationfailed"}, "*");
    });
</script>