diff --git a/testing/web-platform/mozilla/meta/service-workers/service-worker/waiting.https.html.ini b/testing/web-platform/mozilla/meta/service-workers/service-worker/waiting.https.html.ini deleted file mode 100644 index 5e5446fc0b9c..000000000000 --- a/testing/web-platform/mozilla/meta/service-workers/service-worker/waiting.https.html.ini +++ /dev/null @@ -1,6 +0,0 @@ -[waiting.https.html] - type: testharness - expected: TIMEOUT - [waiting is set] - expected: TIMEOUT - diff --git a/testing/web-platform/mozilla/tests/service-workers/service-worker/waiting.https.html b/testing/web-platform/mozilla/tests/service-workers/service-worker/waiting.https.html index d96a1de8d08d..eff9c80a4f65 100644 --- a/testing/web-platform/mozilla/tests/service-workers/service-worker/waiting.https.html +++ b/testing/web-platform/mozilla/tests/service-workers/service-worker/waiting.https.html @@ -26,16 +26,19 @@ async_test(function(t) { .then(function() { var controller = frame.contentWindow.navigator.serviceWorker.controller; assert_equals(controller, null); - assert_equals(registration.active, null); - assert_equals(registration.waiting.scriptURL, normalizeURL(url)); + // Nothing in the spec prohibits a worker from going to active + // immediately. + // Step 26 of the [[Install]] algorithm + // "If registration's waiting worker waitingWorker is not null and + // waitingWorker's skip waiting flag is not set, invoke Activate + // algorithm, or its equivalent, with registration as its argument." + var w = registration.waiting || registration.active; + assert_equals(w.scriptURL, normalizeURL(url)); assert_equals(registration.installing, null); - - // FIXME: Add a test for a frame created after installation. - // Should the existing frame ("frame") block activation? }) .then(function() { frame.remove(); return service_worker_unregister_and_done(t, scope); }); -}, 'waiting is set'); +}, 'waiting or active is set');