Beschrijving
Gebruik de chrome.contentSettings
API om instellingen te wijzigen die bepalen of websites functies zoals cookies, JavaScript en plug-ins mogen gebruiken. Meer in het algemeen kunt u met contentinstellingen het gedrag van Chrome per site aanpassen in plaats van wereldwijd.
Machtigingen
contentSettings
U moet de machtiging "contentSettings"
in het manifest van uw extensie declareren om de API te gebruiken. Bijvoorbeeld:
{
"name": "My extension",
...
"permissions": [
"contentSettings"
],
...
}
Begrippen en gebruik
Patronen voor inhoudsinstellingen
U kunt patronen gebruiken om de websites te specificeren die van invloed zijn op elke contentinstelling. Zo specificeert https://*.youtube.com/*
youtube.com en al zijn subdomeinen. De syntaxis voor contentinstellingspatronen is hetzelfde als voor matchpatronen , met enkele verschillen:
- Voor
http
,https
enftp
-URL's moet het pad een jokerteken (/*
) zijn. Voorfile
-URL's moet het pad volledig worden gespecificeerd en mag het geen jokers bevatten. - In tegenstelling tot matchpatronen kunnen content setting patterns een poortnummer specificeren. Als een poortnummer is opgegeven, matcht het patroon alleen websites met die poort. Als er geen poortnummer is opgegeven, matcht het patroon alle poorten.
Patroonvoorrang
Wanneer er voor een bepaalde site meerdere inhoudsinstellingsregels gelden, heeft de regel met het meest specifieke patroon voorrang.
De volgende patronen zijn bijvoorbeeld geordend op prioriteit:
-
https://www.example.com/*
-
https://*.example.com/*
(komt overeen met example.com en alle subdomeinen) -
<all_urls>
(komt overeen met elke URL)
Er zijn drie soorten jokers 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 het ene onderdeel specifieker is dan een ander patroon, maar in een ander onderdeel minder specifiek, worden de verschillende onderdelen in de volgende volgorde gecontroleerd: hostnaam, schema, poort. De volgende patronen worden bijvoorbeeld op prioriteit gesorteerd:
-
https://www.example.com:*/*
Geeft de hostnaam en het schema op. -
*:/www.example.com:123/*
Niet zo hoog, omdat de hostnaam wel wordt gespecificeerd, maar niet het schema. -
https://*.example.com:123/*
Lager omdat het weliswaar de poort en het schema specificeert, maar er een wildcard in de hostnaam zit.
Primaire en secundaire patronen
De URL die in aanmerking wordt genomen bij het bepalen van de toe te passen contentinstelling, is afhankelijk van het contenttype. Zo zijn de instellingen voor contentSettings.notifications
gebaseerd op de URL die in de omnibox wordt weergegeven. Deze URL wordt de 'primaire' URL genoemd.
Sommige contenttypen kunnen rekening houden met extra URL's. Of een site bijvoorbeeld een contentSettings.cookies
mag instellen, wordt bepaald op basis van de URL van de HTTP-aanvraag (in dit geval de primaire URL) en de URL die in de omnibox wordt weergegeven (de zogenaamde 'secundaire' URL).
Als meerdere regels primaire en secundaire patronen hebben, heeft de regel met het meest specifieke primaire patroon voorrang. Als meerdere regels hetzelfde primaire patroon hebben, heeft de regel met het meest specifieke secundaire patroon voorrang. De volgende lijst met primaire/secundaire patroonparen is bijvoorbeeld gesorteerd op prioriteit:
Voorrang | Primair patroon | Secundair patroon |
---|---|---|
1 | https://www.moose.com/* , | https://www.wombat.com/* |
2 | https://www.moose.com/* , | <all_urls> |
3 | <all_urls> , | https://www.wombat.com/* |
4 | <all_urls> , | <all_urls> |
Secundaire patronen worden niet ondersteund voor de inhoudsinstelling van afbeeldingen.
Resource-identificatiegegevens
Met resource-ID's kunt u inhoudsinstellingen opgeven voor specifieke subtypen van een inhoudstype. Momenteel is contentSettings.plugins
het enige inhoudstype dat resource-ID's ondersteunt. Een resource-ID identificeert een specifieke plugin. Bij het toepassen van inhoudsinstellingen worden eerst de instellingen voor de specifieke plugin gecontroleerd. Als er geen instellingen voor de specifieke plugin worden gevonden, worden de algemene inhoudsinstellingen voor plugins gecontroleerd.
Als een inhoudsinstellingsregel bijvoorbeeld de resource-id adobe-flash-player
en het patroon <all_urls>
heeft, heeft deze voorrang op een regel zonder resource-id en met het patroon https://www.example.com/*
, zelfs als dat patroon specifieker is.
U kunt een lijst met resource-ID's voor een inhoudstype opvragen door de methode contentSettings.ContentSetting.getResourceIdentifiers()
aan te roepen. De geretourneerde lijst kan veranderen afhankelijk van de set geïnstalleerde plugins op de computer van de gebruiker, maar Chrome probeert de ID's stabiel te houden tijdens plugin-updates.
Voorbeelden
Om deze API uit te proberen, installeert u het contentSettings API-voorbeeld uit de chrome-extension-samples repository.
Typen
AutoVerifyContentSetting
Enum
"toestaan" "blok"
CameraContentSetting
Enum
"toestaan" "blok" "vragen"
ClipboardContentSetting
Enum
"toestaan" "blok" "vragen"
ContentSetting
Eigenschappen
- duidelijk
leegte
BelofteWis alle inhoudsinstellingsregels die door deze extensie zijn ingesteld.
De
clear
-functie ziet er als volgt uit:(details: object, callback?: function) => {...}
- details
voorwerp
- domein
Scope optioneel
Waar de instelling moet worden gewist (standaard: normaal).
- terugbellen
functie optioneel
De
callback
ziet er als volgt uit:() => void
- retouren
Belofte<leegte>
Chroom 96+
- krijgen
leegte
BelofteHaalt de huidige inhoudsinstelling op voor een bepaald paar URL's.
De
get
-functie ziet er als volgt uit:(details: object, callback?: function) => {...}
- details
voorwerp
- incognito
boolean optioneel
Of de inhoudsinstellingen voor een incognitosessie moeten worden gecontroleerd. (standaard onwaar)
- primaireUrl
snaar
De primaire URL waarvoor de contentinstelling moet worden opgehaald. De betekenis van een primaire URL is afhankelijk van het contenttype.
- resource-ID
ResourceIdentifier optioneel
Een specifiekere identificatie van het type inhoud waarvoor de instellingen moeten worden opgehaald.
- secundaireUrl
string optioneel
De secundaire URL waarvoor de inhoudsinstelling moet worden opgehaald. Standaard is dit de primaire URL. Houd er rekening mee dat de betekenis van een secundaire URL afhankelijk is van het inhoudstype en dat niet alle inhoudstypen secundaire URL's gebruiken.
- terugbellen
functie optioneel
De
callback
ziet er als volgt uit:(details: object) => void
- details
voorwerp
- instelling
T
De inhoudsinstelling. Zie de beschrijving van de afzonderlijke ContentSetting-objecten voor de mogelijke waarden.
- retouren
Belofte<object>
Chroom 96+
- getResourceIdentifiers
leegte
BelofteDe functie
getResourceIdentifiers
ziet er als volgt uit:(callback?: function) => {...}
- terugbellen
functie optioneel
De
callback
ziet er als volgt uit:(resourceIdentifiers?: ResourceIdentifier[]) => void
- resource-ID's
ResourceIdentifier [] optioneel
Een lijst met resource-ID's voor dit inhoudstype.
undefined
als dit inhoudstype geen resource-ID's gebruikt.
- retouren
Belofte< ResourceIdentifier []>
Chroom 96+
- set
leegte
BeloftePast een nieuwe inhoudsinstellingsregel toe.
De
set
ziet er als volgt uit:(details: object, callback?: function) => {...}
- details
voorwerp
- primairPatroon
snaar
Het patroon voor de primaire URL. Zie Content Setting Patterns voor meer informatie over de opmaak van een patroon.
- resource-ID
ResourceIdentifier optioneel
De resource-ID voor het inhoudstype.
- domein
Scope optioneel
Waar de instelling moet worden ingesteld (standaard: normaal).
- secundair patroon
string optioneel
Het patroon voor de secundaire URL. Standaard komt het overeen met alle URL's. Zie Patronen voor inhoudsinstellingen voor meer informatie over de opmaak van een patroon.
- instelling
elk
De instelling die door deze regel wordt toegepast. Zie de beschrijving van de afzonderlijke ContentSetting-objecten voor de mogelijke waarden.
- terugbellen
functie optioneel
De
callback
ziet er als volgt uit:() => void
- retouren
Belofte<leegte>
Chroom 96+
CookiesContentSetting
Enum
"toestaan" "blok" "sessie_alleen"
FullscreenContentSetting
Waarde
"toestaan"
ImagesContentSetting
Enum
"toestaan" "blok"
JavascriptContentSetting
Enum
"toestaan" "blok"
LocationContentSetting
Enum
"toestaan" "blok" "vragen"
MicrophoneContentSetting
Enum
"toestaan" "blok" "vragen"
MouselockContentSetting
Waarde
"toestaan"
MultipleAutomaticDownloadsContentSetting
Enum
"toestaan" "blok" "vragen"
NotificationsContentSetting
Enum
"toestaan" "blok" "vragen"
PluginsContentSetting
Waarde
"blok"
PopupsContentSetting
Enum
"toestaan" "blok"
PpapiBrokerContentSetting
Waarde
"blok"
ResourceIdentifier
Het enige contenttype dat gebruikmaakt van resource-ID's is contentSettings.plugins
. Zie Resource-ID's voor meer informatie.
Eigenschappen
- beschrijving
string optioneel
Een voor mensen leesbare beschrijving van de bron.
- id
snaar
De resource-ID voor het opgegeven inhoudstype.
Scope
De reikwijdte van de ContentSetting. Een van regular
: instelling voor het reguliere profiel (die wordt overgenomen door het incognitoprofiel indien niet elders overschreven), incognito\_session\_only
: instelling voor het incognitoprofiel die alleen kan worden ingesteld tijdens een incognitosessie en wordt verwijderd wanneer de incognitosessie eindigt (overschrijft reguliere instellingen).
Enum
"normaal" "incognito_sessie_alleen"
Eigenschappen
automaticDownloads
Of sites automatisch meerdere bestanden mogen downloaden. Een van de volgende allow
: toestaan: sites automatisch meerdere bestanden laten downloaden, block
: sites niet automatisch meerdere bestanden laten downloaden, ask
: vragen wanneer een site bestanden automatisch wil downloaden na het eerste bestand. De standaardinstelling is ask
. De primaire URL is de URL van het bovenste frame. De secundaire URL wordt niet gebruikt.
autoVerify
Of sites de Private State Tokens API mogen gebruiken. Een van de volgende allow
is: allow: sites toestaan de Private State Tokens API te gebruiken, block
: sites blokkeren de Private State Tokens API te gebruiken. De standaardinstelling is allow
. Bij het aanroepen van set()
moet het primaire URL-patroon <all_urls>
zijn. De secundaire URL wordt niet gebruikt.
Type
camera
Of sites toegang tot de camera mogen krijgen. Een van de allow
: toestaan: sites toegang tot de camera geven, block
: sites geen toegang tot de camera geven, ask
: vragen wanneer een site toegang tot de camera wil. Standaard is ask
. De primaire URL is de URL van het document dat toegang tot de camera heeft aangevraagd. De secundaire URL wordt niet gebruikt. OPMERKING: De instelling 'toestaan' is ongeldig als beide patronen '<all_urls>' zijn.
Type
clipboard
Of sites toegang mogen krijgen tot het klembord via geavanceerde mogelijkheden van de Async Clipboard API. "Geavanceerde" mogelijkheden omvatten alles behalve het schrijven van ingebouwde formaten na een gebruikersgebaar, d.w.z. de mogelijkheid om te lezen, de mogelijkheid om aangepaste formaten te schrijven en de mogelijkheid om te schrijven zonder gebruikersgebaar. Eén van de allow
: toestaan: sites toestaan geavanceerde klembordmogelijkheden te gebruiken, block
: sites niet toestaan geavanceerde klembordmogelijkheden te gebruiken, ask
: vragen wanneer een site geavanceerde klembordmogelijkheden wil gebruiken. De standaardwaarde is ask
. De primaire URL is de URL van het document dat toegang tot het klembord heeft aangevraagd. De secundaire URL wordt niet gebruikt.
Type
cookies
Of cookies en andere lokale gegevens door websites mogen worden ingesteld. Een van de volgende opties is: allow
: cookies accepteren, block
: cookies blokkeren, session\_only
: cookies alleen accepteren voor de huidige sessie. De standaardinstelling is allow
. De primaire URL is de URL die de oorsprong van de cookie vertegenwoordigt. De secundaire URL is de URL van het bovenste frame.
Type
fullscreen
Verouderd. Heeft geen effect meer. Volledig scherm wordt nu automatisch verleend voor alle sites. De waarde is altijd allow
.
Type
images
Of afbeeldingen worden weergegeven. Een van de allow
is: toestaan: afbeeldingen weergeven, block
: geen afbeeldingen weergeven. De standaardinstelling is allow
. De primaire URL is de URL van het bovenste frame. De secundaire URL is de URL van de afbeelding.
Type
javascript
Of JavaScript moet worden uitgevoerd. Een van de volgende opties is: allow
: JavaScript uitvoeren, block
: JavaScript niet uitvoeren. De standaardinstelling is allow
. De primaire URL is de URL van het bovenste frame. De secundaire URL wordt niet gebruikt.
location
Of geolocatie is toegestaan. Een van de allow
is: toestaan: sites toestaan uw fysieke locatie te volgen, block
: sites niet toestaan uw fysieke locatie te volgen, ask
: vragen voordat sites uw fysieke locatie mogen volgen. De standaardinstelling is ask
. De primaire URL is de URL van het document dat locatiegegevens heeft opgevraagd. De secundaire URL is de URL van het hoofdframe (die al dan niet kan verschillen van de aanvragende URL).
Type
microphone
Of sites toegang tot de microfoon mogen hebben. Een van de volgende allow
: toestaan: sites toegang tot de microfoon geven, block
: sites geen toegang tot de microfoon geven, ask
: vragen wanneer een site toegang tot de microfoon wil. Standaard is ask
. De primaire URL is de URL van het document dat toegang tot de microfoon heeft aangevraagd. De secundaire URL wordt niet gebruikt. OPMERKING: De instelling 'toestaan' is ongeldig als beide patronen '<all_urls>' zijn.
mouselock
Verouderd. Heeft geen effect meer. Muisvergrendeling wordt nu automatisch verleend voor alle sites. De waarde is altijd allow
.
Type
notifications
Of sites bureaubladmeldingen mogen weergeven. Een van de volgende allow
: toestaan: sites bureaubladmeldingen weergeven, block
: sites niet toestaan bureaubladmeldingen weer te geven, ask
: vragen wanneer een site bureaubladmeldingen wil weergeven. De standaardinstelling is ask
. De primaire URL is de URL van het document dat de melding wil weergeven. De secundaire URL wordt niet gebruikt.
Type
plugins
Verouderd. Nu Flash-ondersteuning in Chrome 88 is verwijderd, heeft deze toestemming geen effect meer. De waarde is altijd block
. Aanroepen van set()
en clear()
worden genegeerd.
Type
popups
Of sites pop-ups mogen weergeven. Een van de volgende allow
: sites toestaan pop-ups weer te geven, block
: sites niet toestaan pop-ups weer te geven. De standaardinstelling is block
. De primaire URL is de URL van het bovenste frame. De secundaire URL wordt niet gebruikt.
Type
unsandboxedPlugins
Verouderd. Voorheen werd bepaald of sites plug-ins zonder sandbox mochten uitvoeren. Nu het Flash-brokerproces in Chrome 88 is verwijderd, heeft deze toestemming echter geen effect meer. De waarde is altijd block
. Aanroepen van set()
en clear()
worden genegeerd.