chrome.contentSettings

refresh date: 2026-09-25 robots: noindex

Beschrijving

Gebruik de chrome.contentSettings API om instellingen te wijzigen die bepalen of websites functies zoals cookies, JavaScript en plug-ins kunnen gebruiken. Meer in het algemeen kun je met contentinstellingen het gedrag van Chrome aanpassen per site in plaats van wereldwijd.

Rechten

contentSettings

Manifest

Je moet het recht contentSettings definiëren in het manifest van je extensie om de API te kunnen gebruiken. Voorbeeld:

{
  "name": "My extension",
  ...
  "permissions": [
    "contentSettings"
  ],
  ...
}

Patronen voor contentinstellingen

Je kunt patronen gebruiken om aan te geven op welke websites elke contentinstelling van toepassing is. https://*.youtube.com/* geeft bijvoorbeeld youtube.com en alle subdomeinen aan. De syntaxis voor patronen voor contentinstellingen is hetzelfde als voor overeenkomstpatronen, met een paar verschillen:

  • Voor http-, https- en ftp-URL's moet het pad een wildcard (/*) zijn. Voor file-URL's moet het pad volledig zijn gespecificeerd en mag het geen wildcards bevatten.
  • In tegenstelling tot overeenkomstpatronen kunnen patronen voor contentinstellingen een poortnummer bevatten. Als er een poortnummer is opgegeven, komt het patroon alleen overeen met websites met die poort. Als er geen poortnummer is opgegeven, komt het patroon overeen met alle poorten.

Patroonprioriteit

Als er meer dan één regel voor contentinstellingen van toepassing is op een bepaalde site, krijgt de regel met het specifiekere patroon voorrang.

De volgende patronen zijn bijvoorbeeld geordend op prioriteit:

  1. https://www.example.com/*
  2. https://*.example.com/* (komt overeen met example.com en alle subdomeinen)
  3. <all_urls> (komt overeen met elke URL)

