blob: 13cae88d800d862e73a1e89da574b4db6e925d3c [file] [log] [blame]
importScripts('./extendable-message-event-utils.js');
self.addEventListener('message', function(event) {
switch (event.data.type) {
case 'start':
self.registration.active.postMessage(
{type: '1st', client_id: event.source.id});
break;
case '1st':
// 1st loopback message via ServiceWorkerRegistration.active.
var results = {
trial: 1,
event: ExtendableMessageEventUtils.serialize(event)
};
var client_id = event.data.client_id;
event.source.postMessage({type: '2nd', client_id: client_id});
event.waitUntil(clients.get(client_id)
.then(function(client) {
client.postMessage({type: 'record', results: results});
}));
break;
case '2nd':
// 2nd loopback message via ExtendableMessageEvent.source.
var results = {
trial: 2,
event: ExtendableMessageEventUtils.serialize(event)
};
var client_id = event.data.client_id;
event.waitUntil(clients.get(client_id)
.then(function(client) {
client.postMessage({type: 'record', results: results});
client.postMessage({type: 'finish'});
}));
break;
}
});