By default, until all tabs that have a page managed by this old service worker are closed / unloaded, the old service worker will work. The new service worker will, well, βwaitβ in a βpendingβ state.
There are options that change this default behavior. They are skipWaiting() and clients.claim() .
When skipWaiting() is called from the service installation worker, it, well, skips the wait state and immediately activates. However, it will not necessarily control the pages, despite the fact that it activates them, what clients.claim() .
source share