We've been disabling ServiceWorkers on ESR releases because of the long-running ServiceWorker e10s overhaul because:
- The e10s overhaul seemed to make uplifts to ESR infeasible.
- We were concerned about diverging implementations posing a health problem to the web, as ESR would see different ServiceWorker semantics from what we ship.
As we're now very close to landing the e10s ServiceWorkers overhaul, there are also some other potential issues to be concerned about:
- SPECTRE attacks in a pre-fission implementation where ServiceWorkers enable long-running background execution in any content process without origin restrictions.
- Abuse of background execution capabilities, potentially triggered by push, with limited user visibility into CPU usage and limited mitigations capabilities.
While these are also current potential issues against trunk, we are more able to effectively mitigate and iterate on these problems and it's not clear such fixes would be something that could be uplifted to ESR.
It's also not immediately clear what benefit a frozen-in-time ServiceWorkers implementation would serve on ESR. Currently, the value ServiceWorkers provide that transcends progressive enhancement is offline functionality and push notification functionality. Anecdotal analysis indicates that most use is for push notifications, functionality that appears very popular with websites but less popular with users.
Note that I'm primarily filing this bug for tracking and to consolidate discussion. My above comments inform my own perspective on the issue and I think they should be considered in any decision-making process, but are not the only issues to be considered and I am not the decision-maker.