<!DOCTYPE html>
-<title>Service Worker: postMessage to Client</title>
+<title>Service Worker: postMessage to ServiceWorkerClient</title>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<script src="resources/test-helpers.js"></script>
<script>
-var t = async_test('postMessage from ServiceWorker to Client');
+var t = async_test('postMessage from ServiceWorker to ServiceWorkerClient');
t.step(function() {
var scope = 'resources/blank.html'
service_worker_unregister_and_register(
- t, 'resources/postmessage-to-client-worker.js', scope, onRegister);
-
- function onRegister(worker) {
- worker.addEventListener('statechange', t.step_func(function(event) {
- if (event.target.state == 'active')
- onActive();
- }));
- }
-
- function onActive() {
- with_iframe(scope, t.step_func(function(frame) {
- var w = frame.contentWindow;
- w.onmessage = t.step_func(onMessage);
- w.navigator.serviceWorker.controller.postMessage('ping');
- }));
- }
+ t, 'resources/postmessage-to-client-worker.js', scope)
+ .then(function(registration) {
+ return wait_for_update(t, registration);
+ })
+ .then(function(sw) {
+ return wait_for_state(t, sw, 'activated');
+ })
+ .then(function() { return with_iframe(scope); })
+ .then(function(frame) {
+ var w = frame.contentWindow;
+ w.onmessage = t.step_func(onMessage);
+ w.navigator.serviceWorker.controller.postMessage('ping');
+ })
+ .catch(unreached_rejection(t));
var result = [];
var expected = ['Sending message via clients'];
function onMessage(e) {
- var message = e.data;
- if (message === 'quit') {
- assert_array_equals(result, expected, 'Worker should post back expected messages.');
- service_worker_unregister_and_done(t, scope);
- } else {
- result.push(message);
- }
+ var message = e.data;
+ if (message === 'quit') {
+ assert_array_equals(result, expected,
+ 'Worker should post back expected messages.');
+ service_worker_unregister_and_done(t, scope);
+ } else {
+ result.push(message);
+ }
}
-});
+ });
</script>