Uma maneira melhor de atualizar seus apps da Web

Dan Murphy
Dan Murphy
Dibyajyoti Pal
Dibyajyoti Pal

Publicado em: 21 de janeiro de 2026

A partir do Chrome 144, o processo de atualização de apps da Web instaláveis que têm um manifesto de app da Web foi simplificado, tornando-o mais determinístico, previsível e eficiente. Esta postagem explica a abordagem atual e as mudanças que fizemos para melhorar.

A abordagem anterior (antes do Chrome 144)

Antes do Chrome 144, os aplicativos da Web não tinham um evento específico para acionar atualizações de forma proativa. Em vez disso, as atualizações podem ocorrer quando os desenvolvedores modificam o manifesto do app ou os ícones associados. O processo de atualização começa quando um user agent recupera um manifesto usando um link de manifesto, o que geralmente acontece quando um usuário visita um site ou inicia um app (com esse manifesto vinculado). Para determinar se uma atualização é necessária, o sistema compara o manifesto e os ícones atuais com o estado gravado anteriormente. Esse procedimento era muito exigente em termos de recursos, já que sempre exigia o download de ícones da rede para realizar uma comparação de bitmap.

Para reduzir a tensão do servidor causada pelos downloads de ícones, o Chrome implementou uma limitação para restringir essas verificações a uma vez por dia por app, mas o consumo total de largura de banda permaneceu alto. Além disso, restringir as verificações a uma vez por dia causa inconsistências durante o desenvolvimento e o teste, além de impedir que os desenvolvedores ofereçam soluções confiáveis aos usuários que não receberam atualizações.

Com essa abordagem, os desenvolvedores precisavam lidar com complexidades ao implementar mudanças sensíveis à segurança, como atualizações no nome ou ícone de um app, geralmente chamadas de mudanças na identidade do app. Como os apps da Web não têm uma autoridade central como o Google Play para analisar atualizações, essas modificações precisam ser apresentadas claramente aos usuários para confirmação. No entanto, determinar o momento mais adequado para pedir aos usuários essas mudanças continuou sendo um desafio.

As iterações anteriores da caixa de diálogo de atualização também causavam confusão com frequência ao afirmar que os ícones haviam mudado quando pareciam visualmente idênticos para o usuário. Esse problema surgiu da dependência de comparações diretas de pixels, que muitas vezes sinalizavam diferenças insignificantes. Embora algumas variações tenham resultado de ajustes intencionais do desenvolvedor, muitas foram causadas por CDNs que recodificam imagens de forma dinâmica. Esse acionamento excessivo e frequente da caixa de diálogo de confirmação acabou levando à desativação das atualizações de ícones no Chrome 91.

Para resolver isso no Chrome para Android, um limite de diferença visual foi introduzido há vários anos. Isso garante que a confirmação do usuário só seja solicitada se as mudanças no ícone forem significativas. Esse refinamento permitiu que a atualização de ícones fosse restabelecida no Android, embora o recurso tenha permanecido desativado para o Chrome no computador.

Um alerta mostrando a mudança no ícone e uma mensagem avisando o usuário com botões para confirmar a mudança ou desinstalar o app.
Computador (Chrome 91 e versões mais recentes)
Um alerta para dispositivos móveis mostrando a mudança no ícone e uma mensagem avisando o usuário com botões para confirmar a mudança ou desinstalar o app.
Android (atual)

Restrições e metas para mudanças nas atualizações de apps da Web

Os seguintes objetivos orientaram o desenvolvimento do novo processo de atualização:

  • Preserve as expectativas do usuário:como a identidade de um app está intrinsecamente vinculada à origem dele, o nome e o ícone não podem ser alterados sem a aprovação explícita do usuário.
  • Garantir a consistência funcional:os aplicativos precisam ser atualizados o máximo possível para todos os usuários, garantindo uma funcionalidade consistente.
  • Ofereça UX e caixas de diálogo previsíveis:os desenvolvedores precisam conseguir antecipar facilmente quando os usuários vão encontrar solicitações de interface relacionadas a atualizações de nomes ou ícones de apps.
  • Otimizar o uso da rede:o mecanismo de atualização precisa minimizar o tráfego de dados desnecessário.

O que mudou no Chrome 144?

As atualizações de nome e ícone agora são opcionais

Antes, os usuários enfrentavam uma caixa de diálogo invasiva que exigia a desinstalação do app ou a aceitação imediata das mudanças de ícone e nome. Isso foi substituído por uma sugestão mais fácil de usar, acessada em um menu de três pontos expandido. Ao selecionar essa opção, os usuários podem ignorar completamente essas mudanças de identidade, se preferirem.

Embora a maioria das atualizações de manifesto seja aplicada imediatamente, os ícones e nomes de apps, considerados membros sensíveis à segurança, são armazenados separadamente. Assim, os usuários podem analisar e aplicar essas mudanças específicas quando quiserem.

O menu mostrando a opção "Analisar atualização do app".

Ao clicar em Analisar atualização do app, a caixa de diálogo revisada é mostrada. O título muda de acordo com os elementos que estão sendo atualizados.

A caixa de diálogo para computador pedindo que o usuário revise as atualizações do ícone e do nome.

Os ícones não são baixados se o campo de ícones não tiver mudanças.

Os ícones agora são considerados inalterados se o campo icons no manifesto permanecer igual à última versão aplicada. Com essa nova lógica, o Chrome evita o download de ícones para comparação visual, tratando os URLs de ícones como Cache-Control:immutable. Para acionar uma atualização de ícone, os desenvolvedores agora precisam modificar os metadados ou o URL do ícone.

Remoção da limitação de atualização

Como o Chrome não baixa mais ícones sempre que encontra um manifesto de um aplicativo instalado, a restrição anterior, que limitava as verificações de atualização a uma vez por dia, foi eliminada. Agora os desenvolvedores podem contar com a atualização imediata para todos os membros não sensíveis à segurança.

Processar pequenas variações de ícones em várias plataformas

Para melhorar a experiência do usuário, o Chrome agora aplica automaticamente atualizações de ícones que mostram menos de 10% de diferença em uma comparação pixel a pixel. Isso garante que pequenas variações, como as causadas pela recodificação da CDN, não acionem uma caixa de diálogo de atualização confusa para o usuário.

Essa permissão é limitada a uma vez por dia para evitar possíveis abusos. Se outras mudanças ocorrerem dentro dessa janela, o ícone será tratado como uma atualização padrão, e o usuário vai precisar confirmar a mudança.

Exemplo de atualização de ícone e nome

{
  "name": "Example App",
  "short_name": "App",
  "id": "https://www.example-app.com/",
  "start_url": "https://www.example-app.com/index.html",
  "scope": "https://www.example-app.com/",
  "icons": [
    {
      "src": "https://www.example-app.com/img/app.png",
      "sizes": "512x512",
      "type": "image/png",
      "purpose": "any"
    }
  ],

  ... other attributes omitted ...
}

Mudar o URL do ícone garante que o usuário veja uma caixa de diálogo de atualização para mudar o ícone.

{
  "name": "Example App",
  "short_name": "App",
  "id": "https://www.example-app.com/",
  "start_url": "https://www.example-app.com/index.html",
  "scope": "https://www.example-app.com/",
  "icons": [
    {
      "src": "https://www.example-app.com/img/app-NEW-URL.png",
      "sizes": "512x512",
      "type": "image/png",
      "purpose": "any"
    }
  ],

  ... other attributes omitted ...
}