<!doctype html>
<title>Test initialize MediaStreamTrackGenerator in a service worker</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src='/service-workers/service-worker/resources/test-helpers.sub.js'></script>
<script>
'use strict';

promise_test(async t => {
    const registration = await navigator.serviceWorker.register('service-worker.js');
    await wait_for_state(t, registration.installing, 'activated');
    const result = new Promise((resolve, reject) => {
        navigator.serviceWorker.addEventListener('message', (e) => {
            if (e.data.result === 'Failure') {
                reject('Failed with error ' + e.data.error);
            } else {
                resolve();
            }
        });
    });
    registration.active.postMessage('hello world');
    return result;
}, 'A service worker is able to initialize a MediaStreamTrackGenerator without crashing');
</script>