O Chrome 85 remove o suporte ao AppCache por padrão. A maioria dos desenvolvedores precisa migrar do AppCache agora, sem esperar mais.
Seguindo anúncios anteriores, o suporte para AppCache será removido do Chrome e de outros navegadores baseados no Chromium. Recomendamos que os desenvolvedores migrem do AppCache agora, em vez de esperar mais.
Os service workers, que são amplamente aceitos nos navegadores atuais, oferecem uma alternativa para proporcionar a experiência off-line que o AppCache oferecia. Consulte Estratégias de migração.
Cronograma
Mudanças recentes na programação de lançamentos do Chrome significam que o tempo de algumas dessas etapas pode variar. Vamos tentar manter esse cronograma atualizado, mas, neste momento, migre do AppCache o mais rápido possível, em vez de esperar marcos específicos.
Um recurso "descontinuado" ainda existe, mas registra mensagens de aviso desencorajando o uso. Um recurso "removido" não existe mais no navegador.
Descontinuação em contextos não seguros | Chrome 50 (abril de 2016) |
Remoção de contextos não seguros | Chrome 70 (outubro de 2018) |
Descontinuação em contextos seguros | Chrome 79 (dezembro de 2019) |
Restrição de escopo do AppCache | Chrome 80 (fevereiro de 2020) |
Início do teste de origem "Reverse" | Chrome 84 (julho de 2020) |
Remoção de contextos seguros, exceto para aqueles que ativaram o teste de origem | Chrome 85 (agosto de 2020) |
Remoção completa de contextos seguros para todos, com conclusão do teste de origem | 5 de outubro de 2021 (aproximadamente Chrome 95) |
Teste de origem
O cronograma lista dois marcos futuros para remoção. A partir do Chrome 85, o AppCache não estará mais disponível no Chrome por padrão. Os desenvolvedores que precisarem de mais tempo para migrar do AppCache podem se inscrever em um teste de origem "reverso" para estender a disponibilidade do AppCache para os web apps. O teste de origem vai começar no Chrome 84 (antes da remoção padrão no Chrome 85) e ficará ativo até 5 de outubro de 2021 (aproximadamente o Chrome 95). Nesse momento, o AppCache será totalmente removido para todos, mesmo para quem se inscreveu no teste de origem.
Para participar do teste de origem "reverso":
- Solicite um token para sua origem.
- Adicione o token às suas páginas HTML. Há duas maneiras de fazer isso:
- Adicione uma tag
origin-trial
<meta>
ao cabeçalho de cada página. Por exemplo:<meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">
- Como alternativa, configure o servidor para retornar respostas que contenham o cabeçalho HTTP
Origin-Trial
. O cabeçalho de resposta resultante será semelhante a este:Origin-Trial: TOKEN_GOES_HERE
- Adicione uma tag
- Adicione o mesmo token aos manifestos do AppCache. Faça isso usando um novo campo no manifesto, com o formato:
ORIGIN-TRIAL:
TOKEN_GOES_HERE
(É preciso haver uma nova linha entre ORIGIN-TRIAL
e seu token.)
Por que os tokens são necessários em vários lugares?
O mesmo token de teste de origem precisa estar associado a:
- Todas as suas páginas HTML que usam o AppCache.
- Todos os manifestos do AppCache pelo campo de manifesto
ORIGIN-TRIAL
.
Se você já participou de testes de origem, talvez tenha adicionado o token apenas às suas páginas HTML. O teste de origem "inverso" do AppCache é especial porque você também precisa associar um token a cada um dos manifestos do AppCache.
Adicionar o token de teste de origem às suas páginas HTML ativa a interface window.applicationCache
nos seus apps da Web. As páginas que não estão associadas a um token não podem usar métodos e eventos window.applicationCache
. As páginas sem um token também não poderão carregar recursos do AppCache. A partir do Chrome 85, eles vão se comportar como se o AppCache não existisse.
Adicionar o token do teste de origem aos manifestos do AppCache indica que cada manifesto ainda é válido. A partir do Chrome 85, todos os manifestos que não tiverem um campo ORIGIN-TRIAL
serão tratados como malformados, e as regras no manifesto serão ignoradas.
Cronograma e logística de implantação do teste de origem
Embora o teste de origem "inverso" comece oficialmente com o Chrome 84, você pode se inscrever hoje mesmo e adicionar os tokens aos manifestos HTML e AppCache. À medida que o público do seu app da Web faz upgrade para o Chrome 84, os tokens que você já adicionou entram em vigor.
Depois de adicionar um token ao manifesto do AppCache, acesse about://appcache-internals
para confirmar se sua instância local do Chrome (versão 84 ou mais recente) associou corretamente o token de teste de origem às entradas em cache do manifesto. Se o teste de origem for reconhecido, você vai encontrar um campo com Token Expires: Tue Apr 06 2021...
nessa página, associado ao seu manifesto:

