chrome.contentInstellingen

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 en ftp -URL's moet het pad een jokerteken ( /* ) zijn. Voor file -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:

  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 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:

  1. https://www.example.com:*/* Geeft de hostnaam en het schema op.
  2. *:/www.example.com:123/* Niet zo hoog, omdat de hostnaam wel wordt gespecificeerd, maar niet het schema.
  3. 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

Chroom 113+

Enum

"toestaan"

"blok"

CameraContentSetting

Chroom 46+

Enum

"toestaan"

"blok"

"vragen"

ClipboardContentSetting

Chroom 121+

Enum

"toestaan"

"blok"

"vragen"

ContentSetting

Eigenschappen

  • duidelijk

    leegte

    Belofte

    Wis 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

    Belofte

    Haalt 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

        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

    Belofte

    De 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.

  • set

    leegte

    Belofte

    Past 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

        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

Chroom 44+

Enum

"toestaan"

"blok"

"sessie_alleen"

FullscreenContentSetting

Chroom 44+

Waarde

"toestaan"

ImagesContentSetting

Chroom 44+

Enum

"toestaan"

"blok"

JavascriptContentSetting

Chroom 44+

Enum

"toestaan"

"blok"

LocationContentSetting

Chroom 44+

Enum

"toestaan"

"blok"

"vragen"

MicrophoneContentSetting

Chroom 46+

Enum

"toestaan"

"blok"

"vragen"

MouselockContentSetting

Chroom 44+

Waarde

"toestaan"

MultipleAutomaticDownloadsContentSetting

Chroom 44+

Enum

"toestaan"

"blok"

"vragen"

NotificationsContentSetting

Chroom 44+

Enum

"toestaan"

"blok"

"vragen"

PluginsContentSetting

Chroom 44+

Waarde

"blok"

PopupsContentSetting

Chroom 44+

Enum

"toestaan"

"blok"

PpapiBrokerContentSetting

Chroom 44+

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

Chroom 44+

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

Chroom 113+

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.

camera

Chroom 46+

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.

clipboard

Chroom 121+

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.

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.

fullscreen

Verouderd. Heeft geen effect meer. Volledig scherm wordt nu automatisch verleend voor alle sites. De waarde is altijd allow .

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.

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).

microphone

Chroom 46+

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 .

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.

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.

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.

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.