Opções alternativas de distribuição de extensões

Todas as extensões do Chrome precisam ser distribuídas diretamente da Chrome Web Store ou usando o mecanismos descritos abaixo. O não cumprimento de um desses métodos de distribuição constitui um violação da política da extensão do Chrome e pode resultar na violação da extensão e/ou do software distribuindo-o para ser sinalizado como software indesejado.

Normalmente, os usuários instalam extensões da Chrome Web Store, mas às vezes você pode querer uma extensão seja instalada por outros meios. Veja dois casos típicos:

  • Uma extensão está associada a algum outro software e a extensão deve ser instalada sempre que o usuário instalar esse outro software.
  • Um administrador de rede quer instalar as mesmas extensões em toda a organização.

Uma extensão que não é instalada pela Chrome Web Store é conhecida como extensão externa. Para desenvolvedores que desejam distribuir uma extensão como parte do processo de instalação para outros ou para administradores de rede que desejam distribuir uma extensão em toda a organização, O Google Chrome é compatível com os seguintes métodos de instalação de extensões:

  • Ao usar um arquivo JSON de preferências (somente para Mac OS X e Linux)
  • Como usar o Registro do Windows (somente para Windows)

As duas maneiras oferecem suporte à instalação de uma extensão hospedada em um update_URL. No Windows e no Mac, O update_URL precisa apontar para a Chrome Web Store em que a extensão precisa estar hospedada.

O arquivo de preferências no Linux pode apontar para o servidor onde você está hospedando a extensão. O arquivo JSON de preferências também oferece suporte à instalação de uma extensão de um arquivo de extensão .crx na no computador Linux do usuário.

Antes de começar

Primeiro, publique a extensão na Chrome Web Store ou empacote um arquivo .crx e faça a instalação.

Se você instalar a partir de um URL de atualização, verifique se a extensão está hospedada corretamente.

