Por padrão, o Chrome 85 não terá mais suporte ao AppCache. A maioria dos desenvolvedores precisa migrar do AppCache agora e não esperar mais.
De acordo com os avisos anteriores, a compatibilidade com o AppCache será removida do Chrome e de outros navegadores baseados no Chromium. Incentivamos os desenvolvedores a migrar do AppCache agora mesmo, em vez de esperar mais tempo.
Os service workers, que são amplamente compatíveis com os navegadores atuais, oferecem uma alternativa ao fornecimento da experiência off-line oferecida pelo AppCache. Confira as 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. Tentaremos manter esse cronograma atualizado. No entanto, neste momento, saia 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 que desencorajam o uso. Um recurso de "remoção" 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) |
O teste de origem "reverso" começa | 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 a conclusão do teste de origem | 5 de outubro de 2021 (aproximadamente no Chrome 95) |
Teste de origem
O cronograma lista os dois próximos marcos 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 ampliar a disponibilidade do AppCache nos 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). Quando isso acontecer, o AppCache será totalmente removido para todos, mesmo para quem se inscreveu no teste de origem.
Para participar do teste de origem "reverso", faça o seguinte:
- 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">
- Também é possível configurar 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
- Adicione uma tag
- Adicione o mesmo token aos manifestos do AppCache. Faça isso usando um novo campo no manifesto com o seguinte formato:
ORIGIN-TRIAL:
TOKEN_GOES_HERE
É necessário que haja uma nova linha entre ORIGIN-TRIAL
e seu token.
Confira abaixo um projeto de exemplo incorporado que demonstra a adição dos tokens de teste de origem corretos nos 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 ser associado a:
- Todas as páginas HTML que usam o AppCache.
- Todos os seus 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 páginas HTML. O teste de origem "reverso" 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 páginas HTML ativa a interface window.applicationCache
nos seus apps da Web. As páginas que não estiverem associadas a um token não poderão usar eventos e métodos window.applicationCache
. As páginas sem um token também não conseguem carregar recursos do AppCache. A partir do Chrome 85, eles vão se comportar 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 dentro deles serão ignoradas.
Tempo e logística da implantação do teste de origem
Embora o teste de origem "reverso" comece oficialmente com o Chrome 84, você pode se inscrever para esse teste hoje mesmo e adicionar os tokens aos manifestos HTML e AppCache. Conforme o público-alvo do seu app da Web é atualizado gradualmente para o Chrome 84, todos os tokens já adicionados 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 armazenadas em cache do manifesto. Se o teste de origem for reconhecido, você vai ver um campo com Token Expires: Tue Apr 06 2021...
nessa página, associado ao manifesto:
![A interface about://appcache-internals mostrando um token reconhecido.](https://web.dev/static/articles/appcache-removal/image/aboutappcache-internal-70aedc3c15663.jpg?authuser=5&hl=pt-br)
Testes antes da remoção
Recomendamos que você saia 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, que têm ampla compatibilidade nos 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 não replique toda a interface do AppCache. Em particular, ela não fornece uma substituição para a interface window.applicationCache
ou os eventos AppCache relacionados.
Em casos mais complexos, bibliotecas como a Workbox são 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 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 os 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 usar o AppCache para "preencher as lacunas".
Da mesma forma, se você implantar um service worker antes da remoção do AppCache e depois 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 específico de navegadores se quiser mais informações sobre os planos de remoção do AppCache.
Firefox em todas as plataformas
O Firefox descontinuava o AppCache na versão 44 (setembro de 2015) e removeu o suporte para ele nos builds Beta e Nightly a partir de setembro de 2019.
Safari no iOS e macOS
O Safari descontinuamos o AppCache no início de 2018.
Chrome no iOS
O Chrome para iOS é um caso especial, porque 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 de remoção do AppCache do Chrome não abrange a disponibilidade do AppCache no Chrome para iOS. Tenha isso em mente caso você saiba que seu app da Web tem um público-alvo significativo do Chrome para iOS.
Android WebViews
Alguns desenvolvedores de apps 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 uma WebView. Por isso, o Chrome WebView vai oferecer suporte ao AppCache sem um teste de origem até a remoção final, o que está prevista no Chrome 90.
Saiba mais
Confira alguns recursos para desenvolvedores que estão migrando do AppCache para service workers.
Artigos
- Service Workers: Introdução
- O ciclo de vida do Service Worker
- Treinamento sobre Progressive Web Apps
- Confiabilidade da rede
Ferramentas
- Polyfill do AppCache (em inglês)
- Caixa de trabalho
- Criador de PWA
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
.
Caso encontre um bug relacionado à remoção do AppCache do Chrome, informe-o usando o Issue Tracker do Chromium.
Imagem principal baseada nos Arquivos da Instituição do Smithsonian, Acc. 11-007, Box 020, imagem no MNH-4477.