Préparer la suppression du cache d'appli

Chrome 85 ne prend plus en charge AppCache par défaut. La plupart des développeurs doivent migrer hors d'AppCache dès maintenant, sans attendre.

Suite à nos annonces précédentes, la compatibilité avec AppCache sera supprimée de Chrome et d'autres navigateurs basés sur Chromium. Nous encourageons les développeurs à migrer dès maintenant depuis AppCache, sans attendre plus longtemps.

Les service workers, largement compatibles avec les navigateurs actuels, offrent une alternative à l'expérience hors connexion proposée par AppCache. Consultez Stratégies de migration.

Chronologie

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

Une fonctionnalité "obsolète" existe toujours, mais elle enregistre des messages d'avertissement pour décourager son utilisation. Une fonctionnalité "supprimée" n'existe plus dans le navigateur.

Abandon dans les contextes non sécurisés Chrome 50 (avril 2016)
Suppression des contextes non sécurisés Chrome 70 (octobre 2018)
Abandon dans les contextes sécurisés Chrome 79 (décembre 2019)
Restriction du champ d'application d'AppCache Chrome 80 (février 2020)
Début de l'essai Origin Trial "Reverse" Chrome 84 (juillet 2020)
Suppression des contextes sécurisés, à l'exception de ceux qui ont activé la phase d'évaluation Chrome 85 (août 2020)
Suppression complète des contextes sécurisés pour tous les utilisateurs, avec la fin de l'Origin Trial 5 octobre 2021 (environ Chrome 95)

Essai Origin Trial

La chronologie liste deux jalons à venir qui seront supprimés. À partir de Chrome 85, le cache des applications ne sera plus disponible par défaut dans Chrome. Les développeurs qui ont besoin de plus de temps pour migrer depuis AppCache peuvent s'inscrire à un test d'origine "inverse" pour prolonger la disponibilité d'AppCache pour leurs applications Web. L'évaluation de l'origine 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 moment-là, AppCache sera entièrement supprimé pour tous les utilisateurs, même ceux qui s'étaient inscrits à l'Origin Trial.

Pour participer à la phase d'évaluation "inverse" :

  1. Demandez un jeton pour votre origine.
  2. Ajoutez le jeton à vos pages HTML. Pour cela, vous disposez de deux méthodes :
    • Ajoutez une balise origin-trial <meta> à 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 devrait ressembler à ceci : Origin-Trial: TOKEN_GOES_HERE
  3. Ajoutez le même jeton à vos fichiers manifestes AppCache. Pour ce faire, utilisez un nouveau champ dans votre fichier manifeste, au format suivant :
ORIGIN-TRIAL:
TOKEN_GOES_HERE

(Une ligne doit être insérée entre ORIGIN-TRIAL et votre jeton.)

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

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

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

Si vous avez déjà participé à des tests d'origine, vous avez peut-être ajouté le jeton uniquement à vos pages HTML. L'étude "reverse" sur l'origine d'AppCache est spéciale, car vous devez également associer un jeton à chacun de vos fichiers manifestes AppCache.

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

L'ajout du jeton d'évaluation de l'origine à vos fichiers manifestes AppCache indique que chaque fichier manifeste est toujours valide. À partir de Chrome 85, tout fichier manifeste dépourvu de champ ORIGIN-TRIAL sera considéré comme mal formé, et les règles qu'il contient seront ignorées.

Calendrier et logistique du déploiement des versions d'essai de l'origine

Bien que l'essai d'origine "inverse" commence officiellement avec Chrome 84, vous pouvez vous y inscrire dès aujourd'hui 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 aurez déjà ajoutés prendront effet.

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 d'évaluation de l'origine aux entrées mises en cache de votre fichier manifeste. Si votre version d'évaluation de l'origine est reconnue, un champ avec Token Expires: Tue Apr 06 2021... devrait s'afficher sur cette page, associé à votre fichier manifeste :

Interface about://appcache-internals affichant un jeton reconnu.

Tests avant la suppression

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

Stratégies de migration

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

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

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

Les service workers et AppCache s'excluent mutuellement

Lorsque vous élaborez votre stratégie de migration, n'oubliez pas que Chrome désactivera la fonctionnalité AppCache sur toute page chargée 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.

Pour cette raison, nous vous recommandons de ne pas essayer de migrer vers les service workers petit à petit. Il serait dommage de déployer un service worker qui ne contient qu'une partie de votre logique de mise en cache. Vous ne pouvez pas vous appuyer sur 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 revenir à votre précédente implémentation d'AppCache, vous devez vous assurer de désenregistrer ce service worker. Tant qu'un service worker enregistré est dans le champ d'application d'une page donnée, AppCache ne sera pas utilisé.

L'histoire multiplate-forme

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

Firefox sur toutes les plates-formes

Firefox a abandonné AppCache dans la version 44 (septembre 2015) et a supprimé sa compatibilité dans ses versions bêta et Nightly depuis septembre 2019.

Safari sur iOS et macOS

Safari a abandonné AppCache 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 les autres plates-formes : WKWebView. Les service workers ne sont actuellement pas compatibles avec les applications iOS utilisant WKWebView. De plus, l'annonce de la suppression d'AppCache dans Chrome ne concerne pas la disponibilité d'AppCache dans Chrome pour iOS. Veuillez en tenir compte si vous savez que votre application Web a une audience importante sur Chrome pour iOS.

Android WebView

Certains développeurs d'applications Android utilisent Chrome WebView pour afficher des contenus Web et peuvent également utiliser AppCache. Toutefois, il n'est pas possible d'activer un essai d'origine pour une WebView. Dans cette optique, Chrome WebView prendra en charge AppCache sans période d'essai jusqu'à sa suppression définitive, prévue dans Chrome 90.

En savoir plus

Voici quelques ressources pour les développeurs qui migrent d'AppCache vers les service workers.

Articles

Outils

Obtenir de l'aide

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

Vous pouvez poser une question générale sur la migration depuis AppCache sur Stack Overflow en utilisant 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 Smithsonian Institution Archives, Acc. 11-007, Box 020, Image No. MNH-4477.