Me encontré con un caso de uso extraño que pone al trabajador de servicio de mi PWA en un estado de instalación infinito.
Si cambio el certificado SSL del sitio de un certificado que está a punto de caducar a uno nuevo, el sitio detectará una nueva versión, que luego se actualizará al siguiente trabajador del servicio, pero luego, después de que la página se vuelva a cargar, detectará otra nueva versión, y una y otra vez. No me ha ocurrido esto en Chrome, solo iOS Safari.
Lo único que se me ocurre por qué ocurre esto es que el sitio todavía tiene el certificado SSL anterior, razón por la cual el trabajador del servicio continúa actualizándose.
Antecedentes sobre el SW:
self.skipWaiting() en el evento de instalación¡Gracias por cualquier ayuda!
Para cualquiera en el futuro he encontrado una respuesta para esto.
La razón por la que se producía el bucle de actualización era que Safari no liberaba el certificado anterior después de actualizar los enlaces. Ahora Chrome tiene un comportamiento similar al no usar el nuevo certificado, pero no causaría un ciclo de actualización infinito.
Resulta que la solución es simple (Esto es para IIS):
Notarás que en Safari se detectará una actualización aunque en realidad no hayas actualizado la propia PWA. Después de la actualización, se debe cargar el nuevo certificado y listo.