In a similar case (I can't comment on Mythical 5th's case), I'm needing to fetch dynamic resources (can't be packagaged within) after an update, and after reading Patrick's suggestion, I've landed on Background Sync. But it looks like I need an Offscreen Doc, since the operation occurs solely within the SW and you can't register a SyncManager from within.
Meaning, on Updated, create an Offscreen document, just to register the Sync Manager, so that once/when the client is online (if not already), the SW can perform the requests.
For my case, it all has to be done in the background. It could also apply to any SW fetch connectivity fail (not just on updates).
Am I understanding correctly that that's the most optimal way?
It just seems to add quite a bit of cruft, and I'm weary of the performance impact.
(I'm also weary of the fact that BG Sync is Chromium only)
The alternative is the occasional HEAD request, but now you have to do that on every SW wake, which (for me) is dependant on user activity.