Er zijn 3 soorten jokertekens die bepalen hoe specifiek een patroon is:

  • Jokertekens in de poort (bijvoorbeeld https://www.example.com:*/*)
  • Jokertekens in het schema (bijvoorbeeld *://www.example.com:123/*)
  • Jokertekens in de hostnaam (bijvoorbeeld https://*.example.com:123/*)

Als een patroon in een bepaald deel specifieker is dan een ander patroon, maar in een ander deel minder specifiek, worden de verschillende delen in de volgende volgorde gecontroleerd: hostnaam, schema, poort. De volgende patronen zijn bijvoorbeeld geordend op prioriteit:

  1. https://www.example.com:*/* Hiermee worden de hostnaam en het schema aangegeven.
  2. *:/www.example.com:123/* Niet zo hoog, omdat de hostnaam wel wordt vermeld, maar het schema niet.
  3. https://*.example.com:123/* Lager, omdat de poort en het schema wel worden gespecificeerd, maar er een jokerteken in de hostnaam staat.

Primaire en secundaire patronen

De URL waarmee rekening wordt gehouden bij de beslissing welke contentinstelling moet worden toegepast, is afhankelijk van het contenttype. Voor contentSettings.notifications zijn de instellingen bijvoorbeeld gebaseerd op de URL die wordt getoond in de omnibox. Deze URL wordt de primaire URL genoemd.

Voor sommige contenttypen kunnen extra URL's worden gebruikt. Of een site bijvoorbeeld een contentSettings.cookies mag instellen, wordt bepaald op basis van de URL van het HTTP-verzoek (in dit geval de primaire URL) en de URL die wordt getoond in de omnibox (de secundaire URL).

Als meerdere regels primaire en secundaire patronen hebben, krijgt de regel met het specifiekere primaire patroon voorrang. Als meerdere regels hetzelfde primaire patroon hebben, krijgt de regel met het specifiekere secundaire patroon voorrang. De volgende lijst met primaire/secundaire patroonparen is bijvoorbeeld geordend op prioriteit:

PrioriteitPrimair patroonSecundair patroon
1https://www.moose.com/*,https://www.wombat.com/*
2https://www.moose.com/*,<all_urls>
3<all_urls>,https://www.wombat.com/*
4<all_urls>,<all_urls>

Bron-ID's

Met bron-ID's kun je contentinstellingen invoeren voor specifieke subtypes van een contenttype. Op dit moment is het enige contenttype dat bron-ID's ondersteunt contentSettings.plugins, waarbij een bron-ID een specifieke plug-in identificeert. Als je contentinstellingen toepast, worden eerst de instellingen voor de specifieke plug-in gecheckt. Als er geen instellingen worden gevonden voor de specifieke plug-in, worden de algemene contentinstellingen voor plug-ins gecheckt.

Als een regel voor contentinstellingen bijvoorbeeld de resource-ID adobe-flash-player en het patroon <all_urls> heeft, krijgt deze voorrang op een regel zonder resource-ID en het patroon https://www.example.com/*, zelfs als dat patroon specifieker is.

Je kunt een lijst met bron-ID's voor een contenttype krijgen door de methode contentSettings.ContentSetting.getResourceIdentifiers aan te roepen. De geretourneerde lijst kan veranderen met de set geïnstalleerde plug-ins op de computer van de gebruiker, maar Chrome probeert de ID's stabiel te houden tijdens plug-inupdates.

Voorbeelden

Als je deze API wilt proberen, installeer je het voorbeeld van de contentSettings API uit de repository chrome-extension-samples.

Typen

AutoVerifyContentSetting

Chrome 113 of hoger

Enum

allow

"block"

CameraContentSetting

Chrome 46+

Enum

allow

"block"

"ask"

ClipboardContentSetting

Chrome 121+

Enum

allow

"block"

"ask"

ContentSetting

Eigenschappen

  • wissen

    ongeldig

    Promise

    Wis alle regels voor contentinstellingen die door deze extensie zijn ingesteld.

    De functie clear ziet er zo uit:

    (details: object, callback?: function) => {...}

    • details

      object

      • bereik

        Bereik optioneel

        Waar de instelling moet worden gewist (standaard: normaal).

    • callback

      functie optioneel

      De parameter callback ziet er zo uit:

      () => void

    • returns

      Promise<void>

      Chrome 96+

      Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.

  • get

    ongeldig

    Promise

    Haalt de huidige contentinstelling op voor een bepaald paar URL's.

    De functie get ziet er zo uit:

    (details: object, callback?: function) => {...}

    • details

      object

      • incognito

        booleaans optioneel

        Of de contentinstellingen voor een incognitosessie moeten worden gecontroleerd. (standaard false)

      • primaryUrl

        tekenreeks

        De primaire URL waarvoor de contentinstelling moet worden opgehaald. De betekenis van een primaire URL is afhankelijk van het contenttype.

      • resourceIdentifier

        Een specifiekere ID van het type content waarvoor de instellingen moeten worden opgehaald.

      • secondaryUrl

        tekenreeks optioneel

        De secundaire URL waarvoor de contentinstelling moet worden opgehaald. De standaardwaarde is de primaire URL. De betekenis van een secundaire URL is afhankelijk van het contenttype. Niet alle contenttypen gebruiken secundaire URL's.

    • callback

      functie optioneel

      De parameter callback ziet er zo uit:

      (details: object) => void

      • details

        object

        • instelling

          D

          De contentinstelling. Bekijk de beschrijving van de afzonderlijke ContentSetting-objecten voor de mogelijke waarden.

    • returns

      Promise<object>

      Chrome 96+

      Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.

  • getResourceIdentifiers

    ongeldig

    Promise

    De functie getResourceIdentifiers ziet er zo uit:

    (callback?: function) => {...}

    • callback

      functie optioneel

      De parameter callback ziet er zo uit:

      (resourceIdentifiers?: ResourceIdentifier[]) => void

      • resourceIdentifiers

        ResourceIdentifier[] optioneel

        Een lijst met resource-ID's voor dit contenttype of undefined als dit contenttype geen resource-ID's gebruikt.

    • returns
      Chrome 96+

      Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.

  • set

    ongeldig

    Promise

    Past een nieuwe regel voor contentinstellingen toe.

    De functie set ziet er zo uit:

    (details: object, callback?: function) => {...}

    • details

      object

      • primaryPattern

        tekenreeks

        Het patroon voor de primaire URL. Ga naar Patronen voor contentinstellingen voor meer informatie over de indeling van een patroon.

      • resourceIdentifier

        De resource-ID voor het contenttype.

      • bereik

        Bereik optioneel

        Waar je de instelling instelt (standaard: normaal).

      • secondaryPattern

        tekenreeks optioneel

        Het patroon voor de secundaire URL. Standaard worden alle URL's gematcht. Ga naar Patronen voor contentinstellingen voor meer informatie over de indeling van een patroon.

      • instelling

        alle

        De instelling die door deze regel wordt toegepast. Bekijk de beschrijving van de afzonderlijke ContentSetting-objecten voor de mogelijke waarden.

    • callback

      functie optioneel

      De parameter callback ziet er zo uit:

      () => void

    • returns

      Promise<void>

      Chrome 96+

      Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.

CookiesContentSetting

Chrome 44+

Enum

allow

"block"

session_only

FullscreenContentSetting

Chrome 44+

Waarde

allow

ImagesContentSetting

Chrome 44+

Enum

allow

"block"

JavascriptContentSetting

Chrome 44+

Enum

allow

"block"

LocationContentSetting

Chrome 44+

Enum

allow

"block"

"ask"

MicrophoneContentSetting

Chrome 46+

Enum

allow

"block"

"ask"

MouselockContentSetting

Chrome 44+

Waarde

allow

MultipleAutomaticDownloadsContentSetting

Chrome 44+

Enum

allow

"block"

"ask"

NotificationsContentSetting

Chrome 44+

Enum

allow

"block"

"ask"

PluginsContentSetting

Chrome 44+

Waarde

"block"

PopupsContentSetting

Chrome 44+

Enum

allow

"block"

PpapiBrokerContentSetting

Chrome 44+

Waarde

"block"

ResourceIdentifier

Het enige contenttype dat resource-ID's gebruikt, is contentSettings.plugins. Ga naar Resource-ID's voor meer informatie.

Eigenschappen

  • beschrijving

    tekenreeks optioneel

    Een door mensen leesbare beschrijving van de faciliteit.

  • id

    tekenreeks

    De bron-ID voor het gegeven contenttype.

Scope

Chrome 44+

Het bereik van de ContentSetting. Een van de volgende: regular: instelling voor een normaal profiel (die wordt overgenomen door het incognitoprofiel als deze niet ergens anders wordt overschreven), incognito\_session\_only: instelling voor een incognitoprofiel die alleen kan worden ingesteld tijdens een incognitosessie en wordt verwijderd als de incognitosessie wordt beëindigd (overschrijft normale instellingen).

Enum

"regular"

"incognito_session_only"

SoundContentSetting

Chrome 141 of hoger

Enum

allow

"block"

Eigenschappen

automaticDownloads

Of sites automatisch meerdere bestanden mogen downloaden. Een van de volgende: allow: Toestaan dat sites automatisch meerdere bestanden downloaden, block: Niet toestaan dat sites automatisch meerdere bestanden downloaden, ask: Vragen wanneer een site automatisch bestanden wil downloaden na het eerste bestand. De standaardwaarde is ask. De primaire URL is de URL van het frame op het hoogste niveau. De secundaire URL wordt niet gebruikt.

autoVerify

Chrome 113 of hoger

Of sites de Private State Tokens API mogen gebruiken. Een van de volgende: allow: Toestaan dat sites de Private State Tokens API gebruiken, block: Voorkomen dat sites de Private State Tokens API gebruiken. De standaardwaarde is allow. Als je set() aanroept, moet het primaire URL-patroon <all_urls> zijn. De secundaire URL wordt niet gebruikt.

camera

Chrome 46+

Of sites toegang tot de camera mogen krijgen. Een van de volgende: allow: Sites toegang geven tot de camera, block: Sites geen toegang geven tot de camera, ask: Vragen wanneer een site toegang tot de camera wil. De standaardwaarde is ask. De primaire URL is de URL van het document dat om cameratoegang heeft gevraagd. De secundaire URL wordt niet gebruikt. OPMERKING: De instelling Toestaan is niet geldig als beide patronen '<all_urls>' zijn.

clipboard

Chrome 121 of hoger

Of sites toegang mogen krijgen tot het klembord via geavanceerde functies van de Async Clipboard API. Geavanceerde mogelijkheden omvatten alles behalve het schrijven van ingebouwde indelingen na een gebruikersactivatie, zoals de mogelijkheid om te lezen, de mogelijkheid om aangepaste indelingen te schrijven en de mogelijkheid om te schrijven zonder gebruikersactivatie. Een van de volgende: allow: Toestaan dat sites geavanceerde klembordfuncties gebruiken, block: Niet toestaan dat sites geavanceerde klembordfuncties gebruiken, ask: Vragen wanneer een site geavanceerde klembordfuncties wil gebruiken. De standaardwaarde is ask. De primaire URL is de URL van het document dat toegang tot het klembord heeft gevraagd. De secundaire URL wordt niet gebruikt.

cookies

Of websites cookies en andere lokale gegevens mogen instellen. Een van de volgende: allow: Cookies accepteren, block: Cookies blokkeren, session\_only: Cookies alleen accepteren voor de huidige sessie. De standaardwaarde is allow. De primaire URL is de URL die de oorsprong van de cookie vertegenwoordigt. De secundaire URL is de URL van het frame op het hoogste niveau.

fullscreen

Beëindigd. Heeft geen effect meer. Rechten voor volledig scherm worden nu automatisch toegekend voor alle sites. De waarde is altijd allow.

images

Of afbeeldingen moeten worden getoond. Een van de volgende: allow: Afbeeldingen tonen, block: Geen afbeeldingen tonen. De standaardwaarde is allow. De primaire URL is de URL van het frame op het hoogste niveau. De secundaire URL is de URL van de afbeelding.

javascript

Of JavaScript moet worden uitgevoerd. Een van de volgende: allow: JavaScript uitvoeren, block: JavaScript niet uitvoeren. De standaardwaarde is allow. De primaire URL is de URL van het frame op het hoogste niveau. De secundaire URL wordt niet gebruikt.

location

Of geolocatie is toegestaan. Een van de volgende: allow: Toestaan dat sites je fysieke locatie volgen, block: Niet toestaan dat sites je fysieke locatie volgen, ask: Vragen voordat sites je fysieke locatie mogen volgen. De standaardwaarde is ask. De primaire URL is de URL van het document dat locatiegegevens heeft aangevraagd. De secundaire URL is de URL van het frame op het hoogste niveau (dat al dan niet verschilt van de aanvragende URL).

microphone

Chrome 46+

Of sites toegang tot de microfoon mogen krijgen. Een van de volgende: allow: Sites toegang geven tot de microfoon, block: Sites geen toegang geven tot de microfoon, ask: Vragen wanneer een site toegang wil tot de microfoon. De standaardwaarde is ask. De primaire URL is de URL van het document dat om toegang tot de microfoon heeft gevraagd. De secundaire URL wordt niet gebruikt. OPMERKING: De instelling Toestaan is niet geldig als beide patronen '<all_urls>' zijn.

mouselock

Beëindigd. Heeft geen effect meer. Het recht voor muisvergrendeling wordt nu automatisch toegekend voor alle sites. De waarde is altijd allow.

notifications

Of sites bureaubladmeldingen mogen tonen. Een van de volgende: allow: Toestaan dat sites bureaubladmeldingen tonen, block: Niet toestaan dat sites bureaubladmeldingen tonen, ask: Vragen wanneer een site bureaubladmeldingen wil tonen. De standaardwaarde is ask. De primaire URL is de URL van het document dat de melding wil tonen. De secundaire URL wordt niet gebruikt.

plugins

Beëindigd. Omdat de ondersteuning voor Flash is verwijderd in Chrome 88, heeft dit recht geen effect meer. De waarde is altijd block. Gesprekken naar set() en clear() worden genegeerd.

popups

Of sites pop-ups mogen tonen. Een van de volgende: allow: Toestaan dat sites pop-ups tonen, block: Niet toestaan dat sites pop-ups tonen. De standaardwaarde is block. De primaire URL is de URL van het frame op het hoogste niveau. De secundaire URL wordt niet gebruikt.

unsandboxedPlugins

Beëindigd. Eerder bepaalde dit beleid of sites plug-ins mochten uitvoeren zonder sandbox. Nu het Flash-brokerproces is verwijderd in Chrome 88, heeft dit recht geen effect meer. De waarde is altijd block. Gesprekken naar set() en clear() worden genegeerd.