Préparer la suppression du cache d'appli

Chrome 85 supprime la compatibilité avec AppCache par défaut. Nous recommandons à la plupart des développeurs de quitter AppCache dès maintenant, sans attendre plus longtemps.

Suite aux annonces précédentes, la compatibilité avec AppCache va être supprimée de Chrome et des autres navigateurs basés sur Chromium. Nous encourageons les développeurs à quitter AppCache dès maintenant, au lieu d'attendre plus longtemps.

Service workers largement pris en charge dans les navigateurs actuels, proposez une alternative à la mise à disposition proposé par AppCache. Consultez la page Stratégies de migration.

Chronologie

En raison des récentes modifications apportées au calendrier des versions de Chrome, le calendrier de certaines de ces étapes peut varier. Nous nous efforcerons de tenir ce calendrier à jour, mais à ce stade, veuillez supprimer AppCache dès que possible, au lieu d'attendre des étapes spécifiques.

Une version "obsolète" existe toujours, mais consigne les messages d'avertissement qui déconseillent son utilisation. Une mention "supprimée" n'existe plus dans le navigateur.

Abandon dans des contextes non sécurisés Chrome 50 (avril 2016)
Suppression des contextes non sécurisés Chrome 70 (octobre 2018)
Abandon dans des contextes sécurisés Chrome 79 (décembre 2019)
Restriction de champ d'application AppCache Chrome 80 (février 2020)
"Inverser" début de la phase d'évaluation Chrome 84 (juillet 2020)
Suppression des contextes sécurisés, sauf ceux pour lesquels la phase d'évaluation a été activée Chrome 85 (août 2020)
Suppression complète des contextes sécurisés pour tous les utilisateurs, avec la fin de la phase d'évaluation 5 octobre 2021 (environ Chrome 95)

Phase d'évaluation

Le calendrier énumère deux jalons à venir concernant la suppression. À partir de Chrome 85, AppCache ne sera plus disponible par défaut dans Chrome. Les développeurs qui ont besoin de plus de temps pour migrer en dehors d'AppCache peuvent s'inscrire à un "retour inverse". phase d'évaluation afin d'étendre la disponibilité d'AppCache pour leurs applications Web. La phase d'évaluation commencera dans Chrome 84 (avant la suppression par défaut dans Chrome 85) et sera active jusqu'au 5 octobre 2021 (environ Chrome 95). À ce stade, AppCache sera complètement supprimé pour tous les utilisateurs, même ceux qui se sont inscrits à la phase d'évaluation.

Pour participer à l'« inverse » phase d'évaluation:

  1. Demandez un jeton pour votre origine.
  2. Ajoutez le jeton à vos pages HTML. Pour ce faire, vous disposez de deux méthodes: <ph type="x-smartling-placeholder">
      </ph>
    • Ajoutez une balise <meta> origin-trial à l'en-tête de chaque page. Par exemple : <meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">.
    • Vous pouvez également configurer votre serveur pour qu'il renvoie des réponses contenant l'en-tête HTTP Origin-Trial. L'en-tête de réponse obtenu doit ressembler à ceci: Origin-Trial: TOKEN_GOES_HERE
  3. Ajoutez le même jeton à vos fichiers manifestes AppCache. Pour ce faire, accédez à un nouveau champ dans votre fichier manifeste, au format suivant:
ORIGIN-TRIAL:
TOKEN_GOES_HERE

(Une nouvelle ligne doit apparaître entre ORIGIN-TRIAL et votre jeton.)

L'exemple de projet intégré ci-dessous montre comment ajouter les jetons d'évaluation appropriés dans les fichiers index.html et manifest.appcache.

Pourquoi les jetons sont-ils nécessaires à plusieurs endroits ?

Le même jeton d'essai d'origine doit être associé à:

  • Toutes vos pages HTML qui utilisent AppCache.
  • Tous vos fichiers manifestes AppCache via le champ ORIGIN-TRIAL du fichier manifeste.

Si vous avez déjà participé à des phases d'évaluation, vous avez peut-être ajouté le jeton uniquement à vos pages HTML. La méthode "inversion" d'AppCache la phase d'évaluation est particulière, dans la mesure où vous devez également associer un jeton à chacun de vos fichiers manifestes AppCache.

L'ajout du jeton de la phase d'évaluation à vos pages HTML active l'interface window.applicationCache depuis vos applications Web. Les pages qui ne sont pas associées à un jeton ne pourront pas utiliser les méthodes ni les événements window.applicationCache. Les pages sans jeton ne pourront pas non plus charger de ressources à partir du cache d'application. À partir de Chrome 85, ils se comporteront comme si AppCache n'existait pas.

L'ajout du jeton de la phase d'évaluation à vos fichiers manifestes AppCache indique que chaque fichier manifeste est toujours valide. À partir de Chrome 85, tous les fichiers manifestes qui ne comportent pas de champ ORIGIN-TRIAL seront traités comme non valides, et les règles qu'ils contiennent seront ignorées.

