Preparazione alla rimozione di AppCache

In Chrome 85 il supporto di AppCache viene rimosso per impostazione predefinita. La maggior parte degli sviluppatori dovrebbe eseguire la migrazione da AppCache ora e non aspettare oltre.

In seguito agli annunci precedenti, il supporto di AppCache verrà rimosso da Chrome e da altri browser basati su Chromium. Consigliamo agli sviluppatori di eseguire la migrazione da AppCache ora, anziché attendere ulteriormente.

I service worker, ampiamente supportati nei browser attuali, offrono un'alternativa all'esperienza offline offerta da AppCache. Vedi Strategie di migrazione.

Le modifiche recenti al programma di rilascio di Chrome fanno sì che le tempistiche di alcuni di questi passaggi possano variare. Cercheremo di mantenere aggiornata questa tempistica, ma a questo punto esegui la migrazione da AppCache il prima possibile, invece di attendere di raggiungere traguardi specifici.

Esiste ancora una funzionalità "inutilizzata", ma vengono registrati messaggi di avviso che ne sconsigliano l'utilizzo. Una funzionalità "rimossa" non esiste più nel browser.

Ritiro in contesti non sicuri Chrome 50 (aprile 2016)
Rimozione da contesti non sicuri Chrome 70 (ottobre 2018)
Ritiro in contesti sicuri Chrome 79 (dicembre 2019)
Limitazione di ambito di AppCache Chrome 80 (febbraio 2020)
Inizia la prova dell'origine "inversa" Chrome 84 (luglio 2020)
Rimozione dai contesti sicuri, ad eccezione di quelli che hanno attivato la prova dell'origine Chrome 85 (agosto 2020)
Rimozione completa dai contesti sicuri per tutti, al termine della prova dell'origine 5 ottobre 2021 (circa Chrome 95)

Prova dell'origine

Nella cronologia sono elencate due tappe imminenti per la rimozione. A partire da Chrome 85, AppCache non sarà più disponibile in Chrome per impostazione predefinita. Gli sviluppatori che hanno bisogno di più tempo per eseguire la migrazione da AppCache possono registrarsi per una prova dell'origine "inversa" per estendere la disponibilità di AppCache per le loro app web. La prova dell'origine inizierà in Chrome 84 (prima della rimozione predefinita in Chrome 85) e sarà attiva fino al 5 ottobre 2021 (circa Chrome 95). A quel punto, AppCache verrà rimosso completamente per tutti, anche per chi si è registrato alla prova dell'origine.

Per partecipare alla prova dell'origine "inversa":

  1. Richiedi un token per l'origine.
  2. Aggiungi il token alle tue pagine HTML. Esistono due modi per farlo:
    • Aggiungi un tag origin-trial <meta> all'intestazione di ogni pagina. Ad esempio: <meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">
    • In alternativa, configura il server in modo che restituisca risposte contenenti l'intestazione HTTP Origin-Trial. L'intestazione della risposta risultante dovrebbe avere un aspetto simile a questo: Origin-Trial: TOKEN_GOES_HERE
  3. Aggiungi lo stesso token ai manifest di AppCache. A tale scopo, utilizza un nuovo campo nel file manifest, con il seguente formato:
ORIGIN-TRIAL:
TOKEN_GOES_HERE

Deve essere presente una nuova riga tra ORIGIN-TRIAL e il token.

Di seguito puoi vedere un progetto di esempio incorporato che mostra l'aggiunta dei token di prova dell'origine corretti sia nei file index.html che manifest.appcache.

Perché i token sono necessari in più posizioni?

Il token di prova della stessa origine deve essere associato a:

  • Tutte le pagine HTML che utilizzano AppCache.
  • Tutti i manifest di AppCache tramite il campo manifest ORIGIN-TRIAL.

Se hai partecipato a prove dell'origine in passato, potresti aver aggiunto il token solo alle tue pagine HTML. La prova dell'origine "inversa" di AppCache è speciale in quanto devi associare un token anche a ciascuno dei manifest di AppCache.

L'aggiunta del token di prova dell'origine alle pagine HTML attiva l'interfaccia window.applicationCache dalle tue app web. Le pagine non associate a un token non potranno utilizzare i metodi e gli eventi window.applicationCache. Inoltre, le pagine senza token non potranno caricare risorse dall'AppCache. A partire da Chrome 85, si comporteranno come se AppCache non esistesse.

L'aggiunta del token della prova dell'origine ai manifest di AppCache indica che ogni manifest è ancora valido. A partire da Chrome 85, tutti i manifest che non hanno un campo ORIGIN-TRIAL verranno considerati non validi e le regole al loro interno verranno ignorate.

