Configurar uma extensão instalada externamente para atualizar automaticamente

Este artigo se aplica a extensões instaladas externamente; ou seja, extensões que são distribuídas por meio de uma abordagem diferente do Partner Center; consulte Maneiras alternativas de distribuir uma extensão. Este artigo não se aplica a extensões que você publica usando o dashboard do desenvolvedor do Partner Center. Para essa abordagem de distribuição, consulte Atualizar uma extensão do Microsoft Edge.

A cada poucas horas, o Microsoft Edge verifica se cada extensão ou aplicativo instalado tem uma URL de atualização. Para especificar uma URL de atualização para sua extensão, use o update_url campo no manifesto. O update_url campo no manifesto aponta para um local que pode concluir uma verificação de marca. Para cada update_url, essa URL envia solicitações de arquivos XML de manifesto atualizados. Se o arquivo XML de manifesto de atualização listar uma extensão ou versão mais recente do aplicativo, o Microsoft Edge baixará e instalará a versão mais recente. O mesmo processo funciona para atualizações manuais, em que o novo .crx arquivo deve ser assinado com a mesma chave privada da versão instalada atualmente.

Para manter a privacidade do usuário, o Microsoft Edge não envia cabeçalhos Cookie com solicitações de manifesto de atualização automática e ignora todos Set-Cookie os cabeçalhos nas respostas a essas solicitações.

Quando você define sua extensão para atualizar automaticamente nos computadores dos usuários, ela compartilha os seguintes benefícios com o Microsoft Edge:

  • Incorpore correções de bugs e segurança.
  • Adicione novos recursos ou aprimoramentos de desempenho.
  • Melhorar a interface do usuário.

Suas extensões são hospedadas em Complementos do Microsoft Edge e você pode atualizar sua extensão usando o mesmo mecanismo do Microsoft Edge. Você não controla o mecanismo de atualização.

(Anteriormente, havia suporte para extensões não baseadas em loja. Além disso, anteriormente, você atualizava os binários nativos e a extensão ao mesmo tempo.)

Importante

Tenha cuidado ao atualizar extensões que dependem de binários nativos.

URL de atualização

Se você hospedar sua própria extensão ou aplicativo, deverá adicionar o update_url campo ao arquivo manifest.json . O trecho de código a seguir mostra um exemplo do update_url campo:

{
  "name": "My extension",
  ...
  "update_url": "http://contoso.com/mytestextension/updates.xml",
  ...
}

Atualizar manifesto

O manifesto atualizado retornado pelo servidor deve ser um documento XML; Por exemplo:

<?xml version='1.0' encoding='UTF-8'?>
<gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'>
  <app appid='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'>
    <updatecheck codebase='http://contoso.com/mytestextension/mte_v2.crx' version='2.0' />
  </app>
</gupdate>

O arquivo XML de manifesto atualizado define os seguintes atributos:

Atributo Detalhes
appid A ID da extensão é gerada com base em um hash da chave pública. Para localizar a ID de uma extensão, abra o Microsoft Edge e consulte edge://extensions.
codebase Uma URL para o .crx arquivo.
version Esse valor de atributo é usado pelo Microsoft Edge para determinar se ele deve baixar o .crx arquivo especificado por codebase. Deve corresponder ao valor de version no manifest.json arquivo do .crx arquivo.

O arquivo XML de manifesto de atualização pode conter informações sobre várias extensões, incluindo vários <app> elementos.

Testar

O Microsoft Edge verifica automaticamente se há atualizações de extensões a cada poucas horas. Para atualizar as extensões imediatamente, vá para edge://extensions, ative a alternância do modo Desenvolvedor e clique no botão Atualizar .

Uso avançado: parâmetros de solicitação

O mecanismo básico para atualizar usando parâmetros é simples. Para atualizar automaticamente sua extensão:

  1. Carregue o arquivo XML estático em seu servidor Web, como o Apache.
  2. Atualize o arquivo XML à medida que lança novas versões de suas extensões.

Aproveite o fato de que alguns parâmetros adicionados à solicitação de manifesto de atualização indicam a extensão ID e version. Você pode usar o mesmo update URL para todas as suas extensões, em vez de um arquivo XML estático. Para usar o mesmo update URL para todas as suas extensões, aponte para uma URL que execute o código dinâmico do lado do servidor que teste os parâmetros.

O exemplo a seguir demonstra o formato dos parâmetros de solicitação da URL de atualização:

?x={extension_data}

Neste exemplo, {extension_data} é uma cadeia de caracteres codificada como URL que usa o formato a seguir.

id={id}&v={version}

Por exemplo, as duas extensões a seguir apontam para a mesma URL http://contoso.com/extension_updates.phpde atualização.

  • Extensão 1
    • ID: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    • URL de atualização: http://contoso.com/extension_updates.php
    • Versão: 1.1
  • Extensão 2
    • ID: bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
    • URL de atualização: http://contoso.com/extension_updates.php
    • Versão: 0.4

Os exemplos a seguir são solicitações para atualizar cada extensão.

http://contoso.com/extension_updates.php?x=id%3Daaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa%26v%3D1.1
http://contoso.com/extension_updates.php?x=id%3Dbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb%26v%3D0.4

Você também pode listar várias extensões em uma única solicitação para cada URL de atualização exclusiva. O exemplo a seguir mescla as solicitações anteriores em uma única solicitação:

http://contoso.com/extension_updates.php?x=id%3Daaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa%26v%3D1.1&x=id%3Dbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb%26v%3D0.4

Se você enviar uma única solicitação e o número de extensões instaladas que usam a mesma URL de atualização for muito longo, a verificação de atualização marcará mais GET solicitações. Uma GET URL de solicitação é muito longa se tiver aproximadamente 2.000 caracteres.

Em uma versão futura, em vez de emitir várias GET solicitações, uma única POST solicitação pode ser emitida, com os parâmetros de solicitação no POST corpo.

Uso avançado: versão mínima do navegador

À medida que novas APIs são lançadas para o sistema de extensões do Microsoft Edge, talvez você queira lançar uma versão atualizada de sua extensão ou aplicativo que funcione apenas com versões mais recentes do Microsoft Edge. Quando o Microsoft Edge é atualizado automaticamente, pode levar alguns dias até que a maioria dos usuários atualize para essa nova versão.

Para garantir que uma atualização específica se aplique apenas às versões atuais ou mais recentes do Microsoft Edge que sejam atuais ou mais recentes do que uma versão específica, adicione o atributo no manifesto prodversionmin de atualização.

Por exemplo, no código a seguir, o prodversionmin valor do atributo de 3.0.193.0 especifica que seu aplicativo é atualizado automaticamente para a versão 2.0 somente quando o usuário está executando o Microsoft Edge 3.0.193.0 ou versões mais recentes:

<?xml version='1.0' encoding='UTF-8'?>
<gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'>
  <app appid='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'>
    <updatecheck codebase='http://contoso.com/mytestextension/mte_v2.crx' version='2.0' prodversionmin='3.0.193.0' />
  </app>
</gupdate>

Confira também

Observação

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Google e usadas de acordo com os termos descritos na Licença Creative Commons Atribuição 4.0 Internacional. A página original é encontrada aqui.

Licença Creative Commons Este trabalho está licenciado sob uma Licença Creative Commons Atribuição 4.0 Internacional.