Prepárate para la eliminación de AppCache

En Chrome 85, se quitará la compatibilidad con AppCache de forma predeterminada. La mayoría de los desarrolladores deberían migrar de AppCache ahora y no esperar más.

En seguimiento de anuncios anteriores, se quitará la compatibilidad con AppCache en Chrome y otros navegadores basados en Chromium. Recomendamos a los desarrolladores que migren fuera de AppCache ahora, en lugar de esperar más tiempo.

Service workers que son ampliamente compatibles con los navegadores actuales, ofrecen una alternativa a proporcionar la tecnología sin conexión la experiencia que ofrece AppCache. Consulta Estrategias de migración.

Cronograma

Según los cambios recientes en el programa de lanzamientos de Chrome, el cronograma de algunos de estos pasos puede variar. Intentaremos mantener este cronograma actualizado, pero, por el momento, deberás migrar de AppCache lo antes posible, en lugar de esperar eventos específicos.

Una versión "obsoleta" La función sigue existiendo, pero registra mensajes de advertencia que desaconsejan su uso. Una etiqueta "quitada" ya no existe en el navegador.

Baja en contextos no seguros Chrome 50 (abril de 2016)
Eliminación de contextos no seguros Chrome 70 (octubre de 2018)
Baja en contextos seguros Chrome 79 (diciembre de 2019)
Restricción de permisos de AppCache Chrome 80 (febrero de 2020)
"Invertir" comienza la prueba de origen Chrome 84 (julio de 2020)
Eliminación de contextos seguros, excepto para los que aceptaron la prueba de origen Chrome 85 (agosto de 2020)
Eliminación completa de contextos seguros para todos con la prueba de origen 5 de octubre de 2021 (aproximadamente Chrome 95)

Prueba de origen

En el cronograma se mencionan dos de los próximos eventos importantes para su eliminación. A partir de Chrome 85, AppCache ya no estará disponible en Chrome de forma predeterminada. Los desarrolladores que necesiten más tiempo para migrar fuera de AppCache pueden registrarse para realizar una operación “reversa”. prueba de origen para extender la disponibilidad de AppCache para sus apps web. La prueba de origen comenzará en Chrome 84 (antes de la eliminación predeterminada en Chrome 85) y permanecerá activa hasta el 5 de octubre de 2021 (aproximadamente Chrome 95). En ese momento, se quitará AppCache por completo para todos los usuarios, incluso para aquellos que se registraron en la prueba de origen.

Para participar en la fase "reversa" prueba de origen:

  1. Solicita un token para tu origen.
  2. Agrega el token a tus páginas HTML. Existen dos maneras de hacerlo:
    • Agrega una etiqueta origin-trial <meta> al encabezado de cada página. Por ejemplo: <meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">
    • Como alternativa, configura tu servidor para que muestre respuestas que contengan el encabezado HTTP Origin-Trial. El encabezado de respuesta resultante debería ser similar al siguiente: Origin-Trial: TOKEN_GOES_HERE
  3. Agrega el mismo token a los manifiestos de AppCache. Para ello, usa un campo nuevo en tu manifiesto, con el siguiente formato:
ORIGIN-TRIAL:
TOKEN_GOES_HERE

(Debe haber una línea nueva entre ORIGIN-TRIAL y tu token).

Puedes ver un proyecto de ejemplo incorporado a continuación que demuestra cómo agregar los tokens de prueba de origen correctos a los archivos index.html y manifest.appcache.

¿Por qué se necesitan tokens en varios lugares?

El mismo token de prueba de origen se debe asociar con lo siguiente:

  • Todas tus páginas HTML que usan AppCache.
  • Todos tus manifiestos de AppCache a través del campo ORIGIN-TRIAL del manifiesto.

Si participaste en pruebas de origen en el pasado, es posible que hayas agregado el token solo a tus páginas HTML. La función “revertir” de AppCache la prueba de origen es especial porque también debes asociar un token a cada uno de los manifiestos de AppCache.

Si agregas el token de prueba de origen a tus páginas HTML, se habilitará la interfaz de window.applicationCache desde tus aplicaciones web. Las páginas que no estén asociadas con un token no podrán usar métodos ni eventos de window.applicationCache. Las páginas sin un token tampoco podrán cargar recursos desde AppCache. A partir de Chrome 85, se comportarán como si AppCache no existiera.

Si agregas el token de prueba de origen a tus manifiestos de AppCache, significa que cada manifiesto es válido aún. A partir de Chrome 85, todos los manifiestos que no tengan un campo ORIGIN-TRIAL se tratarán como con formato incorrecto y se ignorarán las reglas dentro del manifiesto.

