| OLD | NEW |
| 1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
| 2 <script src="../../resources/get-host-info.js?pipe=sub"></script> | 2 <script src="/common/get-host-info.sub.js"></script> |
| 3 <script src="test-helpers.js"></script> | 3 <script src="test-helpers.sub.js"></script> |
| 4 <script> | 4 <script> |
| 5 var SCOPE = './navigation-redirect-to-http.php'; | 5 var SCOPE = './redirect.py?Redirect=' + encodeURI('http://example.com'); |
| 6 var SCRIPT = 'navigation-redirect-to-http-worker.js'; | 6 var SCRIPT = 'navigation-redirect-to-http-worker.js'; |
| 7 var host_info = get_host_info(); | 7 var host_info = get_host_info(); |
| 8 | 8 |
| 9 navigator.serviceWorker.getRegistration(SCOPE) | 9 navigator.serviceWorker.getRegistration(SCOPE) |
| 10 .then(function(registration) { | 10 .then(function(registration) { |
| 11 if (registration) | 11 if (registration) |
| 12 return registration.unregister(); | 12 return registration.unregister(); |
| 13 }) | 13 }) |
| 14 .then(function() { | 14 .then(function() { |
| 15 return navigator.serviceWorker.register(SCRIPT, {scope: SCOPE}); | 15 return navigator.serviceWorker.register(SCRIPT, {scope: SCOPE}); |
| 16 }) | 16 }) |
| 17 .then(function(registration) { | 17 .then(function(registration) { |
| 18 return new Promise(function(resolve) { | 18 return new Promise(function(resolve) { |
| 19 registration.addEventListener('updatefound', function() { | 19 registration.addEventListener('updatefound', function() { |
| 20 resolve(registration.installing); | 20 resolve(registration.installing); |
| 21 }); | 21 }); |
| 22 }); | 22 }); |
| 23 }) | 23 }) |
| 24 .then(function(worker) { | 24 .then(function(worker) { |
| 25 worker.addEventListener('statechange', on_state_change); | 25 worker.addEventListener('statechange', on_state_change); |
| 26 }) | 26 }) |
| 27 .catch(function(reason) { | 27 .catch(function(reason) { |
| 28 window.parent.postMessage({results: 'FAILURE: ' + reason.message}, | 28 window.parent.postMessage({results: 'FAILURE: ' + reason.message}, |
| 29 host_info['HTTP_ORIGIN']); | 29 host_info['HTTPS_ORIGIN']); |
| 30 }); | 30 }); |
| 31 | 31 |
| 32 function on_state_change(event) { | 32 function on_state_change(event) { |
| 33 if (event.target.state != 'activated') | 33 if (event.target.state != 'activated') |
| 34 return; | 34 return; |
| 35 with_iframe(SCOPE, {auto_remove: false}) | 35 with_iframe(SCOPE, {auto_remove: false}) |
| 36 .then(function(frame) { | 36 .then(function(frame) { |
| 37 window.parent.postMessage( | 37 window.parent.postMessage( |
| 38 {results: frame.contentDocument.body.textContent}, | 38 {results: frame.contentDocument.body.textContent}, |
| 39 host_info['HTTP_ORIGIN']); | 39 host_info['HTTPS_ORIGIN']); |
| 40 }); | 40 }); |
| 41 } | 41 } |
| 42 | |
| 43 </script> | 42 </script> |
| OLD | NEW |