Calendrier et logistique du déploiement de l'essai Origin Trial

Alors que l’« inverse » la phase d'évaluation commence officiellement avec Chrome 84. Vous pouvez vous inscrire dès aujourd'hui à la phase d'évaluation et ajouter les jetons à vos fichiers manifestes HTML et AppCache. À mesure que l'audience de votre application Web passera progressivement à Chrome 84, tous les jetons que vous avez déjà ajoutés entreront en vigueur.

Une fois que vous avez ajouté un jeton à votre fichier manifeste AppCache, accédez à about://appcache-internals pour vérifier que votre instance locale de Chrome (version 84 ou ultérieure) a correctement associé le jeton de la phase d'évaluation aux entrées en cache de votre fichier manifeste. Si votre phase d'évaluation est reconnue, un champ Token Expires: Tue Apr 06 2021... associé à votre fichier manifeste devrait s'afficher sur cette page:

L&#39;interface about://appcache-internals affichant un jeton reconnu.

Test avant suppression

Nous vous encourageons vivement à quitter AppCache dès que possible. Si vous souhaitez tester la suppression d'AppCache sur vos applications Web, utilisez l'indicateur about://flags/#app-cache pour simuler sa suppression. Cet indicateur est disponible à partir de Chrome 84.

Stratégies de migration

Les service workers, largement compatibles avec les navigateurs actuels, constituent une alternative à l'expérience hors connexion fournie par AppCache.

Nous avons fourni un polyfill qui utilise un service worker pour répliquer certaines fonctionnalités d'AppCache, bien qu'il ne réplique pas l'intégralité de l'interface AppCache. En particulier, elle ne remplace pas l'interface window.applicationCache ni les événements AppCache associés.

Dans les cas plus complexes, des bibliothèques telles que Workbox permettent de créer facilement un service worker moderne pour votre application Web.

Les service workers et AppCache s'excluent mutuellement

Lorsque vous travaillez sur votre stratégie de migration, n'oubliez pas que Chrome désactivera la fonctionnalité AppCache sur toutes les pages chargées sous le contrôle d'un service worker. En d'autres termes, dès que vous déployez un service worker qui contrôle une page donnée, vous ne pouvez plus utiliser AppCache sur cette page.

C'est pourquoi nous vous recommandons de ne pas tenter de migrer vers les service workers au cas par cas. Ce serait une erreur de déployer un service worker contenant uniquement une partie de votre logique de mise en cache. Vous ne pouvez pas utiliser AppCache pour "combler les lacunes".

De même, si vous déployez un service worker avant la suppression d'AppCache, puis que vous découvrez que vous devez effectuer un rollback vers votre implémentation AppCache précédente, vous devez vous assurer d'annuler l'enregistrement de ce service worker. Tant qu'un service worker enregistré est présent pour une page donnée, AppCache n'est pas utilisé.

L'histoire multiplate-forme

Nous vous encourageons à contacter un fournisseur de navigateur spécifique si vous souhaitez en savoir plus sur ses projets de suppression d'AppCache.

Firefox sur toutes les plates-formes

AppCache est obsolète dans la version 44 (septembre 2015) de Firefox, et il n'est plus pris en charge dans les versions bêta et Nightly depuis septembre 2019.

Safari sur iOS et macOS

AppCache est obsolète dans Safari depuis début 2018.

Chrome sur iOS

Chrome pour iOS est un cas particulier, car il utilise un moteur de navigateur différent de celui de Chrome sur d'autres plates-formes: WKWebView. Les service workers ne sont actuellement pas compatibles avec les applications iOS utilisant WKWebView, et l'annonce de la suppression d'AppCache dans Chrome ne couvre pas la disponibilité d'AppCache sur Chrome pour iOS. Gardez cela à l'esprit si vous savez que votre application Web est populaire auprès de Chrome pour iOS.

WebViews Android

Certains développeurs d'applications Android utilisent Chrome WebView pour afficher du contenu Web, et peuvent également utiliser AppCache. Toutefois, il n'est pas possible d'activer une phase d'évaluation pour une WebView. Par conséquent, Chrome WebView sera compatible avec AppCache sans phase d'évaluation jusqu'à la suppression finale, prévue dans Chrome 90.

En savoir plus

Voici quelques ressources destinées aux développeurs qui migrent d'AppCache vers des service workers.

Articles

Outils

Obtenir de l'aide

Si vous rencontrez un problème à l'aide d'un outil spécifique, signalez-le dans son dépôt GitHub.

Vous pouvez poser une question générale concernant la migration de AppCache sur Stack Overflow avec le tag html5-appcache.

Si vous rencontrez un bug lié à la suppression d'AppCache dans Chrome, veuillez le signaler à l'aide de l'outil Issue Tracker de Chromium.

Image principale basée sur la Smithsonian Institution Archives, Acc. 11-007, Box 020, image n° MNH-4477.