Rechten declareren

Als je de meeste extensie-API's en -functies wilt gebruiken, moet je de intentie van je extensie definiëren in de rechtenvelden van het manifest. Extensies kunnen de volgende categorieën rechten aanvragen, die worden gespecificeerd met de respectieve manifestsleutels:

"permissions"
Bevat items uit een lijst met bekende tekenreeksen. Wijzigingen kunnen een waarschuwing activeren.
"optional_permissions"
Wordt door de gebruiker verleend tijdens de runtime in plaats van tijdens de installatie.
"content_scripts.matches"
Bevat een of meer overeenkomstpatronen waarmee contentscripts kunnen worden geïnjecteerd in een of meer hosts. Wijzigingen kunnen een waarschuwing activeren.
"host_permissions"
Bevat een of meer overeenkomstpatronen die toegang geven tot een of meer hosts. Wijzigingen kunnen een waarschuwing activeren.
"optional_host_permissions"
Wordt door de gebruiker verleend tijdens de runtime in plaats van tijdens de installatie.

Met rechten kun je de schade beperken als je extensie wordt aangetast door malware. Sommige rechtenwaarschuwingen worden aan gebruikers getoond voor hun toestemming vóór de installatie of tijdens de runtime, zoals beschreven in Rechten met waarschuwingen.

Overweeg optionele rechten te gebruiken als de functionaliteit van je extensie dit toestaat, zodat gebruikers weloverwogen controle hebben over de toegang tot bronnen en gegevens.

Als een API een recht vereist, wordt in de documentatie uitgelegd hoe je dit recht definieert. Ga naar Storage API voor een voorbeeld.

Manifest

Hieronder zie je een voorbeeld van het gedeelte met rechten van een manifest-bestand:

manifest.json:

{
  "name": "Permissions Extension",
  ...
  "permissions": [
    "activeTab",
    "contextMenus",
    "storage"
  ],
  "optional_permissions": [
    "topSites",
  ],
  "host_permissions": [
    "https://www.developer.chrome.com/*"
  ],
  "optional_host_permissions":[
    "https://*/*",
    "http://*/*"
  ],
  ...
  "manifest_version": 3
}

Hostrechten

Met hostrechten kunnen extensies communiceren met de overeenkomstpatronen van de URL. Voor sommige Chrome API's zijn hostrechten vereist naast de eigen API-rechten, die op elke referentiepagina worden beschreven. Hier volgen enkele voorbeelden:

In sommige speciale gevallen zijn hostrechten niet vereist. Dit zijn onder andere:

  • De chrome.tabs API gebruiken om tabbladen te openen en aan te passen, waaronder toegang tot de URL van het tabblad als je het recht tabs hebt.
  • Interactie met de browser via de chrome.debugger API.
  • Toestaan dat een contentscript wordt geïnjecteerd dat is gedeclareerd in het manifest.

Rechten met waarschuwingen

Als een extensie meerdere rechten aanvraagt en veel van deze rechten waarschuwingen tonen bij de installatie, krijgt de gebruiker een lijst met waarschuwingen te zien, zoals in het volgende voorbeeld:

Waarschuwingen voor extensierechten bij installatie

Gebruikers vertrouwen een extensie eerder als er weinig waarschuwingen zijn of als de rechten worden uitgelegd. Overweeg optionele rechten of een minder krachtige API te implementeren om alarmerende waarschuwingen te voorkomen. Ga naar Richtlijnen voor rechtenwaarschuwingen voor best practices voor waarschuwingen. Specifieke waarschuwingen worden vermeld met de rechten waarop ze van toepassing zijn in de referentielijst Rechten.

Als je overeenkomstpatronen toevoegt of wijzigt in de velden "host_permissions" en "content_scripts.matches" van het manifestbestand, wordt er ook een waarschuwing geactiveerd. Ga naar Rechten updaten voor meer informatie.

Toegang geven

Als je extensie moet worden uitgevoerd op file://-URL's of moet werken in de incognitomodus, moeten gebruikers de extensie toegang geven op de detailpagina. Instructies voor het openen van de detailpagina vind je onder Je extensies beheren.

Toegang tot bestand-URL's en incognitopagina's toestaan

  1. Klik met de rechtermuisknop op het extensie-icoon in Chrome.
  2. Kies Extensie beheren.

    Contextmenu voor extensies
    Extensiemenu
  3. Scroll omlaag om toegang tot bestand-URL's of de incognitomodus aan te zetten.

    Bestands-URL's en de incognitomodus toestaan op de detailpagina van de extensie
    Toegang aangezet tot bestands-URL's en de incognitomodus.

Als je wilt weten of de gebruiker toegang heeft gegeven, kun je extension.isAllowedIncognitoAccess() of extension.isAllowedFileSchemeAccess() aanroepen.