chrome.contentInstellingen

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

Manifest

U moet de machtiging 'contentSettings' opgeven in het manifest van uw extensie om de API te kunnen gebruiken. Bijvoorbeeld:

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

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

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

  1. https://www.example.com:*/* Specificeert de hostnaam en het schema.
  2. *:/www.example.com:123/* Niet zo hoog, want hoewel het de hostnaam specificeert, specificeert het niet het schema.
  3. 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>

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

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 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 alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.

  • 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

        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

        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 alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.

  • getResourceIdentifiers

    leegte

    Belofte

    De 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 alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.

  • set

    leegte

    Belofte

    Past 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

        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 alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.

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

Chroom 44+

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

Chroom 113+

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

Chroom 46+

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.

clipboard

Chroom 121+

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 : sites toestaan ​​geavanceerde klembordmogelijkheden te gebruiken, block : sites niet toestaan ​​geavanceerde klembordmogelijkheden te gebruiken, ask : vragen 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.

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.

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

Chroom 46+

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 .

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.

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.

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.