Antes de editar o arquivo de preferências ou o registro, anote o seguinte:

  • O local pretendido do arquivo .crx da extensão ou o URL de atualização de onde ela é
  • A versão da extensão (do arquivo de manifesto ou da página chrome://extensions)
  • O ID da extensão (da página chrome://extensions quando você carregou o pacote )

Os exemplos a seguir presumem que a versão é 1.0 e o ID é aaaaaaaaaabbbbbbbbbbcccccccccc.

Usando um arquivo de preferências

  1. Se você estiver instalando a partir de um arquivo no Linux, disponibilize o arquivo de extensão .crx para o máquina em que você quer instalar a extensão. (Copie-o para um diretório local ou para uma rede por exemplo, \\server\share\extension.crx ou /home/share/extension.crx.
  2. Crie um arquivo com o seguinte nome em uma das pastas listadas abaixo: aaaaaaaaaabbbbbbbbbbcccccccccc.json, em que o nome do arquivo (sem a extensão) corresponde a ID da sua extensão. A localização depende do sistema operacional.

    Mac OS X:

    Para um usuário específico: ~USERNAME/Library/Application Support/Google/Chrome/External Extensions/ Para todos os usuários: /Library/Application Support/Google/Chrome/External Extensions/

    O arquivo de extensão externa para todos os usuários é somente leitura se todos os diretórios no caminho forem de propriedade pelo usuário root, tem o grupo admin ou wheel e não é gravável em todo o mundo. O caminho deve não contenham links simbólicos. Essas restrições impedem que um usuário sem privilégios cause que as extensões sejam instaladas para todos os usuários. Para mais detalhes, consulte a solução de problemas.

    Linux:

    /opt/google/chrome/extensions/

    /usr/share/google-chrome/extensions/

    Observação:use chmod, se necessário, para garantir que o aaaaaaaaaabbbbbbbbbbcccccccccc.json são legíveis.

  3. Somente Linux: se você estiver instalando a partir de um arquivo, especifique o local e a versão da extensão com campos chamados "external_crx" e "external_version" no arquivo criado acima.

    • Exemplo:
    • json { "external_crx": "/home/share/extension.crx", "external_version": "1.0" }
    • Observação:você precisa fazer o escape de cada \` character in the location. For example,\server\share\extension.crxwould be"\\server\share\extension.crx"`.
    • Se você estiver instalando a partir de um URL de atualização, especifique o URL de atualização da extensão com o nome do campo. "external_update_url".
    • Exemplo de instalação a partir do arquivo .crx local (somente Linux):
    • json { "external_update_url": "http://myhost.com/mytestextension/updates.xml" }
    • Exemplo de instalação a partir da Chrome Web Store (Mac e Linux):
    • json { "external_update_url": "https://clients2.google.com/service/update2/crx" }
    • Se quiser instalar a extensão apenas para algumas localidades do navegador, liste as extensões localidades no nome do campo "supported_locale". A localidade pode especificar a localidade mãe como "en", neste caso, a extensão será instalada para todas as localidades do inglês, como "en-US", "en-GB" etc. Se for selecionada outra localidade do navegador que não seja suportada pela extensão, o externo serão desinstaladas. Se "supported_locales" lista estiver ausente, a extensão será instalado para qualquer localidade.
    • Exemplo:
    • json { "external_update_url": "https://clients2.google.com/service/update2/crx", "supported_locales": [ "en", "fr", "de" ] }
  4. Salve o arquivo JSON.

  5. Inicie o Google Chrome e acesse chrome://extensions. você verá a extensão listada.

.

Solução de problemas de permissões do Mac OS

No Mac OS, os arquivos de extensões externas para todos os usuários são lidos apenas se as permissões do sistema de arquivos impedir que usuários sem privilégios façam alterações. Se você não vir extensões externas instaladas quando O Chrome foi iniciado. Pode haver um problema de permissões nas preferências de extensões externas . Para verificar se esse é o problema, siga estas etapas:

  1. Inicie o programa do Console. Você pode encontrá-lo em /Aplicativos/Utilitários/Console.
  2. Se o ícone mais à esquerda no console for "Mostrar lista de registros", clique nele. Uma segunda coluna aparece à esquerda.
  3. Clique em "Mensagens do console" no painel esquerdo.
  4. Procure a string Não é possível ler extensões externas. Se houver um problema na leitura de extensões externas, você verá uma mensagem de erro. Procure outra mensagem de erro diretamente acima dele, o que deve explicar o problema. Por exemplo, se o seguinte erro for exibido: "Path /Library/Application Support/Google/Chrome é propriedade do grupo errado", você precisa usar chgrp ou a caixa de diálogo "Receber informações" do Finder para mudar o proprietário do grupo do diretório para o Grupo de administradores.
  5. Depois de corrigir o problema, reinicie o Chrome. Teste se a extensão externa está instalada. Ela é possível que um erro de permissão impeça que o Chrome detecte um segundo erro. Se o A extensão externa não foi instalada, repita essas etapas até que não veja um erro no console do Cloud.

Como usar o Registro do Windows

  1. Encontre ou crie a seguinte chave no registro:
    • Windows de 32 bits: HKEY_LOCAL_MACHINE\Software\Google\Chrome\Extensions
    • Windows de 64 bits: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Google\Chrome\Extensions
  2. Crie uma nova chave (pasta) na chave Extensões com o mesmo nome do ID do (por exemplo, aaaaaaaaaabbbbbbbbbbcccccccccc).
  3. Na sua chave de extensão, crie uma propriedade "update_url" e defina-a com o valor: "https://clients2.google.com/service/update2/crx" (aponta para o crx da sua extensão na Chrome Web Store):

    {
      "update_url": "https://clients2.google.com/service/update2/crx"
    }
    
  4. Inicie o navegador e acesse chrome://extensions. você verá a extensão listada.

Atualização e desinstalação

O Google Chrome verifica as entradas de metadados nas preferências e no registro sempre que o navegador é iniciado e faz as alterações necessárias nas extensões externas instaladas.

Para atualizar a sua extensão para uma nova versão, atualize o arquivo e, em seguida, atualize a versão no preferências ou registro.

Para desinstalar a extensão (por exemplo, se o software for desinstalado), remova a preferência ou os metadados do registro.

Perguntas frequentes

Esta seção responde a perguntas comuns sobre extensões externas.

A metodologia para permitir uma "pré-instalação" ainda serão compatíveis com o Google Chrome a partir da versão M33 em diante?

Sim, mas apenas como uma instalação de um update_URL da Chrome Web Store, não de um caminho de arquivo local.

Posso especificar um URL como caminho para a extensão externa?

Sim, use o arquivo JSON de preferências para Mac OS X e Linux. o registro do Windows. A precisa ser hospedada, conforme explicado em Hospedagem. No arquivo de preferências, use o método "external_update_url" para apontar para um manifesto de atualização que tem o URL do seu . No registro do Windows, use o comando "update_url" .

Quais são alguns erros comuns ao instalar o arquivo de preferências?

  • Não especificar o mesmo ID/versão listado em .crx
  • O arquivo .json (aaaaaaaaaabbbbbbbbbbcccccccccc.json) está no local incorreto ou o ID especificado não corresponde ao ID de extensão.
  • Erro de sintaxe no arquivo JSON (esquecer de separar as entradas com vírgulas ou deixar uma vírgula à direita em algum lugar)
  • A entrada do arquivo JSON aponta para o caminho errado para .crx (ou o caminho especificado, mas sem nome de arquivo)
  • Barras invertidas no caminho UNC sem escape (por exemplo, "\\server\share\file" está errado; deveria ser "\\\\server\\share\\extension").
  • Problemas de permissões em um compartilhamento de rede

Quais são alguns erros comuns ao instalar com o registro?

  • Não especificar o mesmo ID/versão listado na Chrome Web Store
  • A chave foi criada no local errado no registro
  • A entrada de registro aponta para o caminho incorreto para o arquivo .crx na Chrome Web Store
  • Problemas de permissões em um compartilhamento de rede

Como atualizo meus binários nativos e minha extensão em etapas?

Antes, quando extensões externas à loja eram compatíveis, era possível ter os binários nativos e a extensão será atualizada na etapa de bloqueio. No entanto, as extensões hospedadas na Chrome Web Store não atualizados pelo mecanismo de atualização do Chrome, que os desenvolvedores não controlam. Os desenvolvedores de extensões precisam tenha cuidado ao atualizar extensões que dependem do binário nativo (por exemplo, extensões legadas usando NPAPI).

E se o usuário desinstalar a extensão?

Se o usuário desinstalar a extensão pela interface, ela não será mais instalada nem atualizada no cada inicialização. Em outras palavras, a extensão externa está na lista de bloqueio.

Como saí da lista de bloqueio?

Se o usuário desinstalar sua extensão, você deverá respeitar essa decisão. No entanto, se você (a desenvolvedor) tiver desinstalado sua extensão acidentalmente pela interface, você poderá remover a tag de lista de bloqueio instalando a extensão normalmente pela interface e desinstalando-a.