aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosh Matthews <josh@joshmatthews.net>2025-04-01 04:13:02 -0400
committerGitHub <noreply@github.com>2025-04-01 08:13:02 +0000
commitfcef1dff9d31e8b2bc28417150c117a268dd450a (patch)
tree48a569bf66357fa7bbda815b9609b18385b01239
parentbe38c5478fb0dc20081b29a9888ec4fb55a5b909 (diff)
downloadservo-fcef1dff9d31e8b2bc28417150c117a268dd450a.tar.gz
servo-fcef1dff9d31e8b2bc28417150c117a268dd450a.zip
Fix null realm assertion when activating a service worker (#36256)
Ensure there is an active realm when dispatching the `activation` DOM event to the ServiceWorker global. Testing: Existing WPT coverage. Fixes: #36114 Fixes: #36235 Fixes: #36231 Signed-off-by: Josh Matthews <josh@joshmatthews.net>
-rw-r--r--components/script/dom/serviceworkerglobalscope.rs6
-rw-r--r--tests/wpt/meta/fetch/api/abort/serviceworker-intercepted.https.html.ini26
-rw-r--r--tests/wpt/meta/fetch/fetch-later/quota/same-origin-iframe/oversized-payload.tentative.https.window.js.ini1
-rw-r--r--tests/wpt/meta/fetch/metadata/generated/css-font-face.https.sub.tentative.html.ini3
-rw-r--r--tests/wpt/meta/fetch/private-network-access/service-worker-background-fetch.tentative.https.window.js.ini19
-rw-r--r--tests/wpt/meta/fetch/private-network-access/service-worker-fetch-document-treat-as-public.tentative.https.window.js.ini2
-rw-r--r--tests/wpt/meta/fetch/private-network-access/service-worker-fetch-document.tentative.https.window.js.ini2
-rw-r--r--tests/wpt/meta/fetch/private-network-access/service-worker-fetch.tentative.https.window.js.ini4
-rw-r--r--tests/wpt/meta/fetch/private-network-access/service-worker-update.tentative.https.window.js.ini2
-rw-r--r--tests/wpt/meta/fetch/private-network-access/service-worker.tentative.https.window.js.ini7
-rw-r--r--tests/wpt/meta/fetch/security/dangling-markup/dangling-markup-mitigation-allowed-apis.tentative.https.html.ini16
-rw-r--r--tests/wpt/meta/fetch/security/dangling-markup/dangling-markup-mitigation.tentative.https.html.ini4
-rw-r--r--tests/wpt/meta/fetch/stale-while-revalidate/fetch-sw.https.html.ini4
-rw-r--r--tests/wpt/meta/html/anonymous-iframe/serviceworker-partitioning.tentative.https.window.js.ini4
-rw-r--r--tests/wpt/meta/html/anonymous-iframe/worker-cookies.tentative.https.window.js.ini6
-rw-r--r--tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html.ini3
-rw-r--r--tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-cross-origin.sub.window.js.ini3
-rw-r--r--tests/wpt/meta/html/canvas/element/canvas-host/2d.canvas.host.size.large.html.ini2
-rw-r--r--tests/wpt/meta/html/infrastructure/urls/base-url/document-base-url-window-initiator-is-not-opener.https.window.js.ini1
-rw-r--r--tests/wpt/meta/html/interaction/focus/the-autofocus-attribute/document-with-fragment-valid.html.ini3
-rw-r--r--tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini2
-rw-r--r--tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html.ini1
-rw-r--r--tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini2
-rw-r--r--tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini2
-rw-r--r--tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini3
-rw-r--r--tests/wpt/meta/service-workers/service-worker/ServiceWorkerGlobalScope/error-message-event.https.html.ini4
-rw-r--r--tests/wpt/meta/service-workers/service-worker/ServiceWorkerGlobalScope/message-event-ports.https.html.ini4
-rw-r--r--tests/wpt/meta/service-workers/service-worker/claim-affect-other-registration.https.html.ini4
-rw-r--r--tests/wpt/meta/service-workers/service-worker/claim-not-using-registration.https.html.ini7
-rw-r--r--tests/wpt/meta/service-workers/service-worker/claim-with-redirect.https.html.ini2
-rw-r--r--tests/wpt/meta/service-workers/service-worker/controlled-dedicatedworker-postMessage.https.html.ini10
-rw-r--r--tests/wpt/meta/service-workers/service-worker/controlled-iframe-postMessage.https.html.ini13
-rw-r--r--tests/wpt/meta/service-workers/service-worker/fetch-event-within-sw.https.html.ini7
-rw-r--r--tests/wpt/meta/service-workers/service-worker/immutable-prototype-serviceworker.https.html.ini4
-rw-r--r--tests/wpt/meta/service-workers/service-worker/multi-globals/url-parsing.https.html.ini10
-rw-r--r--tests/wpt/meta/service-workers/service-worker/navigation-sets-cookie.https.html.ini49
-rw-r--r--tests/wpt/meta/service-workers/service-worker/register-wait-forever-in-install-worker.https.html.ini2
-rw-r--r--tests/wpt/meta/service-workers/service-worker/registration-mime-types.https.html.ini108
-rw-r--r--tests/wpt/meta/service-workers/service-worker/registration-scope.https.html.ini15
-rw-r--r--tests/wpt/meta/service-workers/service-worker/registration-script-module.https.html.ini30
-rw-r--r--tests/wpt/meta/service-workers/service-worker/registration-script-url.https.html.ini6
-rw-r--r--tests/wpt/meta/service-workers/service-worker/registration-script.https.html.ini27
-rw-r--r--tests/wpt/meta/service-workers/service-worker/registration-security-error.https.html.ini25
-rw-r--r--tests/wpt/meta/service-workers/service-worker/same-site-cookies.https.html.ini199
-rw-r--r--tests/wpt/meta/service-workers/service-worker/svg-target-reftest.https.html.ini2
-rw-r--r--tests/wpt/meta/service-workers/service-worker/unregister.https.html.ini1
-rw-r--r--tests/wpt/meta/service-workers/service-worker/update-result.https.html.ini4
-rw-r--r--tests/wpt/meta/service-workers/service-worker/worker-client-id.https.html.ini4
-rw-r--r--tests/wpt/meta/webmessaging/broadcastchannel/service-worker.https.html.ini4
-rw-r--r--tests/wpt/mozilla/meta/mozilla/service-workers/service-worker-registration.https.html.ini22
50 files changed, 577 insertions, 114 deletions
diff --git a/components/script/dom/serviceworkerglobalscope.rs b/components/script/dom/serviceworkerglobalscope.rs
index f52582b99ee..a158363f9f2 100644
--- a/components/script/dom/serviceworkerglobalscope.rs
+++ b/components/script/dom/serviceworkerglobalscope.rs
@@ -376,11 +376,11 @@ impl ServiceWorkerGlobalScope {
{
// TODO: use AutoWorkerReset as in dedicated worker?
- let _ac = enter_realm(scope);
+ let realm = enter_realm(scope);
scope.execute_script(DOMString::from(source), CanGc::note());
+ global.dispatch_activate(CanGc::note(), InRealm::entered(&realm));
}
- global.dispatch_activate(CanGc::note());
let reporter_name = format!("service-worker-reporter-{}", random::<u64>());
scope
.upcast::<GlobalScope>()
@@ -476,7 +476,7 @@ impl ServiceWorkerGlobalScope {
ScriptEventLoopSender::ServiceWorker(self.own_sender.clone())
}
- fn dispatch_activate(&self, can_gc: CanGc) {
+ fn dispatch_activate(&self, can_gc: CanGc, _realm: InRealm) {
let event = ExtendableEvent::new(self, atom!("activate"), false, false, can_gc);
let event = (*event).upcast::<Event>();
self.upcast::<EventTarget>().dispatch_event(event, can_gc);
diff --git a/tests/wpt/meta/fetch/api/abort/serviceworker-intercepted.https.html.ini b/tests/wpt/meta/fetch/api/abort/serviceworker-intercepted.https.html.ini
index cfd92be0f1c..a7aa89fab39 100644
--- a/tests/wpt/meta/fetch/api/abort/serviceworker-intercepted.https.html.ini
+++ b/tests/wpt/meta/fetch/api/abort/serviceworker-intercepted.https.html.ini
@@ -1,37 +1,37 @@
[serviceworker-intercepted.https.html]
- expected: CRASH
+ expected: TIMEOUT
[Already aborted request does not land in service worker]
- expected: FAIL
+ expected: TIMEOUT
[response.arrayBuffer() rejects if already aborted]
- expected: FAIL
+ expected: NOTRUN
[response.blob() rejects if already aborted]
- expected: FAIL
+ expected: NOTRUN
[response.formData() rejects if already aborted]
- expected: FAIL
+ expected: NOTRUN
[response.json() rejects if already aborted]
- expected: FAIL
+ expected: NOTRUN
[response.text() rejects if already aborted]
- expected: FAIL
+ expected: NOTRUN
[Stream errors once aborted.]
- expected: FAIL
+ expected: NOTRUN
[fetch() rejects with abort reason]
- expected: FAIL
+ expected: NOTRUN
[fetch() response body has abort reason]
- expected: FAIL
+ expected: NOTRUN
[Service Worker can observe the fetch abort and associated abort reason]
- expected: FAIL
+ expected: NOTRUN
[Abort reason serialization happens on abort]
- expected: FAIL
+ expected: NOTRUN
[response.bytes() rejects if already aborted]
- expected: FAIL
+ expected: NOTRUN
diff --git a/tests/wpt/meta/fetch/fetch-later/quota/same-origin-iframe/oversized-payload.tentative.https.window.js.ini b/tests/wpt/meta/fetch/fetch-later/quota/same-origin-iframe/oversized-payload.tentative.https.window.js.ini
index 381cbb7092d..967a5e13445 100644
--- a/tests/wpt/meta/fetch/fetch-later/quota/same-origin-iframe/oversized-payload.tentative.https.window.js.ini
+++ b/tests/wpt/meta/fetch/fetch-later/quota/same-origin-iframe/oversized-payload.tentative.https.window.js.ini
@@ -1,4 +1,5 @@
[oversized-payload.tentative.https.window.html]
+ expected: ERROR
[fetchLater() does not accept payload[size=65537\] exceeding per-origin quota in a POST request body of String in same-origin iframe.]
expected: FAIL
diff --git a/tests/wpt/meta/fetch/metadata/generated/css-font-face.https.sub.tentative.html.ini b/tests/wpt/meta/fetch/metadata/generated/css-font-face.https.sub.tentative.html.ini
index 12a2314e747..a02fcf871ab 100644
--- a/tests/wpt/meta/fetch/metadata/generated/css-font-face.https.sub.tentative.html.ini
+++ b/tests/wpt/meta/fetch/metadata/generated/css-font-face.https.sub.tentative.html.ini
@@ -52,6 +52,3 @@
[sec-fetch-storage-access - Cross-site]
expected: FAIL
-
- [sec-fetch-user]
- expected: FAIL
diff --git a/tests/wpt/meta/fetch/private-network-access/service-worker-background-fetch.tentative.https.window.js.ini b/tests/wpt/meta/fetch/private-network-access/service-worker-background-fetch.tentative.https.window.js.ini
index 06dbef3d1b6..2005387aadd 100644
--- a/tests/wpt/meta/fetch/private-network-access/service-worker-background-fetch.tentative.https.window.js.ini
+++ b/tests/wpt/meta/fetch/private-network-access/service-worker-background-fetch.tentative.https.window.js.ini
@@ -1,28 +1,27 @@
[service-worker-background-fetch.tentative.https.window.html]
- expected: CRASH
[local to local: success.]
- expected: TIMEOUT
+ expected: FAIL
[private to local: success.]
- expected: NOTRUN
+ expected: FAIL
[private to private: success.]
- expected: NOTRUN
+ expected: FAIL
[public to local: success.]
- expected: NOTRUN
+ expected: FAIL
[public to private: success.]
- expected: NOTRUN
+ expected: FAIL
[public to public: success.]
- expected: NOTRUN
+ expected: FAIL
[treat-as-public to local: success.]
- expected: NOTRUN
+ expected: FAIL
[treat-as-public to private: success.]
- expected: NOTRUN
+ expected: FAIL
[treat-as-public to public: success.]
- expected: NOTRUN
+ expected: FAIL
diff --git a/tests/wpt/meta/fetch/private-network-access/service-worker-fetch-document-treat-as-public.tentative.https.window.js.ini b/tests/wpt/meta/fetch/private-network-access/service-worker-fetch-document-treat-as-public.tentative.https.window.js.ini
index f50782e3e4f..f679ad1145e 100644
--- a/tests/wpt/meta/fetch/private-network-access/service-worker-fetch-document-treat-as-public.tentative.https.window.js.ini
+++ b/tests/wpt/meta/fetch/private-network-access/service-worker-fetch-document-treat-as-public.tentative.https.window.js.ini
@@ -1,5 +1,5 @@
[service-worker-fetch-document-treat-as-public.tentative.https.window.html]
- expected: CRASH
+ expected: TIMEOUT
[treat-as-public to local: failed preflight.]
expected: TIMEOUT
diff --git a/tests/wpt/meta/fetch/private-network-access/service-worker-fetch-document.tentative.https.window.js.ini b/tests/wpt/meta/fetch/private-network-access/service-worker-fetch-document.tentative.https.window.js.ini
index 850560910ba..daa4ff7a6e7 100644
--- a/tests/wpt/meta/fetch/private-network-access/service-worker-fetch-document.tentative.https.window.js.ini
+++ b/tests/wpt/meta/fetch/private-network-access/service-worker-fetch-document.tentative.https.window.js.ini
@@ -1,5 +1,5 @@
[service-worker-fetch-document.tentative.https.window.html]
- expected: CRASH
+ expected: TIMEOUT
[local to local: success.]
expected: TIMEOUT
diff --git a/tests/wpt/meta/fetch/private-network-access/service-worker-fetch.tentative.https.window.js.ini b/tests/wpt/meta/fetch/private-network-access/service-worker-fetch.tentative.https.window.js.ini
index fd0183c6625..9b3f5ac9503 100644
--- a/tests/wpt/meta/fetch/private-network-access/service-worker-fetch.tentative.https.window.js.ini
+++ b/tests/wpt/meta/fetch/private-network-access/service-worker-fetch.tentative.https.window.js.ini
@@ -1,5 +1,5 @@
[service-worker-fetch.tentative.https.window.html?9-last]
- expected: CRASH
+ expected: TIMEOUT
[public to public: success.]
expected: TIMEOUT
@@ -23,7 +23,7 @@
[service-worker-fetch.tentative.https.window.html?1-8]
- expected: CRASH
+ expected: TIMEOUT
[local to local: success.]
expected: TIMEOUT
diff --git a/tests/wpt/meta/fetch/private-network-access/service-worker-update.tentative.https.window.js.ini b/tests/wpt/meta/fetch/private-network-access/service-worker-update.tentative.https.window.js.ini
index da7209bb5ec..41f932a66c9 100644
--- a/tests/wpt/meta/fetch/private-network-access/service-worker-update.tentative.https.window.js.ini
+++ b/tests/wpt/meta/fetch/private-network-access/service-worker-update.tentative.https.window.js.ini
@@ -1,5 +1,5 @@
[service-worker-update.tentative.https.window.html]
- expected: CRASH
+ expected: TIMEOUT
[update public to local: success.]
expected: TIMEOUT
diff --git a/tests/wpt/meta/fetch/private-network-access/service-worker.tentative.https.window.js.ini b/tests/wpt/meta/fetch/private-network-access/service-worker.tentative.https.window.js.ini
index d31fdb527b2..56e39867a3e 100644
--- a/tests/wpt/meta/fetch/private-network-access/service-worker.tentative.https.window.js.ini
+++ b/tests/wpt/meta/fetch/private-network-access/service-worker.tentative.https.window.js.ini
@@ -1,10 +1,9 @@
[service-worker.tentative.https.window.html]
- expected: CRASH
[treat-as-public to local: success.]
- expected: TIMEOUT
+ expected: FAIL
[treat-as-public to private: success.]
- expected: NOTRUN
+ expected: FAIL
[public to public: success.]
- expected: NOTRUN
+ expected: FAIL
diff --git a/tests/wpt/meta/fetch/security/dangling-markup/dangling-markup-mitigation-allowed-apis.tentative.https.html.ini b/tests/wpt/meta/fetch/security/dangling-markup/dangling-markup-mitigation-allowed-apis.tentative.https.html.ini
index c2d54f42438..c3f91472029 100644
--- a/tests/wpt/meta/fetch/security/dangling-markup/dangling-markup-mitigation-allowed-apis.tentative.https.html.ini
+++ b/tests/wpt/meta/fetch/security/dangling-markup/dangling-markup-mitigation-allowed-apis.tentative.https.html.ini
@@ -1,4 +1,18 @@
[dangling-markup-mitigation-allowed-apis.tentative.https.html]
- expected: CRASH
[Does not block window.open(`resources/empty.html?\n<`,'_self')]
expected: FAIL
+
+ [Does not block xhr]
+ expected: FAIL
+
+ [Does not block EventSource]
+ expected: FAIL
+
+ [Does not block fetch]
+ expected: FAIL
+
+ [Does not block Worker]
+ expected: FAIL
+
+ [Does not block importScripts]
+ expected: FAIL
diff --git a/tests/wpt/meta/fetch/security/dangling-markup/dangling-markup-mitigation.tentative.https.html.ini b/tests/wpt/meta/fetch/security/dangling-markup/dangling-markup-mitigation.tentative.https.html.ini
index 35dfcc3edd0..84e1a1eb333 100644
--- a/tests/wpt/meta/fetch/security/dangling-markup/dangling-markup-mitigation.tentative.https.html.ini
+++ b/tests/wpt/meta/fetch/security/dangling-markup/dangling-markup-mitigation.tentative.https.html.ini
@@ -1,4 +1,4 @@
[dangling-markup-mitigation.tentative.https.html]
- expected: CRASH
+ expected: ERROR
[Only blocks dangling markup requests]
- expected: FAIL
+ expected: TIMEOUT
diff --git a/tests/wpt/meta/fetch/stale-while-revalidate/fetch-sw.https.html.ini b/tests/wpt/meta/fetch/stale-while-revalidate/fetch-sw.https.html.ini
index f58549a20e7..936c3ab00fa 100644
--- a/tests/wpt/meta/fetch/stale-while-revalidate/fetch-sw.https.html.ini
+++ b/tests/wpt/meta/fetch/stale-while-revalidate/fetch-sw.https.html.ini
@@ -1,4 +1,4 @@
[fetch-sw.https.html]
- expected: CRASH
+ expected: TIMEOUT
[Second fetch returns same response]
- expected: FAIL
+ expected: TIMEOUT
diff --git a/tests/wpt/meta/html/anonymous-iframe/serviceworker-partitioning.tentative.https.window.js.ini b/tests/wpt/meta/html/anonymous-iframe/serviceworker-partitioning.tentative.https.window.js.ini
index badcafe356d..23cc60cec8d 100644
--- a/tests/wpt/meta/html/anonymous-iframe/serviceworker-partitioning.tentative.https.window.js.ini
+++ b/tests/wpt/meta/html/anonymous-iframe/serviceworker-partitioning.tentative.https.window.js.ini
@@ -1,7 +1,7 @@
[serviceworker-partitioning.tentative.https.window.html]
- expected: CRASH
+ expected: TIMEOUT
[Anonymous iframes get partitioned service workers.]
expected: FAIL
[credentialless iframes get partitioned service workers.]
- expected: FAIL
+ expected: TIMEOUT
diff --git a/tests/wpt/meta/html/anonymous-iframe/worker-cookies.tentative.https.window.js.ini b/tests/wpt/meta/html/anonymous-iframe/worker-cookies.tentative.https.window.js.ini
index f95ef33cb32..fdd0e6988b3 100644
--- a/tests/wpt/meta/html/anonymous-iframe/worker-cookies.tentative.https.window.js.ini
+++ b/tests/wpt/meta/html/anonymous-iframe/worker-cookies.tentative.https.window.js.ini
@@ -13,9 +13,5 @@
[worker-cookies.tentative.https.window.html?worker=service_worker]
- expected: CRASH
- [Worker spawned from normal iframe can access global cookies]
- expected: TIMEOUT
-
[Worker spawned from credentialless iframe can't access global cookies]
- expected: NOTRUN
+ expected: FAIL
diff --git a/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html.ini b/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html.ini
index 5f9a07f92f0..277436ffad2 100644
--- a/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html.ini
+++ b/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html.ini
@@ -1,6 +1,3 @@
[iframe-src-aboutblank-navigate-immediately.html]
[Navigating to a different document with window.open]
expected: FAIL
-
- [Navigating to a different document with form submission]
- expected: FAIL
diff --git a/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-cross-origin.sub.window.js.ini b/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-cross-origin.sub.window.js.ini
deleted file mode 100644
index 4ecd6d9f753..00000000000
--- a/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-cross-origin.sub.window.js.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[navigation-unload-cross-origin.sub.window.html]
- [Cross-origin navigation started from unload handler must be ignored]
- expected: FAIL
diff --git a/tests/wpt/meta/html/canvas/element/canvas-host/2d.canvas.host.size.large.html.ini b/tests/wpt/meta/html/canvas/element/canvas-host/2d.canvas.host.size.large.html.ini
deleted file mode 100644
index f6455f9bd76..00000000000
--- a/tests/wpt/meta/html/canvas/element/canvas-host/2d.canvas.host.size.large.html.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[2d.canvas.host.size.large.html]
- expected: CRASH
diff --git a/tests/wpt/meta/html/infrastructure/urls/base-url/document-base-url-window-initiator-is-not-opener.https.window.js.ini b/tests/wpt/meta/html/infrastructure/urls/base-url/document-base-url-window-initiator-is-not-opener.https.window.js.ini
index 2ef0896e3b3..8b8af2b9c2e 100644
--- a/tests/wpt/meta/html/infrastructure/urls/base-url/document-base-url-window-initiator-is-not-opener.https.window.js.ini
+++ b/tests/wpt/meta/html/infrastructure/urls/base-url/document-base-url-window-initiator-is-not-opener.https.window.js.ini
@@ -1,4 +1,3 @@
[document-base-url-window-initiator-is-not-opener.https.window.html]
- expected: TIMEOUT
[window.open() gets base url from initiator not opener.]
expected: [FAIL, PASS, TIMEOUT]
diff --git a/tests/wpt/meta/html/interaction/focus/the-autofocus-attribute/document-with-fragment-valid.html.ini b/tests/wpt/meta/html/interaction/focus/the-autofocus-attribute/document-with-fragment-valid.html.ini
deleted file mode 100644
index b0c997e92a8..00000000000
--- a/tests/wpt/meta/html/interaction/focus/the-autofocus-attribute/document-with-fragment-valid.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[document-with-fragment-valid.html]
- [Autofocus elements in top-level browsing context's documents with URL fragments should be skipped.]
- expected: FAIL
diff --git a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini
index d7d0d3ef89d..24903b5f66f 100644
--- a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini
+++ b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini
@@ -1,4 +1,4 @@
[iframe_sandbox_popups_escaping-1.html]
expected: TIMEOUT
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
- expected: FAIL
+ expected: TIMEOUT
diff --git a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html.ini b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html.ini
index b83d68ddd33..26704422bbe 100644
--- a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html.ini
+++ b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html.ini
@@ -1,3 +1,4 @@
[iframe_sandbox_popups_escaping-2.html]
+ expected: TIMEOUT
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
expected: TIMEOUT
diff --git a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini
index 7da2bc5ac80..ef88bb2e2fd 100644
--- a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini
+++ b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini
@@ -1,4 +1,4 @@
[iframe_sandbox_popups_escaping-3.html]
expected: TIMEOUT
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
- expected: TIMEOUT
+ expected: FAIL
diff --git a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini
index e8872b3585b..96d866bf3cc 100644
--- a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini
+++ b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini
@@ -1,4 +1,4 @@
[iframe_sandbox_popups_nonescaping-1.html]
expected: TIMEOUT
[Check that popups from a sandboxed iframe do not escape the sandbox]
- expected: NOTRUN
+ expected: FAIL
diff --git a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini
index ff6467094b8..d5fd800f09d 100644
--- a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini
+++ b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini
@@ -1,3 +1,4 @@
[iframe_sandbox_popups_nonescaping-3.html]
+ expected: TIMEOUT
[Check that popups from a sandboxed iframe do not escape the sandbox]
- expected: FAIL
+ expected: NOTRUN
diff --git a/tests/wpt/meta/service-workers/service-worker/ServiceWorkerGlobalScope/error-message-event.https.html.ini b/tests/wpt/meta/service-workers/service-worker/ServiceWorkerGlobalScope/error-message-event.https.html.ini
index b3d43d5812a..1ce8e090a3c 100644
--- a/tests/wpt/meta/service-workers/service-worker/ServiceWorkerGlobalScope/error-message-event.https.html.ini
+++ b/tests/wpt/meta/service-workers/service-worker/ServiceWorkerGlobalScope/error-message-event.https.html.ini
@@ -1,2 +1,4 @@
[error-message-event.https.html]
- expected: CRASH
+ expected: TIMEOUT
+ [Verify error event is received]
+ expected: TIMEOUT
diff --git a/tests/wpt/meta/service-workers/service-worker/ServiceWorkerGlobalScope/message-event-ports.https.html.ini b/tests/wpt/meta/service-workers/service-worker/ServiceWorkerGlobalScope/message-event-ports.https.html.ini
index 7e5ae3c3453..2ecf2de6c18 100644
--- a/tests/wpt/meta/service-workers/service-worker/ServiceWorkerGlobalScope/message-event-ports.https.html.ini
+++ b/tests/wpt/meta/service-workers/service-worker/ServiceWorkerGlobalScope/message-event-ports.https.html.ini
@@ -1,2 +1,4 @@
[message-event-ports.https.html]
- expected: CRASH
+ expected: TIMEOUT
+ [Verify MessageEvent.ports getter returns the same object]
+ expected: TIMEOUT
diff --git a/tests/wpt/meta/service-workers/service-worker/claim-affect-other-registration.https.html.ini b/tests/wpt/meta/service-workers/service-worker/claim-affect-other-registration.https.html.ini
index 1dffd3dfeab..2662469d425 100644
--- a/tests/wpt/meta/service-workers/service-worker/claim-affect-other-registration.https.html.ini
+++ b/tests/wpt/meta/service-workers/service-worker/claim-affect-other-registration.https.html.ini
@@ -1,2 +1,4 @@
[claim-affect-other-registration.https.html]
- expected: CRASH
+ expected: TIMEOUT
+ [claim() should affect the originally controlling registration.]
+ expected: TIMEOUT
diff --git a/tests/wpt/meta/service-workers/service-worker/claim-not-using-registration.https.html.ini b/tests/wpt/meta/service-workers/service-worker/claim-not-using-registration.https.html.ini
index 46d53ed22ca..2b76d45c023 100644
--- a/tests/wpt/meta/service-workers/service-worker/claim-not-using-registration.https.html.ini
+++ b/tests/wpt/meta/service-workers/service-worker/claim-not-using-registration.https.html.ini
@@ -1,2 +1,7 @@
[claim-not-using-registration.https.html]
- expected: CRASH
+ expected: TIMEOUT
+ [Test claim client which is not using registration]
+ expected: FAIL
+
+ [Test claim client when there's a longer-matched registration not already used by the page]
+ expected: TIMEOUT
diff --git a/tests/wpt/meta/service-workers/service-worker/claim-with-redirect.https.html.ini b/tests/wpt/meta/service-workers/service-worker/claim-with-redirect.https.html.ini
index e9992a585cd..6f30610af70 100644
--- a/tests/wpt/meta/service-workers/service-worker/claim-with-redirect.https.html.ini
+++ b/tests/wpt/meta/service-workers/service-worker/claim-with-redirect.https.html.ini
@@ -1,2 +1,2 @@
[claim-with-redirect.https.html]
- expected: CRASH
+ expected: ERROR
diff --git a/tests/wpt/meta/service-workers/service-worker/controlled-dedicatedworker-postMessage.https.html.ini b/tests/wpt/meta/service-workers/service-worker/controlled-dedicatedworker-postMessage.https.html.ini
index 9e92d0f5373..22e35d285f8 100644
--- a/tests/wpt/meta/service-workers/service-worker/controlled-dedicatedworker-postMessage.https.html.ini
+++ b/tests/wpt/meta/service-workers/service-worker/controlled-dedicatedworker-postMessage.https.html.ini
@@ -1,2 +1,10 @@
[controlled-dedicatedworker-postMessage.https.html]
- expected: CRASH
+ expected: TIMEOUT
+ [Register service worker]
+ expected: TIMEOUT
+
+ [Verify dedicated worker gets messages if setting event listener early]
+ expected: NOTRUN
+
+ [Verify dedicated worker does not get all messages if not setting event listener early]
+ expected: NOTRUN
diff --git a/tests/wpt/meta/service-workers/service-worker/controlled-iframe-postMessage.https.html.ini b/tests/wpt/meta/service-workers/service-worker/controlled-iframe-postMessage.https.html.ini
index 25a0e780e48..59ca01314a7 100644
--- a/tests/wpt/meta/service-workers/service-worker/controlled-iframe-postMessage.https.html.ini
+++ b/tests/wpt/meta/service-workers/service-worker/controlled-iframe-postMessage.https.html.ini
@@ -1,2 +1,13 @@
[controlled-iframe-postMessage.https.html]
- expected: CRASH
+ expected: TIMEOUT
+ [Register service worker]
+ expected: TIMEOUT
+
+ [Verify frame gets early messages if setting synchronously message event listener]
+ expected: NOTRUN
+
+ [Verify frame does not get all messages if not setting event listener early]
+ expected: NOTRUN
+
+ [Verify frame does get messages in order]
+ expected: NOTRUN
diff --git a/tests/wpt/meta/service-workers/service-worker/fetch-event-within-sw.https.html.ini b/tests/wpt/meta/service-workers/service-worker/fetch-event-within-sw.https.html.ini
index 108edb57111..950748be0d1 100644
--- a/tests/wpt/meta/service-workers/service-worker/fetch-event-within-sw.https.html.ini
+++ b/tests/wpt/meta/service-workers/service-worker/fetch-event-within-sw.https.html.ini
@@ -1,2 +1,7 @@
[fetch-event-within-sw.https.html]
- expected: CRASH
+ expected: TIMEOUT
+ [Service worker intercepts requests from window]
+ expected: TIMEOUT
+
+ [Service worker does not intercept fetch/cache requests within service worker]
+ expected: NOTRUN
diff --git a/tests/wpt/meta/service-workers/service-worker/immutable-prototype-serviceworker.https.html.ini b/tests/wpt/meta/service-workers/service-worker/immutable-prototype-serviceworker.https.html.ini
index 37978da230a..7d2c0c09a6f 100644
--- a/tests/wpt/meta/service-workers/service-worker/immutable-prototype-serviceworker.https.html.ini
+++ b/tests/wpt/meta/service-workers/service-worker/immutable-prototype-serviceworker.https.html.ini
@@ -1,2 +1,4 @@
[immutable-prototype-serviceworker.https.html]
- expected: CRASH
+ expected: TIMEOUT
+ [worker prototype chain should be immutable]
+ expected: TIMEOUT
diff --git a/tests/wpt/meta/service-workers/service-worker/multi-globals/url-parsing.https.html.ini b/tests/wpt/meta/service-workers/service-worker/multi-globals/url-parsing.https.html.ini
index 5b1916f4c55..43c574d0d03 100644
--- a/tests/wpt/meta/service-workers/service-worker/multi-globals/url-parsing.https.html.ini
+++ b/tests/wpt/meta/service-workers/service-worker/multi-globals/url-parsing.https.html.ini
@@ -1,2 +1,10 @@
[url-parsing.https.html]
- expected: CRASH
+ expected: TIMEOUT
+ [register should use the relevant global of the object it was called on to resolve the script URL and the default scope URL]
+ expected: TIMEOUT
+
+ [register should use the relevant global of the object it was called on to resolve the script URL and the given scope URL]
+ expected: NOTRUN
+
+ [getRegistration should use the relevant global of the object it was called on to resolve the script URL]
+ expected: NOTRUN
diff --git a/tests/wpt/meta/service-workers/service-worker/navigation-sets-cookie.https.html.ini b/tests/wpt/meta/service-workers/service-worker/navigation-sets-cookie.https.html.ini
index 918af410419..7edcb20eb5d 100644
--- a/tests/wpt/meta/service-workers/service-worker/navigation-sets-cookie.https.html.ini
+++ b/tests/wpt/meta/service-workers/service-worker/navigation-sets-cookie.https.html.ini
@@ -1,2 +1,49 @@
[navigation-sets-cookie.https.html]
- expected: CRASH
+ expected: TIMEOUT
+ [Setup service workers]
+ expected: TIMEOUT
+
+ [Same-site top-level navigation with fallback service worker should be able to set SameSite=* cookies.]
+ expected: NOTRUN
+
+ [Cross-site top-level navigation with fallback service worker should be able to set SameSite=* cookies.]
+ expected: NOTRUN
+
+ [Same-site top-level POST with fallback service worker should be able to set SameSite=* cookies.]
+ expected: NOTRUN
+
+ [Cross-site top-level with fallback service worker POST should be able to set SameSite=* cookies.]
+ expected: NOTRUN
+
+ [Same-site top-level navigation with passthrough service worker should be able to set SameSite=* cookies.]
+ expected: NOTRUN
+
+ [Cross-site top-level navigation with passthrough service worker should be able to set SameSite=* cookies.]
+ expected: NOTRUN
+
+ [Same-site top-level POST with passthrough service worker should be able to set SameSite=* cookies.]
+ expected: NOTRUN
+
+ [Cross-site top-level with passthrough service worker POST should be able to set SameSite=* cookies.]
+ expected: NOTRUN
+
+ [Same-site top-level navigation with navpreload service worker should be able to set SameSite=* cookies.]
+ expected: NOTRUN
+
+ [Cross-site top-level navigation with navpreload service worker should be able to set SameSite=* cookies.]
+ expected: NOTRUN
+
+ [Same-site top-level navigation with change-request service worker should be able to set SameSite=* cookies.]
+ expected: NOTRUN
+
+ [Cross-site top-level navigation with change-request service worker should be able to set SameSite=* cookies.]
+ expected: NOTRUN
+
+ [Same-site top-level POST with change-request service worker should be able to set SameSite=* cookies.]
+ expected: NOTRUN
+
+ [Cross-site top-level with change-request service worker POST should be able to set SameSite=* cookies.]
+ expected: NOTRUN
+
+ [Cleanup service workers]
+ expected: NOTRUN
diff --git a/tests/wpt/meta/service-workers/service-worker/register-wait-forever-in-install-worker.https.html.ini b/tests/wpt/meta/service-workers/service-worker/register-wait-forever-in-install-worker.https.html.ini
index a29053b643f..4d8908bb261 100644
--- a/tests/wpt/meta/service-workers/service-worker/register-wait-forever-in-install-worker.https.html.ini
+++ b/tests/wpt/meta/service-workers/service-worker/register-wait-forever-in-install-worker.https.html.ini
@@ -1,4 +1,4 @@
[register-wait-forever-in-install-worker.https.html]
- expected: CRASH
+ expected: ERROR
[register worker that calls waitUntil with a promise that never resolves in oninstall]
expected: FAIL
diff --git a/tests/wpt/meta/service-workers/service-worker/registration-mime-types.https.html.ini b/tests/wpt/meta/service-workers/service-worker/registration-mime-types.https.html.ini
index 3076b1105ec..65a74b931ea 100644
--- a/tests/wpt/meta/service-workers/service-worker/registration-mime-types.https.html.ini
+++ b/tests/wpt/meta/service-workers/service-worker/registration-mime-types.https.html.ini
@@ -1,2 +1,108 @@
[registration-mime-types.https.html]
- expected: CRASH
+ [Registering script with no MIME type]
+ expected: FAIL
+
+ [Registering script with bad MIME type]
+ expected: FAIL
+
+ [Registering script that imports script with no MIME type]
+ expected: FAIL
+
+ [Registering script that imports script with bad MIME type]
+ expected: FAIL
+
+ [Registering script with good MIME type application/ecmascript]
+ expected: FAIL
+
+ [Registering script that imports script with good MIME type application/ecmascript]
+ expected: FAIL
+
+ [Registering script with good MIME type application/javascript]
+ expected: FAIL
+
+ [Registering script that imports script with good MIME type application/javascript]
+ expected: FAIL
+
+ [Registering script with good MIME type application/x-ecmascript]
+ expected: FAIL
+
+ [Registering script that imports script with good MIME type application/x-ecmascript]
+ expected: FAIL
+
+ [Registering script with good MIME type application/x-javascript]
+ expected: FAIL
+
+ [Registering script that imports script with good MIME type application/x-javascript]
+ expected: FAIL
+
+ [Registering script with good MIME type text/ecmascript]
+ expected: FAIL
+
+ [Registering script that imports script with good MIME type text/ecmascript]
+ expected: FAIL
+
+ [Registering script with good MIME type text/javascript]
+ expected: FAIL
+
+ [Registering script that imports script with good MIME type text/javascript]
+ expected: FAIL
+
+ [Registering script with good MIME type text/javascript1.0]
+ expected: FAIL
+
+ [Registering script that imports script with good MIME type text/javascript1.0]
+ expected: FAIL
+
+ [Registering script with good MIME type text/javascript1.1]
+ expected: FAIL
+
+ [Registering script that imports script with good MIME type text/javascript1.1]
+ expected: FAIL
+
+ [Registering script with good MIME type text/javascript1.2]
+ expected: FAIL
+
+ [Registering script that imports script with good MIME type text/javascript1.2]
+ expected: FAIL
+
+ [Registering script with good MIME type text/javascript1.3]
+ expected: FAIL
+
+ [Registering script that imports script with good MIME type text/javascript1.3]
+ expected: FAIL
+
+ [Registering script with good MIME type text/javascript1.4]
+ expected: FAIL
+
+ [Registering script that imports script with good MIME type text/javascript1.4]
+ expected: FAIL
+
+ [Registering script with good MIME type text/javascript1.5]
+ expected: FAIL
+
+ [Registering script that imports script with good MIME type text/javascript1.5]
+ expected: FAIL
+
+ [Registering script with good MIME type text/jscript]
+ expected: FAIL
+
+ [Registering script that imports script with good MIME type text/jscript]
+ expected: FAIL
+
+ [Registering script with good MIME type text/livescript]
+ expected: FAIL
+
+ [Registering script that imports script with good MIME type text/livescript]
+ expected: FAIL
+
+ [Registering script with good MIME type text/x-ecmascript]
+ expected: FAIL
+
+ [Registering script that imports script with good MIME type text/x-ecmascript]
+ expected: FAIL
+
+ [Registering script with good MIME type text/x-javascript]
+ expected: FAIL
+
+ [Registering script that imports script with good MIME type text/x-javascript]
+ expected: FAIL
diff --git a/tests/wpt/meta/service-workers/service-worker/registration-scope.https.html.ini b/tests/wpt/meta/service-workers/service-worker/registration-scope.https.html.ini
index e712494fd95..18fd421babb 100644
--- a/tests/wpt/meta/service-workers/service-worker/registration-scope.https.html.ini
+++ b/tests/wpt/meta/service-workers/service-worker/registration-scope.https.html.ini
@@ -1,2 +1,15 @@
[registration-scope.https.html]
- expected: CRASH
+ [Scope including URL-encoded multibyte characters]
+ expected: FAIL
+
+ [Scope including non-escaped multibyte characters]
+ expected: FAIL
+
+ [Scope including self-reference]
+ expected: FAIL
+
+ [Scope including parent-reference]
+ expected: FAIL
+
+ [Scope including consecutive slashes]
+ expected: FAIL
diff --git a/tests/wpt/meta/service-workers/service-worker/registration-script-module.https.html.ini b/tests/wpt/meta/service-workers/service-worker/registration-script-module.https.html.ini
index eee59eae104..861452db107 100644
--- a/tests/wpt/meta/service-workers/service-worker/registration-script-module.https.html.ini
+++ b/tests/wpt/meta/service-workers/service-worker/registration-script-module.https.html.ini
@@ -1,2 +1,30 @@
[registration-script-module.https.html]
- expected: CRASH
+ [Registering invalid chunked encoding script]
+ expected: FAIL
+
+ [Registering invalid chunked encoding script with flush]
+ expected: FAIL
+
+ [Registering script including parse error]
+ expected: FAIL
+
+ [Registering script including undefined error]
+ expected: FAIL
+
+ [Registering script including uncaught exception]
+ expected: FAIL
+
+ [Registering script with top-level await]
+ expected: FAIL
+
+ [Registering script with module instantiation error]
+ expected: FAIL
+
+ [Registering script with module instantiation error and top-level await]
+ expected: FAIL
+
+ [Registering non-existent script]
+ expected: FAIL
+
+ [Registering script including caught exception]
+ expected: FAIL
diff --git a/tests/wpt/meta/service-workers/service-worker/registration-script-url.https.html.ini b/tests/wpt/meta/service-workers/service-worker/registration-script-url.https.html.ini
index 4579039652e..d4f660beff0 100644
--- a/tests/wpt/meta/service-workers/service-worker/registration-script-url.https.html.ini
+++ b/tests/wpt/meta/service-workers/service-worker/registration-script-url.https.html.ini
@@ -1,2 +1,6 @@
[registration-script-url.https.html]
- expected: CRASH
+ [Script URL including self-reference]
+ expected: FAIL
+
+ [Script URL including parent-reference]
+ expected: FAIL
diff --git a/tests/wpt/meta/service-workers/service-worker/registration-script.https.html.ini b/tests/wpt/meta/service-workers/service-worker/registration-script.https.html.ini
index bd7dfce0190..abf5ec06b27 100644
--- a/tests/wpt/meta/service-workers/service-worker/registration-script.https.html.ini
+++ b/tests/wpt/meta/service-workers/service-worker/registration-script.https.html.ini
@@ -1,2 +1,27 @@
[registration-script.https.html]
- expected: CRASH
+ [Registering invalid chunked encoding script]
+ expected: FAIL
+
+ [Registering invalid chunked encoding script with flush]
+ expected: FAIL
+
+ [Registering script including parse error]
+ expected: FAIL
+
+ [Registering script including undefined error]
+ expected: FAIL
+
+ [Registering script including uncaught exception]
+ expected: FAIL
+
+ [Registering script importing malformed script]
+ expected: FAIL
+
+ [Registering non-existent script]
+ expected: FAIL
+
+ [Registering script importing non-existent script]
+ expected: FAIL
+
+ [Registering script including caught exception]
+ expected: FAIL
diff --git a/tests/wpt/meta/service-workers/service-worker/registration-security-error.https.html.ini b/tests/wpt/meta/service-workers/service-worker/registration-security-error.https.html.ini
index b6201ad6780..0b72e6a2b78 100644
--- a/tests/wpt/meta/service-workers/service-worker/registration-security-error.https.html.ini
+++ b/tests/wpt/meta/service-workers/service-worker/registration-security-error.https.html.ini
@@ -1,2 +1,25 @@
[registration-security-error.https.html]
- expected: CRASH
+ expected: TIMEOUT
+ [Registering same scope as the script directory without the last slash]
+ expected: FAIL
+
+ [Registration scope outside the script directory]
+ expected: FAIL
+
+ [Registering scope outside domain]
+ expected: TIMEOUT
+
+ [Registering script outside domain]
+ expected: NOTRUN
+
+ [Registering redirected script]
+ expected: NOTRUN
+
+ [Scope including parent-reference and not under the script directory]
+ expected: NOTRUN
+
+ [Script URL including consecutive slashes]
+ expected: NOTRUN
+
+ [Script URL is same-origin filesystem: URL]
+ expected: NOTRUN
diff --git a/tests/wpt/meta/service-workers/service-worker/same-site-cookies.https.html.ini b/tests/wpt/meta/service-workers/service-worker/same-site-cookies.https.html.ini
index cd5cc7b5dc5..f7d08527dc2 100644
--- a/tests/wpt/meta/service-workers/service-worker/same-site-cookies.https.html.ini
+++ b/tests/wpt/meta/service-workers/service-worker/same-site-cookies.https.html.ini
@@ -1,2 +1,199 @@
[same-site-cookies.https.html]
- expected: CRASH
+ expected: TIMEOUT
+ [Setup service workers]
+ expected: TIMEOUT
+
+ [same-origin, window.open with no service worker]
+ expected: NOTRUN
+
+ [same-origin, window.open with fallback]
+ expected: NOTRUN
+
+ [same-origin, window.open with passthrough]
+ expected: NOTRUN
+
+ [same-origin, window.open with change-request]
+ expected: NOTRUN
+
+ [same-origin, window.open with navpreload]
+ expected: NOTRUN
+
+ [same-site, window.open with no service worker]
+ expected: NOTRUN
+
+ [same-site, window.open with fallback]
+ expected: NOTRUN
+
+ [same-site, window.open with passthrough]
+ expected: NOTRUN
+
+ [same-site, window.open with change-request]
+ expected: NOTRUN
+
+ [same-site, window.open with navpreload]
+ expected: NOTRUN
+
+ [cross-site, window.open with no service worker]
+ expected: NOTRUN
+
+ [cross-site, window.open with fallback]
+ expected: NOTRUN
+
+ [cross-site, window.open with passthrough]
+ expected: NOTRUN
+
+ [cross-site, window.open with change-request]
+ expected: NOTRUN
+
+ [cross-site, window.open with navpreload]
+ expected: NOTRUN
+
+ [same-origin, window.open with no service worker and same-site redirect]
+ expected: NOTRUN
+
+ [same-origin, window.open with fallback and same-site redirect]
+ expected: NOTRUN
+
+ [same-origin, window.open with passthrough and same-site redirect]
+ expected: NOTRUN
+
+ [same-origin, window.open with change-request and same-site redirect]
+ expected: NOTRUN
+
+ [same-origin, window.open with navpreload and same-site redirect]
+ expected: NOTRUN
+
+ [same-origin, window.open with no service worker and cross-site redirect]
+ expected: NOTRUN
+
+ [same-origin, window.open with fallback and cross-site redirect]
+ expected: NOTRUN
+
+ [same-origin, window.open with passthrough and cross-site redirect]
+ expected: NOTRUN
+
+ [same-origin, window.open with change-request and cross-site redirect]
+ expected: NOTRUN
+
+ [same-origin, window.open with navpreload and cross-site redirect]
+ expected: NOTRUN
+
+ [same-origin, window.open with no service worker, cross-site redirect, and same-origin redirect]
+ expected: NOTRUN
+
+ [same-origin, window.open with fallback, cross-site redirect, and same-origin redirect]
+ expected: NOTRUN
+
+ [same-origin, window.open with passthrough, cross-site redirect, and same-origin redirect]
+ expected: NOTRUN
+
+ [same-origin, window.open with change-request, cross-site redirect, and same-origin redirect]
+ expected: NOTRUN
+
+ [same-origin, window.open with navpreload, cross-site redirect, and same-origin redirect]
+ expected: NOTRUN
+
+ [same-origin, nested window.open with cross-site middle frame and no service worker]
+ expected: NOTRUN
+
+ [same-origin, nested window.open with cross-site middle frame and fallback service worker]
+ expected: NOTRUN
+
+ [same-origin, nested window.open with cross-site middle frame and passthrough service worker]
+ expected: NOTRUN
+
+ [same-origin, nested window.open with cross-site middle frame and change-request service worker]
+ expected: NOTRUN
+
+ [same-origin, nested window.open with cross-site middle frame and navpreload service worker]
+ expected: NOTRUN
+
+ [same-origin, nested set location with cross-site middle frame and no service worker]
+ expected: NOTRUN
+
+ [same-origin, nested set location with cross-site middle frame and fallback service worker]
+ expected: NOTRUN
+
+ [same-origin, nested set location with cross-site middle frame and passthrough service worker]
+ expected: NOTRUN
+
+ [same-origin, nested set location with cross-site middle frame and change-request service worker]
+ expected: NOTRUN
+
+ [same-origin, nested set location with cross-site middle frame and navpreload service worker]
+ expected: NOTRUN
+
+ [same-origin, form post with no service worker]
+ expected: NOTRUN
+
+ [same-origin, form post with fallback]
+ expected: NOTRUN
+
+ [same-origin, form post with passthrough]
+ expected: NOTRUN
+
+ [same-origin, form post with change-request]
+ expected: NOTRUN
+
+ [same-site, form post with no service worker]
+ expected: NOTRUN
+
+ [same-site, form post with fallback]
+ expected: NOTRUN
+
+ [same-site, form post with passthrough]
+ expected: NOTRUN
+
+ [same-site, form post with change-request]
+ expected: NOTRUN
+
+ [cross-site, form post with no service worker]
+ expected: NOTRUN
+
+ [cross-site, form post with fallback]
+ expected: NOTRUN
+
+ [cross-site, form post with passthrough]
+ expected: NOTRUN
+
+ [cross-site, form post with change-request]
+ expected: NOTRUN
+
+ [same-origin, form post with no service worker and same-site redirect]
+ expected: NOTRUN
+
+ [same-origin, form post with fallback and same-site redirect]
+ expected: NOTRUN
+
+ [same-origin, form post with passthrough and same-site redirect]
+ expected: NOTRUN
+
+ [same-origin, form post with change-request and same-site redirect]
+ expected: NOTRUN
+
+ [same-origin, form post with no service worker and cross-site redirect]
+ expected: NOTRUN
+
+ [same-origin, form post with fallback and cross-site redirect]
+ expected: NOTRUN
+
+ [same-origin, form post with passthrough and cross-site redirect]
+ expected: NOTRUN
+
+ [same-origin, form post with change-request and cross-site redirect]
+ expected: NOTRUN
+
+ [same-origin, form post with no service worker, cross-site redirect, and same-origin redirect]
+ expected: NOTRUN
+
+ [same-origin, form post with fallback, cross-site redirect, and same-origin redirect]
+ expected: NOTRUN
+
+ [same-origin, form post with passthrough, cross-site redirect, and same-origin redirect]
+ expected: NOTRUN
+
+ [same-origin, form post with change-request, cross-site redirect, and same-origin redirect]
+ expected: NOTRUN
+
+ [Cleanup service workers]
+ expected: NOTRUN
diff --git a/tests/wpt/meta/service-workers/service-worker/svg-target-reftest.https.html.ini b/tests/wpt/meta/service-workers/service-worker/svg-target-reftest.https.html.ini
index a4a04c5f1ed..940ed6115ea 100644
--- a/tests/wpt/meta/service-workers/service-worker/svg-target-reftest.https.html.ini
+++ b/tests/wpt/meta/service-workers/service-worker/svg-target-reftest.https.html.ini
@@ -1,2 +1,2 @@
[svg-target-reftest.https.html]
- expected: CRASH
+ expected: TIMEOUT
diff --git a/tests/wpt/meta/service-workers/service-worker/unregister.https.html.ini b/tests/wpt/meta/service-workers/service-worker/unregister.https.html.ini
index 4d7266b177a..be75bfa2554 100644
--- a/tests/wpt/meta/service-workers/service-worker/unregister.https.html.ini
+++ b/tests/wpt/meta/service-workers/service-worker/unregister.https.html.ini
@@ -1,5 +1,4 @@
[unregister.https.html]
- expected: CRASH
[Unregister twice]
expected: FAIL
diff --git a/tests/wpt/meta/service-workers/service-worker/update-result.https.html.ini b/tests/wpt/meta/service-workers/service-worker/update-result.https.html.ini
index 6a2c32ec8b3..b077506a783 100644
--- a/tests/wpt/meta/service-workers/service-worker/update-result.https.html.ini
+++ b/tests/wpt/meta/service-workers/service-worker/update-result.https.html.ini
@@ -1,2 +1,4 @@
[update-result.https.html]
- expected: CRASH
+ expected: TIMEOUT
+ [ServiceWorkerRegistration.update() should resolve a registration object]
+ expected: TIMEOUT
diff --git a/tests/wpt/meta/service-workers/service-worker/worker-client-id.https.html.ini b/tests/wpt/meta/service-workers/service-worker/worker-client-id.https.html.ini
index 0fe6436080d..5fb7da52fb2 100644
--- a/tests/wpt/meta/service-workers/service-worker/worker-client-id.https.html.ini
+++ b/tests/wpt/meta/service-workers/service-worker/worker-client-id.https.html.ini
@@ -1,2 +1,4 @@
[worker-client-id.https.html]
- expected: CRASH
+ expected: TIMEOUT
+ [Verify workers have a unique client id separate from their owning documents window]
+ expected: TIMEOUT
diff --git a/tests/wpt/meta/webmessaging/broadcastchannel/service-worker.https.html.ini b/tests/wpt/meta/webmessaging/broadcastchannel/service-worker.https.html.ini
index f92e788d0a9..aea3da08f49 100644
--- a/tests/wpt/meta/webmessaging/broadcastchannel/service-worker.https.html.ini
+++ b/tests/wpt/meta/webmessaging/broadcastchannel/service-worker.https.html.ini
@@ -1,4 +1,2 @@
[service-worker.https.html]
- expected: CRASH
- [BroadcastChannel works in service workers]
- expected: FAIL
+ expected: ERROR
diff --git a/tests/wpt/mozilla/meta/mozilla/service-workers/service-worker-registration.https.html.ini b/tests/wpt/mozilla/meta/mozilla/service-workers/service-worker-registration.https.html.ini
index 23851315838..59676d4b1e9 100644
--- a/tests/wpt/mozilla/meta/mozilla/service-workers/service-worker-registration.https.html.ini
+++ b/tests/wpt/mozilla/meta/mozilla/service-workers/service-worker-registration.https.html.ini
@@ -1,32 +1,10 @@
[service-worker-registration.https.html]
- expected: CRASH
- [Test: Asserts Installing Service Worker and its Registration]
- expected: FAIL
-
- [Test: Installing Service Worker ScriptURL property]
- expected: FAIL
-
- [Test: Throws Error when Invalid Scope]
- expected: FAIL
-
[Test: Asserts Active Service Worker and its Registration]
expected: FAIL
[Test: Active Service Worker ScriptURL property]
expected: FAIL
- [Test: Asserts ServiceWorkerContainer in Navigator]
- expected: FAIL
-
- [Test: Throws Error when Invalid Url Path]
- expected: FAIL
-
- [Test: Service Worker Registration property scope Url when no scope]
- expected: FAIL
-
- [Test: Service Worker Registration property scope when provided a scope]
- expected: FAIL
-
[Test: Asserts Active Service Worker and its Registration]
expected: FAIL