blob: 9c599d290b6efc8d6b5166267fe639f6b3a192b4 [file] [log] [blame]
(function() {
class ServiceWorkerHelper {
constructor(dp, session) {
this._dp = dp;
this._session = session;
}
async installSWAndWaitForActivated(swUrl) {
await this._session.evaluateAsync(`
(async function() {
const reg = await navigator.serviceWorker.register('${swUrl}');
const worker = reg.installing || reg.waiting || reg.active;
if (worker.state === 'activated')
return;
return new Promise(resolve => {
worker.addEventListener('statechange', () => {
if (worker.state === 'activated')
resolve();
});
});
})()`);
}
};
return (dp, session) => {
return new ServiceWorkerHelper(dp, session);
};
})()