OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <title>Service Worker: Controller on reload</title> | 2 <title>Service Worker: Controller on reload</title> |
3 <script src="../resources/testharness.js"></script> | 3 <script src="../resources/testharness.js"></script> |
4 <script src="../resources/testharnessreport.js"></script> | 4 <script src="../resources/testharnessreport.js"></script> |
5 <script src="resources/test-helpers.js"></script> | 5 <script src="resources/test-helpers.js"></script> |
6 <body> | 6 <body> |
7 <script> | 7 <script> |
8 var t = async_test('controller is set upon reload after registration'); | 8 var t = async_test('controller is set upon reload after registration'); |
9 t.step(function() { | 9 t.step(function() { |
10 var reloaded = false; | 10 var reloaded = false; |
11 var scope = 'resources/blank.html'; | 11 var scope = 'resources/blank.html'; |
12 service_worker_unregister(t, scope).then(doTest); | 12 service_worker_unregister(t, scope).then(doTest); |
13 | 13 |
14 function doTest() { | 14 function doTest() { |
15 with_iframe(scope, t.step_func(onIframeLoad)); | 15 with_iframe(scope, t.step_func(onIframeLoad)); |
16 } | 16 } |
17 | 17 |
18 function onIframeLoad(frame) { | 18 function onIframeLoad(frame) { |
19 var w = frame.contentWindow; | 19 var w = frame.contentWindow; |
20 if (reloaded) { | 20 if (reloaded) { |
21 assert_true(w.navigator.serviceWorker.controller instanceof w.Servic
eWorker, | 21 assert_true(w.navigator.serviceWorker.controller instanceof w.Servic
eWorker, |
22 'controller should be a ServiceWorker object upon reload
'); | 22 'controller should be a ServiceWorker object upon reload
'); |
23 service_worker_unregister_and_done(t, scope); | 23 service_worker_unregister_and_done(t, scope); |
24 return; | 24 return; |
25 } | 25 } |
26 | 26 |
27 w.navigator.serviceWorker.register('empty-worker.js', | 27 w.navigator.serviceWorker.register('resources/empty-worker.js', |
28 {scope: 'blank.html'}) | 28 {scope: 'resources/blank.html'}) |
29 .then(function(registration) { | 29 .then(function(registration) { |
30 return wait_for_state(t, registration.installing, 'activated'); | 30 return wait_for_state(t, registration.installing, 'activated'); |
31 }) | 31 }) |
32 .then(function() { | 32 .then(function() { |
33 assert_equals(w.navigator.serviceWorker.controller, null, | 33 assert_equals(w.navigator.serviceWorker.controller, null, |
34 'controller should be null until the document is reloa
ded'); | 34 'controller should be null until the document is reloa
ded'); |
35 reloaded = true; | 35 reloaded = true; |
36 w.location.reload(); | 36 w.location.reload(); |
37 }) | 37 }) |
38 .catch(unreached_rejection(t)); | 38 .catch(unreached_rejection(t)); |
39 } | 39 } |
40 }); | 40 }); |
41 </script> | 41 </script> |
42 </body> | 42 </body> |
OLD | NEW |