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 kunt u met de inhoudsinstellingen het gedrag van Chrome per site aanpassen in plaats van globaal.
Machtigingen
contentSettings
U moet de machtiging "contentSettings"
opgeven in het manifest van uw extensie om de API te kunnen gebruiken. Bijvoorbeeld:
{
"name": "My extension",
...
"permissions": [
"contentSettings"
],
...
}
Concepten en gebruik
Patronen voor het instellen van inhoud
U kunt patronen gebruiken om de websites op te geven waarop elke inhoudsinstelling van invloed is. https://*.youtube.com/*
specificeert bijvoorbeeld youtube.com en alle subdomeinen ervan. De syntaxis voor patronen voor inhoudsinstellingen is dezelfde als voor overeenkomstpatronen , met enkele verschillen:
- Voor
http
,https
enftp
-URL's moet het pad een jokerteken (/*
) zijn. Voorfile
URL's moet het pad volledig worden opgegeven en mag het geen jokertekens bevatten. - In tegenstelling tot matchpatronen kunnen patronen voor inhoudsinstellingen een poortnummer specificeren. 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
Wanneer er meer dan één regel voor het instellen van inhoud van toepassing is op een bepaalde site, heeft de regel met het specifiekere patroon voorrang.
De volgende patronen zijn bijvoorbeeld gerangschikt 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 jokertekens die bepalen hoe specifiek een patroon is:
- Wildcards in de poort (bijvoorbeeld
https://www.example.com:*/*
) - Wildcards in het schema (bijvoorbeeld
*://www.example.com:123/*
) - Jokertekens in de hostnaam (bijvoorbeeld
https://*.example.com:123/*
)
Als een patroon specifieker is dan een ander patroon in het ene deel, maar minder specifiek in een ander deel, worden de verschillende delen in de volgende volgorde gecontroleerd: hostnaam, schema, poort. De volgende patronen zijn bijvoorbeeld gerangschikt op prioriteit:
-
https://www.example.com:*/*
Specificeert de hostnaam en het schema. -
*:/www.example.com:123/*
Niet zo hoog, want hoewel het de hostnaam specificeert, specificeert het niet het schema. -
https://*.example.com:123/*
Lager omdat het weliswaar de poort en het schema specificeert, maar er een jokerteken in de hostnaam staat.
Primaire en secundaire patronen
De URL waarmee rekening wordt gehouden bij het bepalen welke inhoudsinstelling moet worden toegepast, is afhankelijk van het inhoudstype. Voor contentSettings.notifications
zijn de instellingen bijvoorbeeld gebaseerd op de URL die wordt weergegeven in de omnibox. Deze URL wordt de "primaire" URL genoemd.
Bij sommige inhoudstypen kan rekening worden gehouden met aanvullende URL's. 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 weergegeven in de omnibox (die de 'secundaire' URL wordt genoemd). "URL).
Als meerdere regels primaire en secundaire patronen hebben, heeft de regel met het specifiekere primaire patroon voorrang. Als er meerdere regels hetzelfde primaire patroon hebben, heeft de regel met het specifiekere secundaire patroon voorrang. De volgende lijst met primaire/secundaire patroonparen is bijvoorbeeld gerangschikt 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 voor afbeeldingen.
Resource-ID's
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, waarbij een resource-ID een specifieke plug-in identificeert. Bij het toepassen van contentinstellingen worden eerst de instellingen voor de specifieke plugin gecontroleerd. Als er voor de specifieke plug-in geen instellingen worden gevonden, worden de algemene inhoudsinstellingen voor plug-ins gecontroleerd.
Als een regel voor inhoudsinstelling bijvoorbeeld de resource-ID adobe-flash-player
en het patroon <all_urls>
heeft, heeft deze voorrang op een regel zonder resource-ID en 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 plug-ins op de computer van de gebruiker, maar Chrome probeert de ID's stabiel te houden bij plug-in-updates.
Voorbeelden
Als u deze API wilt proberen, installeert u het contentSettings API-voorbeeld uit de chrome-extension-samples- repository.
Soorten
AutoVerifyContentSetting
Enum
"toestaan" "blok"
CameraContentSetting
Enum
"toestaan" "blok" "vragen"
ClipboardContentSetting
Enum
"toestaan" "blok" "vragen"
ContentSetting
Eigenschappen
- duidelijk
leegte
BelofteWis alle regels voor inhoudsinstellingen die door deze extensie zijn ingesteld.
De
clear
functie ziet er als volgt uit:(details: object, callback?: function) => {...}
- details
voorwerp
- domein
Reikwijdte optioneel
Waar u de instelling kunt wissen (standaard: normaal).
- terugbellen
functie optioneel
De
callback
parameter ziet er als volgt uit:() => void
- retourneert
Beloof <nietig>
Chroom 96+Beloften worden ondersteund in Manifest V3 en hoger, maar er zijn callbacks beschikbaar voor achterwaartse compatibiliteit. U kunt niet beide gebruiken bij dezelfde functieaanroep. De belofte wordt opgelost met hetzelfde type dat wordt doorgegeven aan de callback.
- 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
Booleaans optioneel
Of de inhoudsinstellingen voor een incognitosessie moeten worden gecontroleerd. (standaard onwaar)
- primaireUrl
snaar
De primaire URL waarvoor de inhoudsinstelling moet worden opgehaald. Houd er rekening mee dat de betekenis van een primaire URL afhankelijk is van het inhoudstype.
- resource-ID
ResourceIdentifier optioneel
Een meer specifieke identificatie van het type inhoud waarvoor de instellingen moeten worden opgehaald.
- secundaireUrl
tekenreeks optioneel
De secundaire URL waarvoor de inhoudsinstelling moet worden opgehaald. Standaard ingesteld op de primaire URL. Houd er rekening mee dat de betekenis van een secundaire URL afhangt van het inhoudstype en dat niet alle inhoudstypen secundaire URL's gebruiken.
- terugbellen
functie optioneel
De
callback
parameter 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.
- retourneert
Beloof<object>
Chroom 96+Beloften worden ondersteund in Manifest V3 en hoger, maar er zijn callbacks beschikbaar voor achterwaartse compatibiliteit. U kunt niet beide gebruiken bij dezelfde functieaanroep. De belofte wordt opgelost met hetzelfde type dat wordt doorgegeven aan de callback.
- getResourceIdentifiers
leegte
BelofteDe
getResourceIdentifiers
functie ziet er als volgt uit:(callback?: function) => {...}
- terugbellen
functie optioneel
De
callback
parameter ziet er als volgt uit:(resourceIdentifiers?: ResourceIdentifier[]) => void
- resource-ID's
ResourceIdentifier [] optioneel
Een lijst met bron-ID's voor dit inhoudstype, of
undefined
als dit inhoudstype geen bron-ID's gebruikt.
- retourneert
Belofte< ResourceIdentifier []>
Chroom 96+Beloften worden ondersteund in Manifest V3 en hoger, maar er zijn callbacks beschikbaar voor achterwaartse compatibiliteit. U kunt niet beide gebruiken bij dezelfde functieaanroep. De belofte wordt opgelost met hetzelfde type dat wordt doorgegeven aan de callback.
- set
leegte
BeloftePast een nieuwe regel voor het instellen van inhoud toe.
De
set
functie ziet er als volgt uit:(details: object, callback?: function) => {...}
- details
voorwerp
- primairPatroon
snaar
Het patroon voor de primaire URL. Zie Patronen voor inhoud instellen voor meer informatie over de indeling van een patroon.
- resource-ID
ResourceIdentifier optioneel
De resource-ID voor het inhoudstype.
- domein
Reikwijdte optioneel
Waar de instelling moet worden ingesteld (standaard: normaal).
- secundairPatroon
tekenreeks optioneel
Het patroon voor de secundaire URL. Standaard ingesteld op overeenkomen met alle URL's. Zie Patronen voor inhoud instellen voor meer informatie over de indeling 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
parameter ziet er als volgt uit:() => void
- retourneert
Beloof <nietig>
Chroom 96+Beloften worden ondersteund in Manifest V3 en hoger, maar er zijn callbacks beschikbaar voor achterwaartse compatibiliteit. U kunt niet beide gebruiken bij dezelfde functieaanroep. De belofte wordt opgelost met hetzelfde type dat wordt doorgegeven aan de callback.
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 inhoudstype dat bron-ID's gebruikt, is contentSettings.plugins
. Zie Resource-ID's voor meer informatie.
Eigenschappen
- beschrijving
tekenreeks optioneel
Een voor mensen leesbare beschrijving van de bron.
- Identiteitskaart
snaar
De resource-ID voor het opgegeven inhoudstype.
Scope
Het bereik van de ContentSetting. Eén van regular
: instelling voor regulier profiel (dat wordt overgenomen door het incognitoprofiel als het niet elders wordt overschreven), incognito\_session\_only
: instelling voor incognitoprofiel dat alleen kan worden ingesteld tijdens een incognitosessie en wordt verwijderd wanneer de incognitosessie eindigt ( overschrijft de reguliere instellingen).
Enum
"normaal" "incognito_session_only"
Eigenschappen
automaticDownloads
Of sites automatisch meerdere bestanden mogen downloaden. Eén van allow
: sites toestaan meerdere bestanden automatisch te downloaden, block
: sites niet toestaan meerdere bestanden automatisch te downloaden, ask
: vragen wanneer een site bestanden automatisch wil downloaden na het eerste bestand. Standaard is ask
. De primaire URL is de URL van het frame op het hoogste niveau. De secundaire URL wordt niet gebruikt.
autoVerify
Of sites de Private State Tokens API mogen gebruiken. Een van de allow
: sites toestaan de Private State Tokens API te gebruiken, block
: sites blokkeren voor het gebruik van de Private State Tokens API. Standaard is allow
. De primaire URL is de URL van het frame op het hoogste niveau. De secundaire URL wordt niet gebruikt. OPMERKING: Bij het aanroepen van set()
moet het primaire patroon .
camera
Of sites toegang moeten krijgen tot de camera. Eén van allow
: sites toegang geven tot de camera, block
: sites geen toegang geven tot de camera, ask
: vragen wanneer een site toegang wil krijgen tot de camera. Standaard is ask
. De primaire URL is de URL van het document dat om cameratoegang vroeg. De secundaire URL wordt niet gebruikt. OPMERKING: De instelling 'toestaan' is niet geldig als beide patronen '' zijn.
Type
clipboard
Of sites toegang moeten krijgen tot het klembord via de geavanceerde mogelijkheden van de Async Clipboard API. "Geavanceerde" mogelijkheden omvatten alles behalve het schrijven van ingebouwde formaten na een gebruikersgebaar, dwz de mogelijkheid om te lezen, de mogelijkheid om aangepaste formaten te schrijven en de mogelijkheid om te schrijven zonder een gebruikersgebaar. Eén van allow
: Sta toe dat sites geavanceerde klembordmogelijkheden gebruiken, block
: Sta niet toe dat sites geavanceerde klembordmogelijkheden gebruiken, ask
: Vraag wanneer een site geavanceerde klembordmogelijkheden wil gebruiken. Standaard is ask
. De primaire URL is de URL van het document dat toegang tot het klembord heeft aangevraagd. De secundaire URL wordt niet gebruikt.
cookies
Of cookies en andere lokale gegevens door websites mogen worden ingesteld. Eén van allow
: cookies accepteren, block
: cookies blokkeren, session\_only
: alleen cookies accepteren voor de huidige sessie. Standaard 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.
Type
fullscreen
Afgekeurd. Heeft geen effect meer. Er wordt nu automatisch toestemming voor volledig scherm verleend voor alle sites. Waarde is altijd allow
.
images
Of er afbeeldingen moeten worden weergegeven. Eén van allow
: afbeeldingen weergeven, block
: geen afbeeldingen weergeven. Standaard 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. Eén van allow
: JavaScript uitvoeren, block
: JavaScript niet uitvoeren. Standaard is allow
. De primaire URL is de URL van het frame op het hoogste niveau. De secundaire URL wordt niet gebruikt.
Type
location
Of geolocatie moet worden toegestaan. Eén van allow
: 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. Standaard is ask
. De primaire URL is de URL van het document waarin locatiegegevens zijn opgevraagd. De secundaire URL is de URL van het frame op het hoogste niveau (die al dan niet kan verschillen van de aanvragende URL).
microphone
Of sites toegang moeten krijgen tot de microfoon. Eén van allow
: sites toegang geven tot de microfoon, block
: sites geen toegang geven tot de microfoon, ask
: vragen wanneer een site toegang wil krijgen tot de microfoon. Standaard is ask
. De primaire URL is de URL van het document dat microfoontoegang heeft aangevraagd. De secundaire URL wordt niet gebruikt. OPMERKING: De instelling 'toestaan' is niet geldig als beide patronen '' zijn.
mouselock
Afgekeurd. Heeft geen effect meer. Toestemming voor muisvergrendeling wordt nu automatisch verleend voor alle sites. Waarde is altijd allow
.
Type
notifications
Of sites mogen toestaan bureaubladmeldingen weer te geven. Eén van allow
: sites toestaan bureaubladmeldingen weer te geven, block
: sites niet toestaan bureaubladmeldingen weer te geven, ask
: vragen wanneer een site bureaubladmeldingen wil weergeven. Standaard is ask
. De primaire URL is de URL van het document dat de melding wil tonen. De secundaire URL wordt niet gebruikt.
plugins
Afgekeurd. Nu Flash-ondersteuning is verwijderd in Chrome 88, heeft deze toestemming geen effect meer. Waarde is altijd block
. Aanroepen van set()
en clear()
worden genegeerd.
Type
popups
Of sites pop-ups mogen weergeven. Eén van de allow
: sites toestaan pop-ups weer te geven, block
: sites niet toestaan pop-ups weer te geven. Standaard is block
. De primaire URL is de URL van het frame op het hoogste niveau. De secundaire URL wordt niet gebruikt.
Type
unsandboxedPlugins
Afgekeurd. Voorheen werd gecontroleerd of sites plug-ins zonder sandbox mochten uitvoeren, maar nu het Flash-brokerproces in Chrome 88 is verwijderd, heeft deze toestemming geen enkel effect meer. Waarde is altijd block
. Aanroepen van set()
en clear()
worden genegeerd.