Beschreibung
Verwenden Sie die chrome.contentSettings
API, um Einstellungen zu ändern, mit denen festgelegt wird, ob Websites Funktionen wie Cookies, JavaScript und Plug-ins verwenden können. Mit den Inhaltseinstellungen können Sie das Verhalten von Chrome für jede Website einzeln anpassen, anstatt global.
Berechtigungen
contentSettings
Sie müssen die Berechtigung "contentSettings"
im Manifest Ihrer Erweiterung deklarieren, um die API verwenden zu können. Beispiel:
{ "name": "My extension", ... "permissions": [ "contentSettings" ], ... }
Konzepte und Verwendung
Muster für Inhaltseinstellungen
Mit Mustern können Sie die Websites angeben, auf die sich die einzelnen Inhaltseinstellungen auswirken. Beispiel: https://*.youtube.com/*
gibt youtube.com und alle zugehörigen Subdomains an. Die Syntax für Muster zum Festlegen von Inhalten ist dieselbe wie für Abgleichsmuster, mit einigen Unterschieden:
- Bei
http
-,https
- undftp
-URLs muss der Pfad ein Platzhalter (/*
) sein. Beifile
-URLs muss der Pfad vollständig angegeben werden und darf keine Platzhalter enthalten. - Im Gegensatz zu Mustern für den Abgleich kann in Mustern für Inhaltseinstellungen eine Portnummer angegeben werden. Wenn eine Portnummer angegeben ist, stimmt das Muster nur mit Websites überein, die diesen Port verwenden. Wenn keine Portnummer angegeben ist, entspricht das Muster allen Ports.
Musterpriorität
Wenn für eine bestimmte Website mehrere Regeln für Inhaltseinstellungen gelten, hat die Regel mit dem spezifischeren Muster Vorrang.
Die folgenden Muster sind beispielsweise nach Priorität sortiert:
https://www.example.com/*
https://*.example.com/*
(entspricht beispiel.de und allen Subdomains)<all_urls>
(entspricht jeder URL)
Es gibt drei Arten von Platzhaltern, die sich auf die Spezifität eines Musters auswirken:
- Platzhalter im Port (z. B.
https://www.example.com:*/*
) - Platzhalter im Schema (z. B.
*://www.example.com:123/*
) - Platzhalter im Hostnamen (z. B.
https://*.example.com:123/*
)
Wenn ein Muster in einem Teil spezifischer als ein anderes Muster ist, in einem anderen Teil jedoch weniger spezifisch, werden die verschiedenen Teile in der folgenden Reihenfolge geprüft: Hostname, Schema, Port. Die folgenden Muster sind beispielsweise nach Priorität sortiert:
https://www.example.com:*/*
Gibt den Hostnamen und das Schema an.*:/www.example.com:123/*
Nicht so hoch, da zwar der Hostname, aber nicht das Schema angegeben wird.https://*.example.com:123/*
Niedriger, da zwar Port und Schema angegeben sind, aber ein Platzhalter im Hostnamen enthalten ist.
Primäre und sekundäre Muster
Die URL, die bei der Entscheidung berücksichtigt wird, welche Inhaltseinstellung angewendet werden soll, hängt vom Inhaltstyp ab. Die Einstellungen für contentSettings.notifications
basieren beispielsweise auf der URL, die in der Omnibox angezeigt wird. Diese URL wird als „primäre“ URL bezeichnet.
Bei einigen Inhaltstypen können zusätzliche URLs berücksichtigt werden. Ob eine Website beispielsweise ein contentSettings.cookies
setzen darf, wird anhand der URL der HTTP-Anfrage (in diesem Fall die primäre URL) sowie der in der Omnibox angezeigten URL (die sekundäre URL) entschieden.
Wenn mehrere Regeln primäre und sekundäre Muster haben, hat die Regel mit dem spezifischeren primären Muster Vorrang. Wenn mehrere Regeln dasselbe primäre Muster haben, hat die Regel mit dem spezifischeren sekundären Muster Vorrang. Die folgende Liste von primären/sekundären Musterpaaren ist beispielsweise nach Priorität sortiert:
Vorrang | Primäres Muster | Sekundäres Muster |
---|---|---|
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> |
Sekundäre Muster werden für die Inhaltseinstellung „Bilder“ nicht unterstützt.
Ressourcen-IDs
Mit Ressourcen-IDs können Sie Inhaltseinstellungen für bestimmte Untertypen eines Inhaltstyps festlegen. Derzeit ist contentSettings.plugins
der einzige Inhaltstyp, der Ressourcenkennzeichnungen unterstützt. Eine Ressourcenkennzeichnung identifiziert ein bestimmtes Plug-in. Beim Anwenden von Inhaltseinstellungen werden zuerst die Einstellungen für das jeweilige Plug-in geprüft. Wenn keine Einstellungen für das jeweilige Plug-in gefunden werden, werden die allgemeinen Inhaltseinstellungen für Plug-ins geprüft.
Wenn eine Regel für Inhaltseinstellungen beispielsweise die Ressourcen-ID adobe-flash-player
und das Muster <all_urls>
hat, hat sie Vorrang vor einer Regel ohne Ressourcen-ID und dem Muster https://www.example.com/*
, auch wenn dieses Muster spezifischer ist.
Sie können eine Liste der Ressourcen-IDs für einen Inhaltstyp abrufen, indem Sie die Methode contentSettings.ContentSetting.getResourceIdentifiers()
aufrufen. Die zurückgegebene Liste kann sich mit den auf dem Computer des Nutzers installierten Plug-ins ändern. Chrome versucht jedoch, die Kennungen bei Plug-in-Updates stabil zu halten.
Beispiele
Wenn Sie diese API ausprobieren möchten, installieren Sie das contentSettings API-Beispiel aus dem Repository chrome-extension-samples.
Typen
AutoVerifyContentSetting
Enum
„allow“
"block"
CameraContentSetting
Enum
„allow“
"block"
„ask“
ClipboardContentSetting
Enum
„allow“
"block"
„ask“
ContentSetting
Attribute
- löschen
void
Löschen Sie alle von dieser Erweiterung festgelegten Regeln für Inhaltseinstellungen.
Die
clear
-Funktion sieht so aus:(details: object) => {...}
- Details
Objekt
- Bereich
Umfang optional
Wo die Einstellung gelöscht werden soll (Standard: „regular“).
-
- Gibt zurück
Promise<void>
Chrome 96 und höher
-
- get
void
Ruft die aktuelle Inhaltseinstellung für ein bestimmtes URL-Paar ab.
Die
get
-Funktion sieht so aus:(details: object) => {...}
- Details
Objekt
- Inkognito
boolean optional
Gibt an, ob die Inhaltseinstellungen für eine Inkognitositzung geprüft werden sollen. (Standardeinstellung: „false“)
- primaryUrl
String
Die primäre URL, für die die Inhaltseinstellung abgerufen werden soll. Die Bedeutung einer primären URL hängt vom Inhaltstyp ab.
- resourceIdentifier
ResourceIdentifier optional
Eine genauere Kennung des Inhaltstyps, für den die Einstellungen abgerufen werden sollen.
- secondaryUrl
String optional
Die sekundäre URL, für die die Inhaltseinstellung abgerufen werden soll. Die Standardeinstellung ist die primäre URL. Die Bedeutung einer sekundären URL hängt vom Inhaltstyp ab. Nicht bei allen Inhaltstypen werden sekundäre URLs verwendet.
-
- Gibt zurück
Promise<object>
Chrome 96 und höher
-
- getResourceIdentifiers
void
Die
getResourceIdentifiers
-Funktion sieht so aus:() => {...}
- Gibt zurück
Promise<ResourceIdentifier[]>
Chrome 96 und höher
-
- set
void
Wendet eine neue Regel für Inhaltseinstellungen an.
Die
set
-Funktion sieht so aus:(details: object) => {...}
- Details
Objekt
- primaryPattern
String
Das Muster für die primäre URL. Weitere Informationen zum Format eines Musters finden Sie unter Muster für Inhaltseinstellungen.
- resourceIdentifier
ResourceIdentifier optional
Die Ressourcen-ID für den Inhaltstyp.
- Bereich
Umfang optional
Wo die Einstellung festgelegt werden soll (Standard: „regular“).
- secondaryPattern
String optional
Das Muster für die sekundäre URL. Standardmäßig werden alle URLs abgeglichen. Weitere Informationen zum Format eines Musters finden Sie unter Muster für Inhaltseinstellungen.
- Einstellung
beliebig
Die durch diese Regel angewendete Einstellung. Mögliche Werte finden Sie in der Beschreibung der einzelnen ContentSetting-Objekte.
-
- Gibt zurück
Promise<void>
Chrome 96 und höher
-
CookiesContentSetting
Enum
„allow“
"block"
"session_only"
FullscreenContentSetting
Wert
„allow“
ImagesContentSetting
Enum
„allow“
"block"
JavascriptContentSetting
Enum
„allow“
"block"
LocationContentSetting
Enum
„allow“
"block"
„ask“
MicrophoneContentSetting
Enum
„allow“
"block"
„ask“
MouselockContentSetting
Wert
„allow“
MultipleAutomaticDownloadsContentSetting
Enum
„allow“
"block"
„ask“
NotificationsContentSetting
Enum
„allow“
"block"
„ask“
PluginsContentSetting
Wert
"block"
PopupsContentSetting
Enum
„allow“
"block"
PpapiBrokerContentSetting
Wert
"block"
ResourceIdentifier
Der einzige Inhaltstyp, der Ressourcen-IDs verwendet, ist contentSettings.plugins
. Weitere Informationen finden Sie unter Ressourcen-IDs.
Attribute
- Beschreibung
String optional
Eine für Menschen lesbare Beschreibung der Ressource.
- id
String
Die Ressourcen-ID für den angegebenen Inhaltstyp.
Scope
Der Bereich der ContentSetting. Eine der folgenden Optionen: regular
: Einstellung für das reguläre Profil (wird vom Inkognitoprofil übernommen, sofern nicht an anderer Stelle überschrieben), incognito\_session\_only
: Einstellung für das Inkognitoprofil, die nur während einer Inkognitositzung festgelegt werden kann und gelöscht wird, wenn die Inkognitositzung endet (überschreibt reguläre Einstellungen).
Enum
"regular"
"incognito_session_only"
Attribute
automaticDownloads
Gibt an, ob Websites mehrere Dateien automatisch herunterladen dürfen. Eine der folgenden Optionen: allow
: Websites dürfen automatisch mehrere Dateien herunterladen, block
: Websites dürfen nicht automatisch mehrere Dateien herunterladen, ask
: Nach der ersten Datei soll gefragt werden, wenn eine Website Dateien automatisch herunterladen möchte. Der Standardwert ist ask
. Die primäre URL ist die URL des Frames der obersten Ebene. Die sekundäre URL wird nicht verwendet.
autoVerify
Gibt an, ob Websites die Private State Tokens API verwenden dürfen. Eine der folgenden Optionen: allow
: Websites dürfen die Private State Tokens API verwenden. block
: Websites dürfen die Private State Tokens API nicht verwenden. Der Standardwert ist allow
. Beim Aufrufen von set()
muss das primäre URL-Muster <all_urls>
sein. Die sekundäre URL wird nicht verwendet.
camera
Gibt an, ob Websites auf die Kamera zugreifen dürfen. Eine der folgenden Optionen: allow
: Websites dürfen auf die Kamera zugreifen. block
: Websites dürfen nicht auf die Kamera zugreifen. ask
: Fragen, wenn eine Website auf die Kamera zugreifen möchte. Der Standardwert ist ask
. Die primäre URL ist die URL des Dokuments, in dem der Kamerazugriff angefordert wurde. Die sekundäre URL wird nicht verwendet. HINWEIS: Die Einstellung „allow“ ist nicht gültig, wenn beide Muster „<all_urls>“ sind.
clipboard
Gibt an, ob Websites über erweiterte Funktionen der Async Clipboard API auf die Zwischenablage zugreifen dürfen. Zu den erweiterten Funktionen gehören alle Funktionen, die über das Schreiben integrierter Formate nach einer Nutzeraktion hinausgehen, d.h. die Möglichkeit, benutzerdefinierte Formate zu lesen und zu schreiben, und die Möglichkeit, ohne Nutzeraktion zu schreiben. Eine der folgenden Optionen: allow
: Websites dürfen erweiterte Funktionen der Zwischenablage verwenden. block
: Websites dürfen keine erweiterten Funktionen der Zwischenablage verwenden. ask
: Fragen, wenn eine Website erweiterte Funktionen der Zwischenablage verwenden möchte. Der Standardwert ist ask
. Die primäre URL ist die URL des Dokuments, in dem der Zugriff auf die Zwischenablage angefordert wurde. Die sekundäre URL wird nicht verwendet.
cookies
Hier können Sie festlegen, ob Websites Cookies und andere lokale Daten speichern dürfen. Einer der folgenden Werte: allow
: Cookies akzeptieren, block
: Cookies blockieren, session\_only
: Cookies nur für die aktuelle Sitzung akzeptieren. Der Standardwert ist allow
. Die primäre URL ist die URL, die den Cookie-Ursprung darstellt. Die sekundäre URL ist die URL des Frames der obersten Ebene.
fullscreen
Veraltet. Hat keine Auswirkungen mehr. Die Vollbildberechtigung wird jetzt automatisch für alle Websites erteilt. Der Wert ist immer allow
.
images
Gibt an, ob Bilder angezeigt werden sollen. Einer der folgenden Werte: allow
: Bilder anzeigen, block
: Bilder nicht anzeigen. Der Standardwert ist allow
. Die primäre URL ist die URL des Frames der obersten Ebene. Die sekundäre URL ist die URL des Bildes.
javascript
Gibt an, ob JavaScript ausgeführt werden soll. Einer der folgenden Werte: allow
: JavaScript ausführen, block
: JavaScript nicht ausführen. Der Standardwert ist allow
. Die primäre URL ist die URL des Frames der obersten Ebene. Die sekundäre URL wird nicht verwendet.
location
Gibt an, ob die Standortbestimmung zulässig ist. Eine der folgenden Optionen: allow
: Websites dürfen Ihren physischen Standort erfassen. block
: Websites dürfen Ihren physischen Standort nicht erfassen. ask
: Sie werden gefragt, bevor Websites Ihren physischen Standort erfassen dürfen. Der Standardwert ist ask
. Die primäre URL ist die URL des Dokuments, in dem Standortdaten angefordert wurden. Die sekundäre URL ist die URL des Frames der obersten Ebene, die sich von der anfragenden URL unterscheiden kann.
microphone
Gibt an, ob Websites auf das Mikrofon zugreifen dürfen. Eine der folgenden Optionen: allow
: Websites dürfen auf das Mikrofon zugreifen. block
: Websites dürfen nicht auf das Mikrofon zugreifen. ask
: Es wird gefragt, wenn eine Website auf das Mikrofon zugreifen möchte. Der Standardwert ist ask
. Die primäre URL ist die URL des Dokuments, in dem der Mikrofonzugriff angefordert wurde. Die sekundäre URL wird nicht verwendet. HINWEIS: Die Einstellung „allow“ ist nicht gültig, wenn beide Muster „<all_urls>“ sind.
mouselock
Veraltet. Hat keine Auswirkungen mehr. Die Berechtigung für die Mausfixierung wird jetzt automatisch für alle Websites gewährt. Der Wert ist immer allow
.
notifications
Gibt an, ob Websites Desktopbenachrichtigungen anzeigen dürfen. Eine der folgenden Optionen: allow
: Websites dürfen Desktopbenachrichtigungen anzeigen. block
: Websites dürfen keine Desktopbenachrichtigungen anzeigen. ask
: Nachfragen, wenn eine Website Desktopbenachrichtigungen anzeigen möchte. Der Standardwert ist ask
. Die primäre URL ist die URL des Dokuments, in dem die Benachrichtigung angezeigt werden soll. Die sekundäre URL wird nicht verwendet.
plugins
Veraltet. Da die Flash-Unterstützung in Chrome 88 entfernt wurde, hat diese Berechtigung keine Auswirkungen mehr. Der Wert ist immer block
. Aufrufe von set()
und clear()
werden ignoriert.
popups
Gibt an, ob Websites Pop-ups anzeigen dürfen. Einer der folgenden Werte: allow
: Websites dürfen Pop-ups anzeigen. block
: Websites dürfen keine Pop-ups anzeigen. Der Standardwert ist block
. Die primäre URL ist die URL des Frames der obersten Ebene. Die sekundäre URL wird nicht verwendet.
unsandboxedPlugins
Veraltet. Bisher wurde damit gesteuert, ob Websites Plug-ins ohne Sandbox ausführen dürfen. Da der Flash-Broker-Prozess in Chrome 88 entfernt wurde, hat diese Berechtigung keine Auswirkungen mehr. Der Wert ist immer block
. Aufrufe von set()
und clear()
werden ignoriert.