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
   44

content / test / data / service_worker / fenced_frame.html [blame]

<!doctype html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>ServiceWorkerFencedFrameBrowserTest helper page</title>
    <script>
    async function RegisterServiceWorker() {
      await navigator.serviceWorker.register('fenced_frame_service_worker.js');
      return 'ok - service worker registered';
    }

    async function backgroundFetchFromServiceWorker() {
      const controllerChangePromise = new Promise(resolve => {
        if (navigator.serviceWorker.controller) {
          resolve();
          return;
        }
        navigator.serviceWorker.addEventListener('controllerchange', resolve);
      });
      const sendMessageToServiceWorker = () => {
        const ctrl = navigator.serviceWorker.controller;
        return new Promise(resolve => {
          ctrl.postMessage({
            type: 'fetch',
            id: 'bg-feth-id',
            resource: [ '/service_worker/hello-from-sw.txt' ],
            options: { title: 'Background Fetch' }
          });
          navigator.serviceWorker.onmessage = e => {
            resolve(e.data);
          };
        });
      };

      await controllerChangePromise;
      const data = await sendMessageToServiceWorker()

      return data;
    }
    </script>
  </head>
  <body>
  </body>
</html>