Este guia detalha o fluxo completo de atualização de extensões, abrangendo o processo de atualização padrão, substituições manuais, APIs para desenvolvedores e o impacto significativo das políticas empresariais.
O ciclo de atualização padrão
O Chrome foi projetado para atualizar automaticamente as extensões instaladas para as versões mais recentes, garantindo que os usuários tenham acesso a novos recursos e correções de segurança. Por padrão, o Chrome verifica se há atualizações de extensões na inicialização e a cada poucas horas.
Um aspecto fundamental do processo de atualização é que uma atualização só é instalada quando a extensão é considerada inativa. Para que uma extensão fique ociosa, os componentes dela não podem estar em uso ativo. No contexto do Manifest V3, isso significa principalmente que o service worker da extensão não está em execução. O service worker foi projetado para ser orientado a eventos e é encerrado após um período de inatividade. Além disso, qualquer página de extensão aberta, como painel lateral, pop-up ou página de opções, impede que a extensão seja considerada inativa. Um script de conteúdo ativo não afeta se uma extensão é considerada inativa ou não.
Esse requisito de inatividade pode causar atrasos nas atualizações de extensões ativas com frequência. Se um service worker de extensão for constantemente acionado por eventos, ele nunca vai atingir um estado ocioso, e a atualização será adiada até que o navegador seja reiniciado.
Monitorar a distribuição de atualizações de extensões
Para saber quantos usuários estão usando a versão mais recente da sua extensão, use o painel de análise da Chrome Web Store. Acesse o Painel de controle do desenvolvedor da Chrome Web Store e selecione uma das suas extensões publicadas. Na barra de navegação lateral, acesse Analytics -> Usuários e role a tela para baixo até o Gráfico de usuários diários por item. Aqui você pode conferir quantos usuários já estão na versão mais recente.
Atualizar extensões manualmente
Se os usuários quiserem receber as atualizações mais recentes imediatamente, o Chrome oferece um mecanismo de atualização manual. Essa também é uma ferramenta útil ao testar atualizações.
Os usuários podem forçar uma atualização de todas as extensões instaladas seguindo estas etapas:
- Acesse chrome://extensions.
- Ative o Modo de desenvolvedor usando o botão de alternância no canto superior direito.
- Clique no botão Atualizar que aparece.
Essa ação faz com que o Chrome busque imediatamente as versões mais recentes de todas as extensões instaladas na Chrome Web Store.
Verificar atualizações de uma extensão
A API chrome.runtime oferece ferramentas para que as extensões interajam com o mecanismo de atualização.
Verificar se há atualizações sob demanda
A função chrome.runtime.requestUpdateCheck() permite que uma extensão inicie uma verificação de atualização de forma programática. Isso é especialmente útil para extensões que têm uma dependência crítica de um serviço de back-end e precisam garantir que estão executando a versão compatível mais recente.
Quando essa função é chamada, o Chrome consulta a Chrome Web Store para verificar se há uma nova versão e faz o download dela, se disponível. O callback da função recebe um status indicando o resultado da verificação.
Detectar atualizações disponíveis
O evento chrome.runtime.onUpdateAvailable é disparado quando uma atualização é baixada e está pronta para ser instalada. Esse evento fornece o novo número da versão nos detalhes. Ao detectar esse evento, uma extensão pode determinar que uma atualização está disponível e considerar ficar inativa ou causar uma recarga usando chrome.runtime.reload() quando apropriado.
O código a seguir mostra um padrão de implementação básico:
Em casos excepcionais, é possível forçar o navegador a verificar se há uma atualização de extensão usando chrome.runtime.requestUpdateCheck():
É importante observar que chamadas frequentes para requestUpdateCheck() serão limitadas pelo navegador. Use essa função apenas quando souber que uma atualização está disponível. Por exemplo, quando um back-end atualizado exige uma versão mais recente da extensão.
Controlar atualizações com políticas corporativas
Em ambientes empresariais gerenciados, o fluxo padrão de atualização de extensões está sujeito às políticas definidas pelos administradores de sistema. Essas políticas podem substituir o comportamento padrão para reforçar a segurança e a estabilidade.
Forçar a instalação
A política ExtensionInstallForcelist permite que os administradores instalem extensões específicas para os usuários de forma silenciosa. Os usuários não podem desativar ou desinstalar extensões instaladas com essa política.
Fixar versão da extensão
No entanto, as empresas geralmente precisam controlar a versão exata de uma extensão usada para garantir a compatibilidade com outros softwares. Para isso, os administradores podem fixar uma extensão em uma versão específica. Isso é feito no Google Admin Console, em que um administrador pode selecionar a versão necessária para uma unidade organizacional. Quando uma extensão é fixada, o Chrome não a atualiza para além da versão especificada.
Substituir a origem da atualização
As empresas podem hospedar as próprias versões bifurcadas de extensões por motivos de segurança ou personalização. o Isso força o Chrome a buscar a extensão e as atualizações dela em um URL especificado, em vez da Chrome Web Store.
Definir uma versão mínima do Chrome
É possível especificar uma minimum_chrome_version no arquivo de manifesto da extensão. Isso garante que a extensão seja instalada apenas em versões do Chrome que oferecem suporte às APIs usadas.
Para novas instalações, a Chrome Web Store vai impedir que usuários de versões mais antigas do Chrome instalem a extensão, mostrando uma mensagem "Não compatível". Para usuários atuais, se uma atualização de uma extensão aumentar o minimum_chrome_version
para uma versão mais recente do que a versão do Chrome instalada pelo usuário, ele vai parar de receber atualizações dessa extensão sem aviso prévio. Os desenvolvedores precisam estar cientes disso e informar os usuários se uma parte significativa da base deles puder ser afetada.