Opzioni di distribuzione alternative delle estensioni

Tutte le estensioni di Chrome devono essere distribuite direttamente dal Chrome Web Store o utilizzando i meccanismi descritti di seguito. Il mancato rispetto di uno di questi metodi di distribuzione rappresenta una violazione delle norme relative alle estensioni di Chrome e potrebbe comportare la segnalazione dell'estensione e/o della distribuzione del software come software indesiderato.

In genere, gli utenti installano estensioni dal Chrome Web Store, ma a volte potresti voler installare un'estensione in altri modi. Ecco due casi tipici:

  • Un'estensione è associata ad altri software, che devono essere installate ogni volta che l'utente installa l'altro software.
  • Un amministratore di rete vuole installare le stesse estensioni in tutta l'organizzazione.

Un'estensione che non è installata dal Chrome Web Store è nota come estensione esterna. Per gli sviluppatori che desiderano distribuire un'estensione nell'ambito del processo di installazione di altri software o per gli amministratori di rete che desiderano distribuire un'estensione nell'intera organizzazione, Google Chrome supporta i seguenti metodi di installazione delle estensioni:

  • Utilizzo di un file JSON delle preferenze (solo per Mac OS X e Linux)
  • Utilizzare il Registro di sistema di Windows (solo per Windows)

Entrambi i modi supportano l'installazione di un'estensione ospitata su un update_URL. Su Windows e Mac, update_URL deve rimandare al Chrome Web Store, dove deve essere ospitata l'estensione.

Il file delle preferenze su Linux può rimandare al server su cui è ospitata l'estensione. Il file JSON delle preferenze supporta anche l'installazione di un'estensione da un file dell'estensione .crx sul computer Linux dell'utente.

Prima di iniziare

Innanzitutto, publish l'estensione nel Chrome Web Store oppure pacchettizza un file .crx e assicurati che venga installato correttamente.

Se esegui l'installazione da un URL di aggiornamento, assicurati che l'estensione sia ospitata correttamente.

