Alternatieve uitbreidingsdistributieopties

Alle Chrome-extensies moeten rechtstreeks vanuit de Chrome Web Store worden gedistribueerd of via de hieronder beschreven mechanismen. Het niet naleven van een van deze distributiemethoden vormt een schending van het Chrome-extensiebeleid en kan ertoe leiden dat de extensie en/of de software die deze distribueert, wordt gemarkeerd als ongewenste software .

Normaal gesproken installeren gebruikers extensies vanuit de Chrome Web Store, maar soms wilt u misschien dat een extensie op een andere manier wordt geïnstalleerd. Hier zijn twee typische gevallen:

  • Een extensie is gekoppeld aan andere software en de extensie moet worden geïnstalleerd wanneer de gebruiker die andere software installeert.
  • Een netwerkbeheerder wil dezelfde extensies in de hele organisatie installeren.

Een extensie die niet vanuit de Chrome Web Store is geïnstalleerd, wordt een externe extensie genoemd. Voor ontwikkelaars die een extensie willen distribueren als onderdeel van het installatieproces voor andere software, of voor netwerkbeheerders die een extensie binnen hun organisatie willen distribueren, ondersteunt Google Chrome de volgende installatiemethoden voor extensies:

  • Een voorkeuren-JSON-bestand gebruiken (alleen voor Mac OS X en Linux)
  • Het Windows-register gebruiken (alleen voor Windows)

Beide manieren ondersteunen het installeren van een extensie die wordt gehost op een update_URL . Op Windows en Mac moet de update_URL verwijzen naar de Chrome Web Store waar de extensie moet worden gehost.

Het voorkeurenbestand op Linux kan verwijzen naar uw eigen server waarop u de extensie host . Het JSON-bestand met voorkeuren ondersteunt ook het installeren van een extensie vanuit een .crx extensiebestand op de Linux-computer van de gebruiker.

Voordat je begint

Publiceer eerst de extensie in de Chrome Web Store, of verpak een .crx bestand en zorg ervoor dat deze succesvol wordt geïnstalleerd.

Als u installeert vanaf een update-URL , zorg er dan voor dat de extensie op de juiste manier wordt gehost .