Tempistiche e logistica del deployment della prova di Origin

Anche se la prova dell'origine "inversa" inizia ufficialmente con Chrome 84, puoi registrarti per la prova dell'origine oggi stesso e aggiungere i token ai manifest HTML e AppCache. Man mano che il pubblico della tua app web esegue l'upgrade a Chrome 84, tutti i token che hai già aggiunto entreranno in vigore.

Dopo aver aggiunto un token al manifest di AppCache, visita la pagina about://appcache-internals per verificare che l'istanza locale di Chrome (versione 84 o successive) abbia associato correttamente il token di prova dell'origine alle voci memorizzate nella cache del manifest. Se la prova dell'origine viene riconosciuta, in quella pagina dovresti vedere un campo con Token Expires: Tue Apr 06 2021... associato al tuo manifest:

Interfaccia about://appcache-internals che mostra un token riconosciuto.

Test prima della rimozione

Ti invitiamo vivamente a eseguire la migrazione da AppCache il prima possibile. Se vuoi testare la rimozione di AppCache nelle tue app web, utilizza il flag about://flags/#app-cache per simularne la rimozione. Questo flag è disponibile a partire da Chrome 84.

Strategie di migrazione

I service worker, ampiamente supportati nei browser attuali, offrono un'alternativa all'esperienza offline fornita da AppCache.

Abbiamo fornito un polyfill che utilizza un service worker per replicare parte delle funzionalità di AppCache, anche se non replica l'intera interfaccia di AppCache. In particolare, non fornisce un sostituto per l'interfaccia window.applicationCache o per gli eventi AppCache correlati.

Per casi più complessi, librerie come Workbox offrono un modo semplice per creare un service worker moderno per la tua app web.

I Service worker e AppCache si escludono a vicenda

Mentre lavori alla tua strategia di migrazione, tieni presente che Chrome disattiverà la funzionalità AppCache in qualsiasi pagina caricata sotto il controllo di un service worker. In altre parole, non appena esegui il deployment di un service worker che controlla una determinata pagina, non puoi più utilizzare AppCache in quella pagina.

Per questo motivo, ti consigliamo di non tentare di eseguire la migrazione ai service worker pezzo per pezzo. Sarebbe un errore eseguire il deployment di un service worker che contenga solo parte della logica di memorizzazione nella cache. Non puoi utilizzare AppCache per "colmare le lacune".

Analogamente, se esegui il deployment di un worker di servizio prima della rimozione di AppCache e poi scopri di dover eseguire il rollback all'implementazione di AppCache precedente, devi assicurarti di annullare la registrazione del worker di servizio. Se per una determinata pagina è presente un service worker registrato nell'ambito, AppCache non verrà utilizzato.

La storia della multipiattaforma

Ti invitiamo a contattare un fornitore di browser specifico per avere ulteriori informazioni sui suoi piani per la rimozione di AppCache.

Firefox su tutte le piattaforme

Firefox ha ritirato AppCache nella release 44 (settembre 2015) e ne ha rimosso il supporto nelle build beta e Nightly a partire da settembre 2019.

Safari su iOS e macOS

Safari ha ritirato AppCache all'inizio del 2018.

Chrome per iOS

Chrome per iOS è un caso speciale, in quanto utilizza un motore del browser diverso rispetto a Chrome su altre piattaforme: WKWebView. I Service worker non sono attualmente supportati nelle app per iOS che utilizzano WKWebView e l'annuncio di rimozione di AppCache di Chrome non copre la disponibilità di AppCache su Chrome per iOS. Tieni presente questo aspetto se sai che la tua app web ha un vasto pubblico di Chrome per iOS.

WebView Android

Alcuni sviluppatori di applicazioni per Android utilizzano WebView di Chrome per visualizzare i contenuti web e potrebbero utilizzare anche AppCache. Tuttavia, non è possibile attivare una prova dell'origine per un componente WebView. Alla luce di ciò, Chrome WebView supporterà AppCache senza una prova dell'origine fino alla rimozione finale, prevista in Chrome 90.

Scopri di più

Ecco alcune risorse per gli sviluppatori che eseguono la migrazione da AppCache a service worker.

Articoli

Strumenti

Richiesta di aiuto

Se riscontri un problema utilizzando uno strumento specifico, apri il problema nel relativo repository GitHub.

Puoi porre una domanda generale sulla migrazione da AppCache su Stack Overflow utilizzando il tag html5-appcache.

Se riscontri un bug relativo alla rimozione di AppCache da Chrome, segnalacelo utilizzando il tracker dei problemi di Chromium.

Immagine hero basata su Smithsonian Institution Archives, Acc. 11-007, Box 020, Image No. MNH-4477.