blob: 44f3e2e8e9bdbe8e756ecd94c758bc752a5fc1a3 [file] [log] [blame]
// TODO(nhiroki): stop using global states because service workers can be killed
// at any point. Instead, we could post a message to the page on each event via
// Client object (http://crbug.com/558244).
var results = [];
function stringify(worker) {
return worker ? worker.scriptURL : 'empty';
}
function record(event_name) {
results.push(event_name);
results.push(' installing: ' + stringify(self.registration.installing));
results.push(' waiting: ' + stringify(self.registration.waiting));
results.push(' active: ' + stringify(self.registration.active));
}
record('evaluate');
self.registration.addEventListener('updatefound', function() {
record('updatefound');
var worker = self.registration.installing;
self.registration.installing.addEventListener('statechange', function() {
record('statechange(' + worker.state + ')');
});
});
self.addEventListener('install', function(e) { record('install'); });
self.addEventListener('activate', function(e) { record('activate'); });
self.addEventListener('message', function(e) {
e.data.port.postMessage(results);
});