Voordat u het voorkeurenbestand of het register bewerkt, noteert u het volgende:

  • De beoogde locatie van het .crx bestand van de extensie, of de update-URL van waaruit het wordt aangeboden
  • De versie van de extensie (uit het manifestbestand of de chrome://extensions- pagina)
  • De ID van de extensie (van de chrome://extensions- pagina wanneer u de ingepakte extensie heeft geladen)

In de volgende voorbeelden wordt ervan uitgegaan dat de versie 1.0 is en dat de ID aaaaaaaaaabbbbbbbbbbcccccccccc is.

Een voorkeurenbestand gebruiken

  1. Als u installeert vanuit een bestand op Linux, moet u het .crx extensiebestand beschikbaar maken voor de machine waarop u de extensie wilt installeren. (Kopieer het naar een lokale map of naar een netwerkshare, bijvoorbeeld \\server\share\extension.crx of /home/share/extension.crx .)
  2. Maak een bestand met de volgende naam in een van de onderstaande mappen: aaaaaaaaaabbbbbbbbbbcccccccccc.json , waarbij de bestandsnaam (zonder de extensie) overeenkomt met de ID van uw extensie. De locatie is afhankelijk van het besturingssysteem.

    Mac OS X:

    Voor een specifieke gebruiker: ~USERNAME/Library/Application Support/Google/Chrome/External Extensions/ Voor alle gebruikers: /Library/Application Support/Google/Chrome/External Extensions/

    Het externe extensiebestand voor alle gebruikers is alleen-lezen als elke map in het pad eigendom is van de gebruiker root , de groep admin of wheel heeft en niet voor iedereen beschrijfbaar is. Het pad moet ook vrij zijn van symbolische links. Deze beperkingen voorkomen dat een gebruiker zonder rechten ervoor zorgt dat extensies voor alle gebruikers worden geïnstalleerd. Zie probleemoplossing voor meer informatie.

    Linux:

    /opt/google/chrome/extensions/

    /usr/share/google-chrome/extensions/

    Opmerking: Gebruik indien nodig chmod om ervoor te zorgen dat de aaaaaaaaaabbbbbbbbbbcccccccccc.json -bestanden voor iedereen leesbaar zijn.

  3. Alleen Linux: als u vanuit een bestand installeert, specificeert u de locatie en versie van de extensie met de velden genaamd "external_crx" en "external_version" in het hierboven gemaakte bestand.

    • Voorbeeld:
    • json { "external_crx": "/home/share/extension.crx", "external_version": "1.0" }
    • Opmerking: u moet aan elk \` character in the location. For example, \server\share\extension.crx zou \` character in the location. For example, "\\server\share\extension.crx"` would be .
    • Als u installeert vanaf een update-URL, geef dan de update-URL van de extensie op met de veldnaam "external_update_url".
    • Voorbeeld van installatie vanuit een lokaal .crx-bestand (alleen Linux):
    • json { "external_update_url": "http://myhost.com/mytestextension/updates.xml" }
    • Voorbeeld van installatie vanuit de Chrome Webstore (Mac en Linux):
    • json { "external_update_url": "https://clients2.google.com/service/update2/crx" }
    • Als u de extensie alleen voor bepaalde browserlandinstellingen wilt installeren, kunt u de ondersteunde landinstellingen vermelden in de veldnaam "supported_locale". De landinstelling kan de bovenliggende landinstelling specificeren, zoals "en", in dit geval wordt de extensie geïnstalleerd voor alle Engelse landinstellingen zoals "en-US", "en-GB", enz. Als een andere browserlandinstelling is geselecteerd die niet wordt ondersteund door de extensie , worden de externe extensies verwijderd. Als de lijst "supported_locales" ontbreekt, wordt de extensie voor elke landinstelling geïnstalleerd.
    • Voorbeeld:
    • json { "external_update_url": "https://clients2.google.com/service/update2/crx", "supported_locales": [ "en", "fr", "de" ] }
  4. Sla het JSON-bestand op.

  5. Start Google Chrome en ga naar chrome://extensions ; u zou de extensie vermeld moeten zien.

Problemen met Mac OS-machtigingen oplossen

Op Mac OS worden de externe extensiebestanden voor alle gebruikers alleen gelezen als de machtigingen voor het bestandssysteem voorkomen dat gebruikers zonder rechten deze wijzigen. Als u geen externe extensies ziet geïnstalleerd wanneer Chrome wordt gestart, is er mogelijk een machtigingsprobleem met de voorkeurenbestanden voor externe extensies. Volg deze stappen om te zien of dit het probleem is:

  1. Start het Console-programma. Je kunt het vinden onder /Applicaties/Hulpprogramma's/Console.
  2. Als het meest linkse pictogram in de console 'Loglijst weergeven' zegt, klikt u op dat pictogram. Links verschijnt een tweede kolom.
  3. Klik op 'Consoleberichten' in het linkerdeelvenster.
  4. Zoek naar de string. Kan externe extensies niet lezen . Als er een probleem is met het lezen van de externe extensiebestanden, ziet u een foutmelding. Zoek naar een ander foutbericht direct erboven, dat het probleem zou moeten verklaren. Als u bijvoorbeeld de volgende foutmelding ziet: 'Pad /Bibliotheek/Applicatieondersteuning/Google/Chrome is eigendom van de verkeerde groep', moet u chgrp of het dialoogvenster 'Info ophalen' van de Finder gebruiken om de groepseigenaar van de map te wijzigen in de beheerdersgroep. .
  5. Nadat u het probleem heeft opgelost, start u Chrome opnieuw. Test of de externe extensie nu is geïnstalleerd. Het is mogelijk dat één machtigingsfout ervoor zorgt dat Chrome geen tweede fout detecteert. Als de externe extensie niet is geïnstalleerd, herhaalt u deze stappen totdat u geen fout ziet in de Console-applicatie.

Het Windows-register gebruiken

  1. Zoek of maak de volgende sleutel in het register:
    • 32-bits Windows: HKEY_LOCAL_MACHINE\Software\Google\Chrome\Extensions
    • 64-bit Windows: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Google\Chrome\Extensions
  2. Maak een nieuwe sleutel (map) onder de Extensiesleutel met dezelfde naam als de ID van uw extensie (bijvoorbeeld aaaaaaaaaabbbbbbbbbbcccccccccc ).
  3. Maak in uw extensiesleutel een eigenschap 'update_url' en stel deze in op de waarde: 'https://clients2.google.com/service/update2/crx' (dit verwijst naar de crx van uw extensie in de Chrome Web Store) :

    {
      "update_url": "https://clients2.google.com/service/update2/crx"
    }
    
  4. Start de browser en ga naar chrome://extensions ; u zou de extensie vermeld moeten zien.

Updaten en verwijderen

Google Chrome scant de metagegevens in de voorkeuren en het register telkens wanneer de browser wordt gestart, en brengt de nodige wijzigingen aan in de geïnstalleerde externe extensies.

Om uw extensie bij te werken naar een nieuwe versie, werkt u het bestand bij en werkt u vervolgens de versie bij in de voorkeuren of het register.

Als u uw extensie wilt verwijderen (bijvoorbeeld als uw software is verwijderd), verwijdert u uw voorkeurenbestand (aaaaaaaaaabbbbbbbbbbcccccccccc.json) of de metagegevens uit het register.

FAQ

In dit gedeelte worden veelgestelde vragen over externe extensies beantwoord.

Wordt de methodologie voor het toestaan ​​van een "pre-installatie" vanaf M33 nog steeds ondersteund door Google Chrome?

Ja, maar alleen als installatie vanaf een Chrome Web Store update_URL , niet vanaf een lokaal bestandspad.

Kan ik een URL opgeven als pad naar de externe extensie?

Ja, gebruik het JSON-voorkeurenbestand voor Mac OS X en Linux; het register voor Windows. De extensie moet worden gehost zoals uitgelegd in hosting . Gebruik in het voorkeurenbestand de eigenschap 'external_update_url' om naar een updatemanifest te verwijzen met de URL voor uw extensie. Gebruik in het Windows-register de eigenschap "update_url".

Wat zijn enkele veelvoorkomende fouten bij het installeren met het voorkeurenbestand?

  • Niet dezelfde id/versie opgeven als die vermeld in de .crx
  • Het .json-bestand ( aaaaaaaaaabbbbbbbbbbcccccccccc.json ) bevindt zich op de verkeerde locatie of de opgegeven ID komt niet overeen met de extensie-ID.
  • Syntaxisfout in JSON-bestand (vergeten om vermeldingen te scheiden met een komma of ergens een komma achter te laten)
  • JSON-bestandsinvoer verwijst naar het verkeerde pad naar de .crx (of het opgegeven pad maar geen bestandsnaam)
  • Backslashes in het UNC-pad zijn niet geëscaped (bijvoorbeeld: "\\server\share\file" is onjuist; het moet "\\\\server\\share\\extension" zijn)
  • Machtigingsproblemen op een netwerkshare

Wat zijn enkele veelvoorkomende fouten bij het installeren met het register?

  • Niet dezelfde id/versie opgeven als die vermeld in de Chrome Web Store
  • Sleutel gemaakt op de verkeerde locatie in het register
  • Registerinvoer wijst naar het verkeerde pad naar het .crx bestand in de Chrome Web Store
  • Machtigingsproblemen op een netwerkshare

Hoe update ik mijn systeemeigen binaire bestanden en extensies stapsgewijs?

Voorheen, toen extensies buiten de winkel werden ondersteund, was het mogelijk om de native binaire bestanden en de extensie in lock-step te laten bijwerken. Extensies die in de Chrome Web Store worden gehost, worden echter bijgewerkt via het Chrome-updatemechanisme, waarover ontwikkelaars geen controle hebben. Ontwikkelaars van extensies moeten voorzichtig zijn met het updaten van extensies die afhankelijk zijn van het native binaire bestand (bijvoorbeeld oudere extensies die NPAPI gebruiken).

Wat moet ik doen als de gebruiker de extensie verwijdert?

Als de gebruiker de extensie via de gebruikersinterface verwijdert, wordt deze niet langer bij elke opstart geïnstalleerd of bijgewerkt. Met andere woorden: de externe extensie staat op de blokkeerlijst.

Hoe kom ik van de blokkeerlijst af?

Als de gebruiker uw extensie verwijdert, dient u die beslissing te respecteren. Als u (de ontwikkelaar) uw extensie echter per ongeluk via de gebruikersinterface hebt verwijderd, kunt u de blokkeerlijsttag verwijderen door de extensie normaal via de gebruikersinterface te installeren en vervolgens te verwijderen.