[w3c/ServiceWorker] Provide a way to ask the waiting Service Worker to skip waiting from the outside (#1223)

It's a common practice to ask users to click an "refresh" or "update" button when a new Service Worker is waiting. The normal way to actually kick off the update is to post a message to the Service Worker, arranging a convention under which the SW can call `skipWaiting()` in the Service Worker's own scope.

It would be convenient if the ServiceWorker object returned by ServiceWorkerRegistration.waiting had a `skipWaiting()` method, so developers wouldn't have to configure a message listener at all. Combined with #1222, you could write code like this:

```js
navigator.serviceWorker.addEventListener('controllerchange', () => window.location.reload());
navigator.serviceWorker.waiting().then(reg => {
  if (confirm('refresh now?')) reg.waiting.skipWaiting();
});
```

(Uh, don't actually use `confirm()` in production; it's just convenient for this example.)

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/w3c/ServiceWorker/issues/1223

Received on Monday, 13 November 2017 09:14:18 UTC