| 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     navigator.serviceWorker.unregister(scope).then( |  12     navigator.serviceWorker.unregister(scope).then( | 
|  13         doTest, |  13         doTest, | 
|  14         unreached_rejection(t, 'Unregister should not fail') |  14         unreached_rejection(t, 'Unregister should not fail') | 
|  15     ); |  15     ); | 
|  16  |  16  | 
|  17     function doTest() { |  17     function doTest() { | 
|  18         with_iframe(scope, t.step_func(onIframeLoad)); |  18         with_iframe(scope, t.step_func(onIframeLoad)); | 
|  19     } |  19     } | 
|  20  |  20  | 
|  21     function onIframeLoad(frame) { |  21     function onIframeLoad(frame) { | 
|  22         var w = frame.contentWindow; |  22         var w = frame.contentWindow; | 
|  23  |  | 
|  24         function onActive(event) { |  | 
|  25            assert_equals(w.navigator.serviceWorker.controller, null, |  | 
|  26                          'controller should be null until the document is reload
    ed'); |  | 
|  27            reloaded = true; |  | 
|  28            w.location.reload(); |  | 
|  29         } |  | 
|  30  |  | 
|  31         function onRegister(worker) { |  | 
|  32             worker.addEventListener('statechange', t.step_func(function(event) { |  | 
|  33                 if (event.target.state == 'activated') |  | 
|  34                     onActive(); |  | 
|  35             })); |  | 
|  36         } |  | 
|  37  |  | 
|  38         if (reloaded) { |  23         if (reloaded) { | 
|  39             assert_true(w.navigator.serviceWorker.controller instanceof w.Servic
    eWorker, |  24             assert_true(w.navigator.serviceWorker.controller instanceof w.Servic
    eWorker, | 
|  40                         'controller should be a ServiceWorker object upon reload
    '); |  25                         'controller should be a ServiceWorker object upon reload
    '); | 
|  41             service_worker_unregister_and_done(t, scope); |  26             service_worker_unregister_and_done(t, scope); | 
|  42             return; |  27             return; | 
|  43         } |  28         } | 
|  44  |  29  | 
|  45         w.navigator.serviceWorker.register( |  30         w.navigator.serviceWorker.register('worker-no-op.js', | 
|  46             'worker-no-op.js', {scope: 'blank.html'} |  31                                            {scope: 'blank.html'}) | 
|  47         ).then( |  32         .then(function(registration) { | 
|  48             t.step_func(onRegister), |  33             return wait_for_update(t, registration); | 
|  49             unreached_rejection(t, 'Registration should succeed, but failed') |  34           }) | 
|  50         ); |  35         .then(function(worker) { | 
 |  36             return wait_for_state(t, worker, 'activated'); | 
 |  37           }) | 
 |  38         .then(function() { | 
 |  39             assert_equals(w.navigator.serviceWorker.controller, null, | 
 |  40                           'controller should be null until the document is reloa
    ded'); | 
 |  41             reloaded = true; | 
 |  42             w.location.reload(); | 
 |  43           }) | 
 |  44         .catch(unreached_rejection(t)); | 
|  51     } |  45     } | 
|  52 }); |  46 }); | 
|  53 </script> |  47 </script> | 
|  54 </body> |  48 </body> | 
| OLD | NEW |