Preparação para a remoção do AppCache

Por padrão, o Chrome 85 não vai mais oferecer suporte ao AppCache. A maioria dos desenvolvedores deve migrar do AppCache agora e não esperar mais.

De acordo com os anúncios anteriores, o suporte ao AppCache será removido do Chrome e de outros navegadores baseados no Chromium. Incentivamos os desenvolvedores a migrar do AppCache agora em vez de esperar mais tempo.

Service workers que são amplamente compatíveis com os navegadores atuais, e oferecem uma alternativa ao fornecimento experiência que o AppCache ofereceu. Consulte Estratégias de migração.

Cronograma

Mudanças recentes na programação de lançamentos do Chrome significa que o tempo de execução de algumas dessas etapas pode variar. Tentaremos manter esse cronograma atualizado, mas, neste momento, migre do AppCache o quanto antes, em vez de esperar por marcos específicos.

Uma mensagem de erro ainda existe, mas registra mensagens de aviso desencorajando o uso. Um aviso "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)
"Inverter" o teste de origem começa Chrome 84 (julho de 2020)
Remoção de contextos seguros, exceto para aqueles que aceitaram o teste de origem Chrome 85 (agosto de 2020)
Remoção completa de contextos seguros para todos, com a conclusão do teste de origem 5 de outubro de 2021 (aproximadamente no 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 para uma "reversão" teste de origem para estender a disponibilidade do AppCache para os apps da Web. O teste de origem começará no Chrome 84 (antes da remoção padrão no Chrome 85) e ficará ativo até 5 de outubro de 2021, aproximadamente no Chrome 95. Depois dessa data, o AppCache será totalmente removido para todos, mesmo para quem se inscreveu no teste de origem.

Para participar do "reverso" teste de origem:

  1. Solicite um token para sua origem.
  2. 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 contendo o cabeçalho HTTP Origin-Trial. O cabeçalho de resposta resultante será semelhante a este: Origin-Trial: TOKEN_GOES_HERE
  3. Adicione o mesmo token aos manifestos do AppCache. Para isso, use um novo campo no manifesto, com o formato:
ORIGIN-TRIAL:
TOKEN_GOES_HERE

É necessário que haja uma nova linha entre ORIGIN-TRIAL e seu token.

Confira um exemplo de projeto incorporado abaixo que demonstra como adicionar os tokens de teste de origem corretos aos arquivos index.html e manifest.appcache.

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 páginas HTML que usam o AppCache.
  • Todos os manifestos do AppCache usando o 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 "reverso" do AppCache o teste de origem é especial, porque também é necessário associar um token a cada manifesto do AppCache.

Adicionar o token de teste de origem às 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 se comportarão como se o AppCache não existisse.

Adicionar o token de 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.

Logística e tempo de implantação do teste de origem

Enquanto a opção "reverso" o teste de origem começar oficialmente com o Chrome 84, inscreva-se nele hoje mesmo e adicione os tokens aos seus manifestos HTML e AppCache. À medida que o público-alvo do seu app da Web for atualizado gradualmente para o Chrome 84, todos os tokens que você já tiver adicionado entrarão em vigor.

Depois de adicionar um token ao manifesto do AppCache, acesse about://appcache-internals para confirmar se a 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ê verá um campo com Token Expires: Tue Apr 06 2021... nessa página, associado ao manifesto:

interface about://appcache-internals mostrando um token reconhecido.

Testes 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 apps da Web, use a sinalização about://flags/#app-cache para simular a remoção. Essa sinalização está disponível a partir do Chrome 84.

Estratégias de migração

Os service workers, amplamente compatíveis com os navegadores atuais, oferecem uma alternativa à experiência off-line fornecida pelo AppCache.

Fornecemos um polyfill que usa um service worker para replicar algumas das funcionalidades do AppCache, embora ele não replique toda a interface do AppCache. Em particular, ele não substitui a interface window.applicationCache ou os eventos do AppCache relacionados.

Para casos mais complexos, bibliotecas como a 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 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 nessa página.

Por isso, recomendamos que você não tente migrar para service workers por partes. Seria um erro implantar um service worker que contenha apenas parte da sua lógica de armazenamento em cache. Não é possível recorrer ao 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, vai precisar cancelar o registro desse service worker. Enquanto houver um service worker registrado no escopo de uma determinada página, o AppCache não vai ser usado.

A história em várias plataformas

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 desativou o AppCache na versão 44 (setembro de 2015) e removeu o suporte a ele nas versões Beta e Nightly em setembro de 2019.

Safari no iOS e macOS

O AppCache foi descontinuado no Safari no início de 2018.

Chrome no iOS

O Chrome para iOS é um caso especial, porque usa um mecanismo de navegador diferente do Chrome de outras plataformas: o WKWebView. No momento, os service workers não são compatíveis com apps iOS que usam o WKWebView, e o anúncio de remoção do AppCache do Chrome não abrange a disponibilidade do AppCache no Chrome para iOS. Lembre-se disso caso saiba que seu aplicativo da web tem um público significativo do Google Chrome para iOS.

WebViews do Android

Alguns desenvolvedores de apps Android usam o WebView do Chrome para exibir conteúdo da Web e podem usar o AppCache. No entanto, não é possível ativar um teste de origem para uma WebView. Por isso, o Chrome WebView vai oferecer suporte ao AppCache sem um teste de origem até que a remoção final ocorra, esperada no Chrome 90.

Saiba mais

Confira alguns recursos para desenvolvedores que estão migrando do AppCache para service workers.

Artigos

Ferramentas

Receber ajuda

Se você encontrar um problema ao usar uma ferramenta específica, abra o problema no repositório do GitHub correspondente.

Você pode fazer 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 usando o Issue Tracker do Chromium.

Imagem principal baseada nos Arquivos do Smithsonian Institution, Acc. 11-007, Box 020, imagem no MNH-4477.