This behavior is explicitly called as part of the working agent specification:
navigator.serviceWorker.controller returns null if the request is a forced update (shift + refresh). ServiceWorker objects returned from this getter attribute, which are the same objects.
So this is not just a browser implementation detail.
If it seemed to you that there is a strong reason why the service worker should not behave this way, the best approach would be to identify your problems in spec problem tracking .
source
share