serviceworker-message-event-historical.https.html (1774B)
1 <!DOCTYPE html> 2 <title>Service Worker: ServiceWorkerMessageEvent</title> 3 <script src="/resources/testharness.js"></script> 4 <script src="/resources/testharnessreport.js"></script> 5 <script src="resources/test-helpers.sub.js"></script> 6 <script> 7 8 promise_test(function(t) { 9 var scope = 'resources/blank.html'; 10 var url = 'resources/postmessage-to-client-worker.js'; 11 return service_worker_unregister_and_register(t, url, scope) 12 .then(function(r) { 13 t.add_cleanup(function() { 14 return service_worker_unregister(t, scope); 15 }); 16 17 return wait_for_state(t, r.installing, 'activated'); 18 }) 19 .then(function() { 20 return with_iframe(scope); 21 }) 22 .then(function(frame) { 23 var w = frame.contentWindow; 24 var worker = w.navigator.serviceWorker.controller; 25 assert_equals( 26 self.ServiceWorkerMessageEvent, undefined, 27 'ServiceWorkerMessageEvent should not be defined.'); 28 return new Promise(function(resolve) { 29 w.navigator.serviceWorker.onmessage = t.step_func(function(e) { 30 assert_true( 31 e instanceof w.MessageEvent, 32 'message events should use MessageEvent interface.'); 33 assert_true(e.source instanceof w.ServiceWorker); 34 assert_equals(e.type, 'message'); 35 assert_equals(e.source, worker, 36 'source should equal to the controller.'); 37 assert_equals(e.ports.length, 0); 38 resolve(); 39 }); 40 worker.postMessage('PING'); 41 }); 42 }); 43 }, 'Test MessageEvent supplants ServiceWorkerMessageEvent.'); 44 45 </script>