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 inhoudsinstellingen het gedrag van Chrome per website aanpassen in plaats van globaal.

Toestemmingen

contentSettings

Manifest

Om de API te kunnen gebruiken, moet u de machtiging "contentSettings" in het manifest van uw extensie declareren. Bijvoorbeeld:

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

Content setting patronen

Je kunt patronen gebruiken om de websites te specificeren waarop elke inhoudsinstelling van toepassing is. Bijvoorbeeld, https://*.youtube.com/* specificeert youtube.com en al zijn subdomeinen. De syntaxis voor patronen voor inhoudsinstellingen is hetzelfde als voor overeenkomstpatronen , met een paar verschillen:

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

Patroonprioriteit

Wanneer er meer dan één inhoudsinstellingsregel van toepassing is op een bepaalde site, heeft de regel met het meest specifieke patroon voorrang.

De volgende patronen zijn bijvoorbeeld gerangschikt 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)

Drie soorten jokers beïnvloeden 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 één 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 in volgorde van prioriteit weergegeven:

  1. https://www.example.com:*/* Specificeert de hostnaam en het schema.
  2. *:/www.example.com:123/* Niet zo hoog, omdat het weliswaar de hostnaam specificeert, maar niet het schema.
  3. https://*.example.com:123/* Lager, omdat hoewel de poort en het schema worden gespecificeerd, er een wildcard in de hostnaam staat.

Primaire en secundaire patronen

De URL die wordt gebruikt bij het bepalen welke inhoudsinstelling moet worden toegepast, hangt af van het type inhoud. Bijvoorbeeld, voor contentSettings.notifications zijn de instellingen gebaseerd op de URL die in de omnibox wordt weergegeven. Deze URL wordt de 'primaire' URL genoemd.

Sommige contenttypen kunnen rekening houden 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 in de adresbalk wordt weergegeven (de zogenaamde secundaire URL).

Als meerdere regels een primair en een secundair patroon 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 paren van primaire en secundaire patronen is bijvoorbeeld gesorteerd op voorrang:

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>

Resource-identificaties

Met resource-identificaties kunt u inhoudsinstellingen specificeren voor specifieke subtypes van een inhoudstype. Momenteel is contentSettings.plugins het enige inhoudstype dat resource-identificaties ondersteunt. Hierbij identificeert een resource-identificatie 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 regel voor inhoudsinstellingen bijvoorbeeld de resource-ID adobe-flash-player en het patroon <all_urls> bevat, heeft deze voorrang op een regel zonder resource-ID en met het patroon https://www.example.com/* , zelfs als dat patroon specifieker is.

Je kunt een lijst met resource-ID's voor een contenttype verkrijgen door de methode contentSettings.ContentSetting.getResourceIdentifiers aan te roepen. De geretourneerde lijst kan veranderen afhankelijk van de geïnstalleerde plug-ins op de computer van de gebruiker, maar Chrome probeert de ID's stabiel te houden bij plug-in-updates.

Voorbeelden

Om deze API uit te proberen, installeer je het contentSettings API-voorbeeld uit de chrome-extension-samples repository.

Soorten

AutoVerifyContentSetting

Chrome 113+

Enum

"toestaan"

"blok"

CameraContentSetting

Chrome 46+

Enum

"toestaan"

"blok"

"vragen"

ClipboardContentSetting

Chrome 121+

Enum

"toestaan"

"blok"

"vragen"

ContentSetting

Eigenschappen

  • duidelijk

    leegte

    Belofte

    Verwijder alle inhoudsinstellingenregels die door deze extensie zijn ingesteld.

    De clear ziet er als volgt uit:

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

    • details

      voorwerp

      • domein

        Bereik optioneel

        Waar de instelling te wissen (standaard: normaal).

    • terugbelverzoek

      functie optioneel

      De callback parameter ziet er als volgt uit:

      () => void

    • retourneert

      Promise<void>

      Chrome 96+

      Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.

  • krijgen

    leegte

    Belofte

    Geeft de huidige inhoudsinstellingen weer voor een gegeven 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 gecontroleerd moeten worden. (standaard: false)

      • primaireUrl

        snaar

        De primaire URL waarvoor de inhoudsinstellingen moeten worden opgehaald. Houd er rekening mee dat de betekenis van een primaire URL afhangt van het inhoudstype.

      • resourceIdentifier

        ResourceIdentifier (optioneel)

        Een meer specifieke aanduiding van het type inhoud waarvoor de instellingen moeten worden opgehaald.

      • secundaireUrl

        string optioneel

        De secundaire URL waarvoor de inhoudsinstellingen moeten worden opgehaald. Standaard is dit 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.

    • terugbelverzoek

      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

      Promise<object>

      Chrome 96+

      Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.

  • getResourceIdentifiers

    leegte

    Belofte

    De functie getResourceIdentifiers ziet er als volgt uit:

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

    • terugbelverzoek

      functie optioneel

      De callback parameter ziet er als volgt uit:

      (resourceIdentifiers?: ResourceIdentifier[]) => void

      • bronidentificaties

        ResourceIdentifier [] optioneel

        Een lijst met resource-identificaties voor dit inhoudstype, of undefined als dit inhoudstype geen resource-identificaties gebruikt.

    • retourneert

      Promise< ResourceIdentifier []>

      Chrome 96+

      Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.

  • set

    leegte

    Belofte

    Past een nieuwe regel voor inhoudsinstellingen toe.

    De set ziet er als volgt uit:

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

    • details

      voorwerp

      • primair patroon

        snaar

        Het patroon voor de primaire URL. Zie 'Patronen voor inhoudsinstellingen' voor meer informatie over de opmaak van een patroon.

      • resourceIdentifier

        ResourceIdentifier (optioneel)

        De resource-identifier voor het contenttype.

      • domein

        Bereik optioneel

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

      • secundair patroon

        string optioneel

        Het patroon voor de secundaire URL. Standaard worden alle URL's gematcht. Zie 'Patronen voor inhoudsinstellingen' 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.

    • terugbelverzoek

      functie optioneel

      De callback parameter ziet er als volgt uit:

      () => void

    • retourneert

      Promise<void>

      Chrome 96+

      Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.

CookiesContentSetting

Chrome 44+

Enum

"toestaan"

"blok"

"alleen-sessie"

FullscreenContentSetting

Chrome 44+

Waarde

"toestaan"

ImagesContentSetting

Chrome 44+

Enum

"toestaan"

"blok"

JavascriptContentSetting

Chrome 44+

Enum

"toestaan"

"blok"

LocationContentSetting

Chrome 44+

Enum

"toestaan"

"blok"

"vragen"

MicrophoneContentSetting

Chrome 46+

Enum

"toestaan"

"blok"

"vragen"

MouselockContentSetting

Chrome 44+

Waarde

"toestaan"

MultipleAutomaticDownloadsContentSetting

Chrome 44+

Enum

"toestaan"

"blok"

"vragen"

NotificationsContentSetting

Chrome 44+

Enum

"toestaan"

"blok"

"vragen"

PluginsContentSetting

Chrome 44+

Waarde

"blok"

PopupsContentSetting

Chrome 44+

Enum

"toestaan"

"blok"

PpapiBrokerContentSetting

Chrome 44+

Waarde

"blok"

ResourceIdentifier

Het enige inhoudstype dat gebruikmaakt van resource-identificaties is contentSettings.plugins . Zie Resource-identificaties voor meer informatie.

Eigenschappen

  • beschrijving

    string optioneel

    Een voor mensen leesbare beschrijving van de bron.

  • id

    snaar

    De resource-identificatiecode voor het betreffende contenttype.

Scope

Chrome 44+

Het bereik van de ContentSetting. Een van de volgende: regular : instelling voor het reguliere profiel (die wordt overgenomen door het incognito-profiel als deze niet elders wordt overschreven), incognito\_session\_only : instelling voor het incognito-profiel die alleen tijdens een incognito-sessie kan worden ingesteld en wordt verwijderd wanneer de incognito-sessie eindigt (overschrijft reguliere instellingen).

Enum

"normaal"

"alleen incognito-sessie"

SoundContentSetting

Chrome 141+

Enum

"toestaan"

"blok"

Eigenschappen

automaticDownloads

Of sites meerdere bestanden automatisch mogen downloaden. Een van de allow : toestaan: 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. De standaardinstelling 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 sites de Private State Tokens API mogen gebruiken. Een van de volgende opties is: allow : sites mogen de Private State Tokens API gebruiken, block : sites mogen de Private State Tokens API niet gebruiken. De standaardwaarde is allow . Bij het aanroepen van set() moet het primaire URL-patroon <all_urls> zijn. De secundaire URL wordt niet gebruikt.

camera

Chrome 46+

Of websites toegang tot de camera mogen krijgen. Een van de allow : toestaan: websites toegang geven tot de camera, block : websites geen toegang geven tot de camera, ask : vragen wanneer een website toegang tot de camera wil. De standaardinstelling is ask . De primaire URL is de URL van het document dat toegang tot de camera heeft aangevraagd. De secundaire URL wordt niet gebruikt. LET OP: De instelling 'toestaan' is niet geldig als beide patronen '<alle_urls>' zijn.

clipboard

Chrome 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 gebruikersactie, zoals lezen, schrijven en schrijven zonder gebruikersactie. Een van de volgende opties is: allow : Sta sites toe geavanceerde klembordmogelijkheden te gebruiken, block : Sta sites niet toe geavanceerde klembordmogelijkheden te gebruiken, ask : Vraag wanneer een site geavanceerde klembordmogelijkheden wil gebruiken. De standaardwaarde is ask . De primaire URL is de URL van het document dat klembordtoegang heeft aangevraagd. De secundaire URL wordt niet gebruikt.

cookies

Of het toegestaan ​​is om cookies en andere lokale gegevens door websites te plaatsen. Een van de allow : toestaan: 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

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

images

Of afbeeldingen moeten worden weergegeven. Een van de allow : afbeeldingen weergeven, block : afbeeldingen niet weergeven. De standaardinstelling 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 opties is 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 allow is: toestaan: websites toestaan ​​uw fysieke locatie te volgen, block : websites niet toestaan ​​uw fysieke locatie te volgen, ask : vragen voordat websites toestemming krijgen om uw fysieke locatie te 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 frame op het hoogste niveau (die al dan niet kan verschillen van de aanvragende URL).

microphone

Chrome 46+

Of sites toegang mogen krijgen tot de microfoon. Een van de allow : toestaan: sites toegang geven tot de microfoon, block : sites geen toegang geven tot de microfoon, ask : vragen wanneer een site toegang tot de microfoon wil. De standaardinstelling is ask . De primaire URL is de URL van het document dat toegang tot de microfoon heeft aangevraagd. De secundaire URL wordt niet gebruikt. LET OP: De instelling 'toestaan' is niet geldig als beide patronen '<alle_urls>' zijn.

mouselock

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

notifications

Of sites bureaubladmeldingen mogen weergeven. Een van de allow : toestaan: sites mogen bureaubladmeldingen weergeven, block : sites mogen geen bureaubladmeldingen weergeven, ask : vragen wanneer een site bureaubladmeldingen wil weergeven. De standaardinstelling is ask . De primaire URL is de URL van het document dat de melding moet weergeven. De secundaire URL wordt niet gebruikt.

plugins

Verouderd. Nu Flash-ondersteuning is verwijderd in Chrome 88, heeft deze toestemming geen effect meer. De waarde is altijd block . Aanroepen naar set() en clear() worden genegeerd.

popups

Of pop-ups op websites toegestaan ​​moeten worden. Eén van de opties allow ': pop-ups weergeven, block : pop-ups niet weergeven. De standaardinstelling is block . De primaire URL is de URL van het frame op het hoogste niveau. De secundaire URL wordt niet gebruikt.

unsandboxedPlugins

Verouderd. Voorheen bepaalde deze instelling of sites plug-ins zonder sandbox mochten uitvoeren. Echter, nu het Flash-brokerproces in Chrome 88 is verwijderd, heeft deze toestemming geen effect meer. De waarde is altijd block . Aanroepen naar set() en clear() worden genegeerd.