Teste antes da remoção
Recomendamos que você migre do AppCache assim que possível. Se você quiser testar a remoção do AppCache nos seus web apps, use a flag about://flags/#app-cache
para simular a remoção. Essa flag está disponível a partir do Chrome 84.
Estratégias de migração
Os service workers, que são amplamente aceitos nos navegadores atuais, oferecem uma alternativa à experiência off-line fornecida pelo AppCache.
Fornecemos um polyfill que usa um service worker para replicar algumas funcionalidades do AppCache, mas não toda a interface. Em particular, ele não substitui a interface window.applicationCache
nem os eventos relacionados do AppCache.
Para casos mais complexos, bibliotecas como o Workbox oferecem uma maneira fácil de criar um service worker moderno para seu app da Web.
Service workers e AppCache são mutuamente exclusivos
Ao trabalhar na sua estratégia de migração, lembre-se de que o Chrome vai desativar a funcionalidade do AppCache em qualquer página carregada sob o controle de um service worker. Em outras palavras, assim que você implanta um service worker que controla uma determinada página, não é mais possível usar o AppCache nela.
Por isso, recomendamos que você não tente migrar para service workers parte por parte. Seria um erro implantar um service worker que contenha apenas parte da sua lógica de cache. Não é possível usar o AppCache para "preencher as lacunas".
Da mesma forma, se você implantar um service worker antes da remoção do AppCache e descobrir que precisa reverter para a implementação anterior do AppCache, cancele o registro desse service worker. Enquanto houver um service worker registrado no escopo de uma determinada página, o AppCache não será usado.
A história multiplataforma
Recomendamos que você entre em contato com um fornecedor de navegador específico se quiser mais informações sobre os planos de remoção do AppCache.
Firefox em todas as plataformas
O Firefox descontinuou o AppCache na versão 44 (setembro de 2015) e removeu o suporte para ele nas versões Beta e Nightly em setembro de 2019.
Safari no iOS e macOS
O Safari descontinuou o AppCache no início de 2018.
Chrome no iOS
O Chrome para iOS é um caso especial, já que usa um mecanismo de navegador diferente do Chrome em outras plataformas: o WKWebView. No momento, os service workers não são compatíveis com apps iOS que usam WKWebView, e o anúncio da remoção do AppCache do Chrome não aborda a disponibilidade do AppCache no Chrome para iOS. Lembre-se disso se você souber que seu web app tem um público-alvo significativo no Chrome para iOS.
WebViews do Android
Alguns desenvolvedores de aplicativos Android usam o WebView do Chrome para mostrar conteúdo da Web e também podem usar o AppCache. No entanto, não é possível ativar um teste de origem para um WebView. Por isso, o Chrome WebView vai oferecer suporte ao AppCache sem um teste de origem até a remoção final, prevista para o Chrome 90.
Saiba mais
Confira alguns recursos para desenvolvedores que estão migrando do AppCache para service workers.
Artigos
- Service Workers: uma introdução
- O ciclo de vida do service worker
- Treinamento sobre Progressive Web Apps
- Confiabilidade da rede
Ferramentas
- Polyfill do AppCache
- Workbox
- PWA Builder (link em inglês)
Receber ajuda
Se você tiver um problema ao usar uma ferramenta específica, abra um problema no repositório do GitHub dela.
Faça uma pergunta geral sobre a migração do AppCache no Stack Overflow usando a tag html5-appcache
.
Se você encontrar um bug relacionado à remoção do AppCache do Chrome, informe o problema usando o rastreador de problemas do Chromium.
Imagem principal com base em Smithsonian Institution Archives, Acc. 11-007, Box 020, Image No. MNH-4477.