3 var scope = 'fetch-request-body-file-test';
4 var script = 'fetch-request-body-file-worker.js';
6 window.addEventListener('message', function(evt) {
11 function wait_for_update(registration) {
12 return new Promise(function(resolve) {
13 registration.addEventListener('updatefound', function() {
14 resolve(registration.installing);
19 function wait_for_activated(worker) {
20 return new Promise(function(resolve) {
21 worker.addEventListener('statechange', function() {
22 if (worker.state == 'activated') {
30 if (location.search == '?register') {
31 navigator.serviceWorker.register(script, {scope: scope})
32 .then(function(registration) {
33 return registration.unregister();
36 return navigator.serviceWorker.register(script, {scope: scope});
38 .then(wait_for_update)
39 .then(wait_for_activated)
40 .then(function(worker) {
41 port.postMessage({msg: 'registered'});
43 } else if (location.search == '?unregister') {
44 navigator.serviceWorker.register(script, {scope: scope})
45 .then(function(registration) {
46 return registration.unregister();
49 port.postMessage({msg: 'unregistered'});