From 2f3f5cb555144ab1f400c4f51d6b3c8900880eb5 Mon Sep 17 00:00:00 2001 From: Hiroki Nakagawa Date: Mon, 25 Apr 2022 21:57:49 -0700 Subject: [PATCH] Prerender: Defer ServiceWorkerRegistration#unregister from prerendered pages The spec requires ServiceWorkerRegistration#unregister to be deferred until page activation. This CL implements the behavior. https://wicg.github.io/nav-speculation/prerendering.html#patch-service-workers Bug: 1305120 Change-Id: Ibf5d888f0636d2ad11c08f16b9b9739824536cb0 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3606768 Reviewed-by: Lingqi Chi Reviewed-by: Asami Doi Commit-Queue: Hiroki Nakagawa Cr-Commit-Position: refs/heads/main@{#995987} --- .../prerender/resources/do-nothing-worker.js | 1 + .../resources/service-worker-unregister.html | 34 +++++++++++ ...ction-service-worker-unregister.https.html | 56 +++++++++++++++++++ 3 files changed, 91 insertions(+) create mode 100644 speculation-rules/prerender/resources/do-nothing-worker.js create mode 100644 speculation-rules/prerender/resources/service-worker-unregister.html create mode 100644 speculation-rules/prerender/restriction-service-worker-unregister.https.html diff --git a/speculation-rules/prerender/resources/do-nothing-worker.js b/speculation-rules/prerender/resources/do-nothing-worker.js new file mode 100644 index 00000000000000..49ceb2648a9341 --- /dev/null +++ b/speculation-rules/prerender/resources/do-nothing-worker.js @@ -0,0 +1 @@ +// Do nothing. diff --git a/speculation-rules/prerender/resources/service-worker-unregister.html b/speculation-rules/prerender/resources/service-worker-unregister.html new file mode 100644 index 00000000000000..a78775a5a2c7a5 --- /dev/null +++ b/speculation-rules/prerender/resources/service-worker-unregister.html @@ -0,0 +1,34 @@ + + + + + + + + + diff --git a/speculation-rules/prerender/restriction-service-worker-unregister.https.html b/speculation-rules/prerender/restriction-service-worker-unregister.https.html new file mode 100644 index 00000000000000..669e7ee0a27555 --- /dev/null +++ b/speculation-rules/prerender/restriction-service-worker-unregister.https.html @@ -0,0 +1,56 @@ + +ServiceWorkerRegistration.unregister in a prerendered page + + + + + + + + +