Prima di modificare il file delle preferenze o il Registro di sistema, tieni presente quanto segue:

  • La posizione prevista del file .crx dell'estensione o l'URL di aggiornamento da cui viene pubblicato
  • La versione dell'estensione (dal file manifest o dalla pagina chrome://extensions)
  • L'ID dell'estensione (dalla pagina chrome://extensions dopo il caricamento dell'estensione compatta)

I seguenti esempi presuppongono che la versione sia 1.0 e che l'ID sia aaaaaaaaaabbbbbbbbbbcccccccccc.

Utilizzare un file delle preferenze

  1. Se stai eseguendo l'installazione da un file su Linux, rendi il file dell'estensione .crx disponibile sul computer su cui vuoi installare l'estensione. Copialo in una directory locale o in una condivisione di rete, ad esempio \\server\share\extension.crx o /home/share/extension.crx.
  2. Crea un file con il nome seguente in una delle cartelle elencate di seguito: aaaaaaaaaabbbbbbbbbbcccccccccc.json, dove il nome del file (senza l'estensione) corrisponde all'ID dell'estensione. La località dipende dal sistema operativo.

    Mac OS X:

    Per un utente specifico: ~USERNAME/Library/Application Support/Google/Chrome/External Extensions/ Per tutti gli utenti: /Library/Application Support/Google/Chrome/External Extensions/

    Il file dell'estensione esterna per tutti gli utenti viene letto solo se ogni directory nel percorso è di proprietà dell'utente root, ha il gruppo admin o wheel e non è accessibile in scrittura. Inoltre, il percorso deve essere privo di collegamenti simbolici. Queste restrizioni impediscono a un utente senza privilegi di causare l'installazione di estensioni per tutti gli utenti. Per maggiori dettagli, vedi la risoluzione dei problemi.

    Linux:

    /opt/google/chrome/extensions/

    /usr/share/google-chrome/extensions/

    Nota: se necessario, utilizza chmod per assicurarti che i file aaaaaaaaaabbbbbbbbbbcccccccccc.json siano leggibili.

  3. Solo Linux: se esegui l'installazione da un file, specifica il percorso e la versione dell'estensione utilizzando i campi denominati "external_crx" e "external_version" nel file creato in precedenza.

    • Esempio:
    • json { "external_crx": "/home/share/extension.crx", "external_version": "1.0" }
    • Nota: devi eseguire l'escape di ogni \` character in the location. For example,\server\share\extension.crxwould be"\\server\share\extension.crx"`.
    • Se l'installazione viene eseguita da un URL di aggiornamento, specifica l'URL di aggiornamento dell'estensione con il nome campo "external_update_url".
    • Esempio di installazione da un file .crx locale (solo Linux):
    • json { "external_update_url": "http://myhost.com/mytestextension/updates.xml" }
    • Esempio di installazione dal Chrome Web Store (Mac e Linux):
    • json { "external_update_url": "https://clients2.google.com/service/update2/crx" }
    • Se vuoi installare l'estensione solo per alcune impostazioni internazionali del browser, puoi elencare le lingue supportate nel nome campo "supported_locale". Le impostazioni internazionali possono specificare le impostazioni internazionali principali come "en". In questo caso, l'estensione verrà installata per tutte le lingue inglesi, ad esempio "en-US", "en-GB" e così via. Se vengono selezionate altre impostazioni internazionali del browser non supportate dall'estensione, le estensioni esterne verranno disinstallate. Se l'elenco "supported_locales" non è presente, l'estensione verrà installata per qualsiasi lingua.
    • Esempio:
    • json { "external_update_url": "https://clients2.google.com/service/update2/crx", "supported_locales": [ "en", "fr", "de" ] }
  4. Salva il file JSON.

  5. Avvia Google Chrome e vai all'indirizzo chrome://extensions; dovresti vedere l'estensione nell'elenco.

Risoluzione dei problemi relativi alle autorizzazioni Mac OS

Su Mac OS, i file delle estensioni esterne per tutti gli utenti vengono letti solo se le autorizzazioni del file system impediscono agli utenti senza privilegi di modificarlo. Se non vedi le estensioni esterne installate all'avvio di Chrome, potrebbe esserci un problema di autorizzazioni con i file delle preferenze delle estensioni esterne. Per verificare se il problema è questo:

  1. Avvia il programma della console. Puoi trovarlo in /Applicazioni/Utilità/Console.
  2. Se l'icona all'estrema sinistra nella console indica "Mostra elenco log", fai clic su di essa. Viene visualizzata una seconda colonna a sinistra.
  3. Fai clic su "Messaggi della console" nel riquadro a sinistra.
  4. Cerca la stringa Can not read external extensions. In caso di problemi durante la lettura dei file delle estensioni esterne, verrà visualizzato un messaggio di errore. Sopra di esso c'è un altro messaggio di errore che dovrebbe spiegare il problema. Ad esempio, se viene visualizzato il seguente errore: "Percorso /Libreria/Application Support/Google/Chrome è di proprietà del gruppo sbagliato", devi utilizzare chgrp o la finestra di dialogo Ottieni informazioni del Finder per modificare il proprietario del gruppo della directory impostandolo sul gruppo Amministratore.
  5. Dopo aver risolto il problema, riavvia Chrome. Verifica che l'estensione esterna sia installata. È possibile che un errore di autorizzazione impedisca a Chrome di rilevare un secondo errore. Se l'estensione esterna non è stata installata, ripeti questi passaggi finché non viene visualizzato un errore nell'applicazione Console.

Utilizzo del Registro di sistema di Windows

  1. Trova o crea la seguente chiave nel Registro di sistema:
    • Windows a 32 bit: HKEY_LOCAL_MACHINE\Software\Google\Chrome\Extensions
    • Windows a 64 bit: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Google\Chrome\Extensions
  2. Crea una nuova chiave (cartella) nella chiave Estensioni con lo stesso nome dell'ID dell'estensione (ad esempio, aaaaaaaaaabbbbbbbbbbcccccccccc).
  3. Nella chiave dell'estensione, crea una proprietà "update_url" e impostala sul valore: "https://clients2.google.com/service/update2/crx" (rimanda al crx dell'estensione nel Chrome Web Store):

    {
      "update_url": "https://clients2.google.com/service/update2/crx"
    }
    
  4. Avvia il browser e vai all'indirizzo chrome://extensions; dovresti vedere l'estensione nell'elenco.

Aggiornamento e disinstallazione

Google Chrome analizza le voci dei metadati nelle preferenze e nel registro a ogni avvio del browser e apporta le modifiche necessarie alle estensioni esterne installate.

Per aggiornare l'estensione a una nuova versione, aggiorna il file, quindi aggiorna la versione nelle preferenze o nel Registro di sistema.

Per disinstallare l'estensione (ad esempio, se il software è stato disinstallato), rimuovi dal registro il file delle preferenze (aaaaaaaaaabbbbbbbbbbCCCCCC.json) o i metadati.

Domande frequenti

In questa sezione troverai risposte alle domande più comuni sulle estensioni esterne.

La metodologia per consentire la "preinstallazione" sarà ancora supportata da Google Chrome a partire dalla versione M33?

Sì, ma solo come installazione da un update_URL del Chrome Web Store, non da un percorso file locale.

Posso specificare un URL come percorso dell'estensione esterna?

Sì, utilizza il file preferences JSON per Mac OS X e Linux; il registry per Windows. L'estensione deve essere ospitata come spiegato nella sezione di hosting. Nel file delle preferenze, utilizza la proprietà "external_update_url" per indirizzare a un file manifest di aggiornamento contenente l'URL della tua estensione. Nel Registro di sistema di Windows, utilizza la proprietà "update_url".

Quali sono alcuni errori comuni che si verificano durante l'installazione con il file delle preferenze?

  • Non specifichi lo stesso ID/la stessa versione di quello elencato in .crx
  • Il file .json (aaaaaaaaaabbbbbbbbbbcccccccccc.json) si trova nella posizione sbagliata oppure l'ID specificato non corrisponde all'ID estensione.
  • Errore di sintassi nel file JSON (dimenticare di separare le voci con una virgola o lasciare da qualche parte una virgola finale)
  • L'entrata del file JSON rimanda al percorso sbagliato a .crx (o al percorso specificato, ma nessun nome file).
  • Le barre rovesciate nel percorso UNC non sono convertite in caratteri di escape (ad esempio, "\\server\share\file" è errata; dovrebbe essere "\\\\server\\share\\extension")
  • Problemi relativi alle autorizzazioni su una condivisione di rete

Quali sono alcuni errori comuni che si verificano durante l'installazione tramite il Registro di sistema?

  • Non specificare lo stesso ID/versione di quello elencato nel Chrome Web Store
  • Chiave creata nella posizione sbagliata nel Registro di sistema
  • Le voci del Registro di sistema rimandano al percorso sbagliato del file .crx nel Chrome Web Store
  • Problemi relativi alle autorizzazioni su una condivisione di rete

Come faccio ad aggiornare direttamente i miei programmi binari e le mie estensioni nativi?

In precedenza, quando erano supportate le estensioni esterne allo store, era possibile che i programmi binari nativi e l'estensione venissero aggiornati nel passaggio di blocco. Tuttavia, le estensioni ospitate sul Chrome Web Store vengono aggiornate tramite il meccanismo di aggiornamento di Chrome che gli sviluppatori non controllano. Gli sviluppatori di estensioni devono fare attenzione all'aggiornamento delle estensioni che hanno una dipendenza dal programma binario nativo (ad esempio, estensioni legacy che utilizzano NPAPI).

Cosa succede se l'utente disinstalla l'estensione?

Se l'utente disinstalla l'estensione tramite l'interfaccia utente, questa non verrà più installata o aggiornata a ogni avvio. In altre parole, l'estensione esterna è inserita in una lista bloccata.

Come faccio a uscire dalla lista bloccata?

Se l'utente disinstalla l'estensione, devi rispettare questa decisione. Tuttavia, se lo sviluppatore ha disinstallato per errore l'estensione tramite l'interfaccia utente, puoi rimuovere il tag della lista bloccata installando normalmente l'estensione tramite l'interfaccia utente e poi disinstallandola.