Logística y tiempos de implementación de las pruebas de origen

Mientras que la parte "reversa" La prueba de origen comienza oficialmente con Chrome 84, puedes registrarte en ella hoy y agregar los tokens a tus manifiestos HTML y de AppCache. A medida que el público de tu app web se actualice gradualmente a Chrome 84, se aplicarán los tokens que ya hayas agregado.

Una vez que hayas agregado un token al manifiesto de AppCache, visita about://appcache-internals para confirmar que tu instancia local de Chrome (versión 84 o posterior) haya asociado correctamente el token de prueba de origen con las entradas almacenadas en caché de tu manifiesto. Si se reconoce la prueba de origen, deberías ver un campo con Token Expires: Tue Apr 06 2021... en esa página, asociado con tu manifiesto:

La interfaz about://appcache-internals muestra un token reconocido.

Pruebas previas a la eliminación

Te recomendamos que migres de AppCache lo antes posible. Si quieres probar la eliminación de AppCache en tus apps web, usa la marca about://flags/#app-cache para simular su eliminación. Esta función está disponible a partir de Chrome 84.

Estrategias de migración

Los service workers, que son ampliamente compatibles con los navegadores actuales, ofrecen una alternativa a la experiencia sin conexión que proporciona AppCache.

Proporcionamos un polyfill que usa un service worker para replicar algunas de las funciones de AppCache, aunque no replica toda la interfaz de AppCache. En particular, no proporciona un reemplazo para la interfaz window.applicationCache ni los eventos AppCache relacionados.

Para casos más complejos, las bibliotecas como Workbox proporcionan una manera fácil de crear un service worker moderno para tu app web.

Los service workers y AppCache son mutuamente excluyentes

Mientras trabajas en tu estrategia de migración, ten en cuenta que Chrome inhabilitará la funcionalidad de AppCache en cualquier página que se cargue bajo el control de un service worker. En otras palabras, cuando implementas un service worker que controla una página determinada, ya no puedes usar AppCache en esa página.

Por este motivo, te recomendamos que no intentes migrar a los service workers paso a paso. Sería un error implementar un service worker que solo contenga una parte de tu lógica de almacenamiento en caché. No puedes recurrir a AppCache para "completar los espacios vacíos".

De manera similar, si implementas un service worker antes de la eliminación de AppCache y, luego, descubres que debes revertir a la implementación anterior de AppCache, debes asegurarte de cancelar el registro de ese service worker. Siempre que haya un service worker registrado dentro del alcance de una página determinada, no se usará AppCache.

La historia de las multiplataforma

Te recomendamos que te comuniques con un proveedor de navegadores específico si deseas obtener más información sobre sus planes para la eliminación de AppCache.

Firefox en todas las plataformas

Firefox dejó de estar disponible AppCache en la versión 44 (septiembre de 2015) y quitó la compatibilidad con esto en sus compilaciones Beta y nocturna a partir de septiembre de 2019.

Safari en iOS y macOS

Safari dejó de estar disponible a principios de 2018.

Chrome en iOS,

Chrome para iOS es un caso especial, ya que usa un motor de navegador diferente al de Chrome en otras plataformas: WKWebView. Actualmente, las apps para iOS que usan WKWebView no admiten service workers, y el anuncio de eliminación de AppCache de Chrome no abarca la disponibilidad de AppCache en Chrome para iOS. Ten esto en cuenta si sabes que tu app web tiene un público significativo de Chrome para iOS.

WebViews de Android

Algunos desarrolladores de aplicaciones para Android usan WebView de Chrome para mostrar contenido web y es posible que también usen AppCache. Sin embargo, no es posible habilitar una prueba de origen para un WebView. En consecuencia, Chrome WebView admitirá AppCache sin una prueba de origen hasta que se realice la eliminación final, como se espera en Chrome 90.

Más información

Estos son algunos recursos para desarrolladores que migran de AppCache a service workers.

Artículos

Herramientas

Cómo obtener ayuda

Si tienes un problema con una herramienta específica, ábrelo en su repositorio de GitHub.

Puedes hacer una pregunta general sobre la migración desde AppCache en Stack Overflow con la etiqueta html5-appcache.

Si encuentras un error relacionado con la eliminación de AppCache de Chrome, infórmalo a través de la Herramienta de seguimiento de errores de Chromium.

Hero image basada en Smithsonian Institution Archives, Acc. 11-007, Box 020, núm. de imagen MNH-4477.