summaryrefslogtreecommitdiffstats
path: root/tests/auto/core/qwebengineurlrequestinterceptor/resources/sw.html
blob: fc3d9ded47464b37d9a1f91cdce0672de743fb7d (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
40
41
42
43
<!DOCTYPE html>
<html>
  <body>
    <script>
      function logState(state) {
         console.log("Service worker " + state)
      }

      const registerServiceWorker = async () => {
          try {
            var serviceWorker;
            const registration = await navigator.serviceWorker.register('/sw.js');
            if (registration.installing) {
              serviceWorker = registration.installing;
            } else if (registration.waiting) {
              serviceWorker = registration.waiting;
            } else if (registration.active) {
              serviceWorker = registration.active;
            }
          } catch (error) {
            console.error("Service worker registration error: ${error}");
          }
          if (serviceWorker) {
            logState(serviceWorker.state);
            serviceWorker.addEventListener('statechange', function(e) {
            logState(e.target.state);
            });
          }
      };
      if ('serviceWorker' in navigator) {
        registerServiceWorker();
        navigator.serviceWorker.ready.then((registration) => {
          navigator.serviceWorker.onmessage = (event) => {
            if (event.data && event.data.type === 'PONG') {
                console.log("Service worker done");
            }
          };
          registration.active.postMessage({type: 'PING'});
        });
      }
    </script>
  </body>
</html>