blob: 489b4d9afce8ec2765ff01e33cf9b4a67982481f [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<script src='../resources/runner.js'></script>
</head>
<body>
<script>
let isDone = false;
function testDone() {
isDone = true;
}
function waitForWorkerActive(worker) {
return new Promise((resolve) => {
worker.addEventListener('statechange', () => {
if (worker.state == 'activated')
resolve();
});
});
}
async function runTest() {
const script =
`/service_worker/resources/changing-service-worker.generated.js`;
const scope = `/service_worker/resources/`;
const registration = await navigator.serviceWorker.register(
script, { scope: scope });
await waitForWorkerActive(registration.installing);
while (!isDone) {
const registrations = await navigator.serviceWorker.getRegistrations();
const startTime = performance.now();
await registrations[0].update();
PerfTestRunner.measureValueAsync(performance.now() - startTime);
}
return;
}
PerfTestRunner.startMeasureValuesAsync({
description: 'Measure performance of update service worker.',
unit: 'ms',
run: runTest,
done: testDone,
iterationCount: 30
});
</script>
</body>
</html>