Beschreibung
Mit der chrome.contentSettings
API kannst du Einstellungen ändern, um festzulegen, ob Websites Funktionen wie Cookies, JavaScript und Plug-ins verwenden dürfen. Allgemein gesagt, können Sie das Verhalten von Chrome mithilfe der Inhaltseinstellungen für einzelne Websites und nicht global anpassen.
Berechtigungen
contentSettings
Manifest
Sie müssen „contentSettings“ deklarieren im Manifest der Erweiterung die Berechtigung, die API zu verwenden. Beispiel:
{
"name": "My extension",
...
"permissions": [
"contentSettings"
],
...
}
Muster für die Inhaltseinstellung
Mithilfe von Mustern können Sie die Websites angeben, auf die sich die jeweiligen Inhaltseinstellungen auswirken. Beispiel:
https://*.youtube.com/*
gibt youtube.com und alle zugehörigen Subdomains an. Die Syntax für Inhalte
Das Festlegen von Mustern ist mit einigen Unterschieden identisch mit denen für Übereinstimmungsmuster:
- Bei URLs vom Typ
http
,https
undftp
muss der Pfad ein Platzhalter (/*
) sein. Fürfile
-URLs ist der Pfad muss vollständig angegeben werden und dürfen keine Platzhalter enthalten. - Im Gegensatz zu Abgleichsmustern kann mit Inhaltseinstellungsmustern eine Portnummer angegeben werden. Wenn ein Anschluss Nummer angegeben ist, stimmt das Muster nur mit Websites mit diesem Anschluss überein. Wenn keine Portnummer stimmt das Muster mit allen Ports überein.
Mustervorrang
Wenn für eine bestimmte Website mehrere Regeln zur Inhaltseinstellung gelten, wird die Regel mit der spezifischeren Regelung Muster hat Vorrang.
Die folgenden Muster sind beispielsweise nach Priorität geordnet:
https://www.example.com/*
https://*.example.com/*
(Übereinstimmung mit example.com und allen Subdomains)<all_urls>
(Übereinstimmung mit jeder URL)
Es gibt drei Arten von Platzhaltern, die beeinflussen, wie spezifisch ein Muster ist:
- 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/*
)
Ist ein Muster an einem Teil spezifischer als ein anderes Muster, aber an einem anderen weniger spezifisch, werden die verschiedenen Teile in der folgenden Reihenfolge geprüft: Hostname, Schema, Port. Beispiel: Der Parameter Die folgenden Muster sind nach Priorität geordnet:
https://www.example.com:*/*
Gibt den Hostnamen und das Schema an.*:/www.example.com:123/*
Nicht so hoch, weil damit zwar der Hostname angegeben wird, aber nicht das Schema.https://*.example.com:123/*
Niedriger, da zwar der Port und das Schema angegeben sind, der Hostname aber einen Platzhalter enthält.
Primäre und sekundäre Muster
Welche URL bei der Auswahl der Inhaltseinstellung berücksichtigt wird, hängt vom Inhaltstyp ab.
Für contentSettings.notifications
basieren die Einstellungen beispielsweise auf der URL, die im
Omnibox. Diese URL wird als „primäre“ URL bezeichnet. URL
Bei einigen Inhaltstypen können zusätzliche URLs berücksichtigt werden. Ob eine Website zum Beispiel
contentSettings.cookies
wird anhand der URL der HTTP-Anfrage festgelegt (die
primäre URL) sowie die in der Omnibox angezeigten URL, die als "sekundäre" URL bezeichnet wird,
URL).
Wenn mehrere Regeln ein primäres und sekundäres Muster haben, wird die Regel mit dem spezifischeren primären Muster hat Vorrang. Wenn es mehrere Regeln mit demselben primären Muster gibt, wird die Regel mit dem hat Vorrang vor einem spezifischeren sekundären Muster. Die folgende Liste von Primäre/sekundäre Musterpaare sind nach Priorität geordnet:
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> |
Ressourcenkennzeichnungen
Mithilfe von Ressourcenkennungen können Sie Inhaltseinstellungen für bestimmte Untertypen eines Inhaltstyps festlegen.
Derzeit ist contentSettings.plugins
der einzige Inhaltstyp, der Ressourcenkennungen unterstützt.
wobei ein Ressourcen-Identifikator ein bestimmtes Plug-in identifiziert. Wenn Sie Inhaltseinstellungen anwenden, müssen Sie zuerst
für das jeweilige Plug-in ausgewählt sind. Wenn keine Einstellungen für einen bestimmten
sind die allgemeinen Inhaltseinstellungen für Plug-ins aktiviert.
Wenn eine Regel für Inhaltseinstellungen beispielsweise die Ressourcen-ID adobe-flash-player
und den
Muster <all_urls>
hat, hat sie Vorrang vor einer Regel ohne Ressourcenkennung und das Muster
https://www.example.com/*
, auch wenn dieses Muster spezifischer ist.
Sie können eine Liste mit Ressourcenkennungen für einen Inhaltstyp abrufen, indem Sie die Methode
contentSettings.ContentSetting.getResourceIdentifiers
-Methode. Die zurückgegebene Liste kann sich ändern mit
die Anzahl der installierten Plug-ins auf dem Gerät des Nutzers, Chrome versucht jedoch, die IDs stabil zu halten
für Plug-in-Updates.
Beispiele
Wenn Sie diese API ausprobieren möchten, installieren Sie das contentSettings API-Beispiel aus chrome-extension-samples zu erstellen.
Typen
AutoVerifyContentSetting
Enum
"Zulassen"
"block"
CameraContentSetting
Enum
"Zulassen"
"block"
"fragen"
ClipboardContentSetting
Enum
"Zulassen"
"block"
"fragen"
ContentSetting
Attribute
-
löschen
voidm
<ph type="x-smartling-placeholder"></ph> VersprechenAlle von dieser Erweiterung festgelegten Regeln zur Inhaltseinstellung löschen.
Die Funktion
clear
sieht so aus: <ph type="x-smartling-placeholder"></ph>(details: object, callback?: function) => {...}
-
Details
Objekt
-
Bereich
Umfang optional
Ort, an dem die Einstellung gelöscht werden soll (Standardeinstellung: Normal)
-
-
callback
Funktion optional
Der Parameter
callback
sieht so aus: <ph type="x-smartling-placeholder"></ph>() => void
-
Gibt zurück
Versprechen<void>
Chrome 96 und höherPromise-Objekte werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
-
-
get
voidm
<ph type="x-smartling-placeholder"></ph> VersprechenRuft die aktuelle Inhaltseinstellung für ein vorgegebenes URL-Paar ab.
Die Funktion
get
sieht so aus: <ph type="x-smartling-placeholder"></ph>(details: object, callback?: function) => {...}
-
Details
Objekt
-
inkognito
Boolescher Wert optional
Gibt an, ob die Inhaltseinstellungen für eine Inkognitositzung überprü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 spezifischere 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 alle Inhaltstypen verwenden sekundäre URLs.
-
-
callback
Funktion optional
Der Parameter
callback
sieht so aus: <ph type="x-smartling-placeholder"></ph>(details: object) => void
-
Details
Objekt
-
Einstellung
T
Die Inhaltseinstellung. Die möglichen Werte finden Sie in der Beschreibung der einzelnen ContentSetting-Objekte.
-
-
-
Gibt zurück
Promise<object>
Chrome 96 und höherPromise-Objekte werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
-
-
getResourceIdentifiers
voidm
<ph type="x-smartling-placeholder"></ph> VersprechenDie Funktion
getResourceIdentifiers
sieht so aus: <ph type="x-smartling-placeholder"></ph>(callback?: function) => {...}
-
callback
Funktion optional
Der Parameter
callback
sieht so aus: <ph type="x-smartling-placeholder"></ph>(resourceIdentifiers?: ResourceIdentifier[]) => void
-
resourceIdentifiers
ResourceIdentifier[] optional
Eine Liste von Ressourcen-IDs für diesen Inhaltstyp oder
undefined
, wenn dieser Inhaltstyp keine Ressourcen-IDs verwendet.
-
-
Gibt zurück
Promise<ResourceIdentifier[]>
Chrome 96 und höherPromise-Objekte werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
-
-
set
voidm
<ph type="x-smartling-placeholder"></ph> VersprechenWendet eine neue Regel zur Inhaltseinstellung an.
Die Funktion
set
sieht so aus: <ph type="x-smartling-placeholder"></ph>(details: object, callback?: function) => {...}
-
Details
Objekt
-
primaryPattern
String
Das Muster für die primäre URL. Weitere Informationen zum Format eines Musters finden Sie unter Muster zur Inhaltseinstellung.
-
resourceIdentifier
ResourceIdentifier optional
Die Ressourcen-ID für den Inhaltstyp.
-
Bereich
Umfang optional
Einstellung, wo die Einstellung festgelegt werden soll (Standardeinstellung: Normal)
-
secondaryPattern
String optional
Das Muster für die sekundäre URL. Die Standardeinstellung ist eine Übereinstimmung mit allen URLs. Weitere Informationen zum Format eines Musters finden Sie unter Muster zur Inhaltseinstellung.
-
Einstellung
beliebig
Die von dieser Regel angewendete Einstellung. Die möglichen Werte finden Sie in der Beschreibung der einzelnen ContentSetting-Objekte.
-
-
callback
Funktion optional
Der Parameter
callback
sieht so aus: <ph type="x-smartling-placeholder"></ph>() => void
-
Gibt zurück
Versprechen<void>
Chrome 96 und höherPromise-Objekte werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
-
CookiesContentSetting
Enum
"Zulassen"
"block"
"session_only"
FullscreenContentSetting
Wert
"Zulassen"
ImagesContentSetting
Enum
"Zulassen"
"block"
JavascriptContentSetting
Enum
"Zulassen"
"block"
LocationContentSetting
Enum
"Zulassen"
"block"
"fragen"
MicrophoneContentSetting
Enum
"Zulassen"
"block"
"fragen"
MouselockContentSetting
Wert
"Zulassen"
MultipleAutomaticDownloadsContentSetting
Enum
"Zulassen"
"block"
"fragen"
NotificationsContentSetting
Enum
"Zulassen"
"block"
"fragen"
PluginsContentSetting
Wert
"block"
PopupsContentSetting
Enum
"Zulassen"
"block"
PpapiBrokerContentSetting
Wert
"block"
ResourceIdentifier
Der einzige Inhaltstyp, der Ressourcenkennungen verwendet, ist contentSettings.plugins
. Weitere Informationen finden Sie unter Ressourcenkennzeichnungen.
Attribute
-
Beschreibung
String optional
Eine menschenlesbare Beschreibung der Ressource.
-
id
String
Die Ressourcen-ID für den angegebenen Inhaltstyp.
Scope
Der Bereich von ContentSetting. Eine von
regular
: Einstellung für das reguläre Profil (die vom Inkognitoprofil übernommen wird, wenn sie nicht an anderer Stelle überschrieben wird)
incognito\_session\_only
: Einstellung für Inkognitoprofile, die nur während einer Inkognitositzung festgelegt werden können und am Ende der Inkognitositzung gelöscht wird. Die normalen Einstellungen werden damit überschrieben.
Enum
"Normal"
"Inkognito_session_only"
Attribute
automaticDownloads
Gibt an, ob Websites automatisch mehrere Dateien herunterladen dürfen. Eine von
allow
: Websites erlauben, automatisch mehrere Dateien herunterzuladen,
block
: Websites dürfen nicht automatisch mehrere Dateien herunterladen,
ask
: Nachfragen, wenn eine Website Dateien nach der ersten Datei automatisch herunterladen möchte.
Der Standardwert ist ask
.
Die primäre URL ist die URL des Frames auf oberster Ebene. Die sekundäre URL wird nicht verwendet.
autoVerify
Gibt an, ob Websites die Private State Tokens API verwenden dürfen. Eine von
allow
: Websites erlauben, die Private State Tokens API zu verwenden
block
: Websites daran hindern, die Private State Tokens API zu verwenden.
Der Standardwert ist allow
.
Die primäre URL ist die URL des Frames auf oberster Ebene. Die sekundäre URL wird nicht verwendet. HINWEIS: Beim Aufrufen von set()
muss das primäre Muster sein .
Typ
camera
Gibt an, ob Websites auf die Kamera zugreifen dürfen. Eine von
allow
: Websites den Zugriff auf die Kamera erlauben
block
: Websites dürfen nicht auf die Kamera zugreifen,
ask
: Nachfragen, wenn eine Website auf die Kamera zugreifen möchte
Der Standardwert ist ask
.
Die primäre URL ist die URL des Dokuments, das den Kamerazugriff angefordert hat. Die sekundäre URL wird nicht verwendet.
HINWEIS: Das "Zulassen" ist ungültig, wenn beide Muster ein ' sind.
Typ
clipboard
Gibt an, ob Websites über die erweiterten Funktionen der Async Clipboard API auf die Zwischenablage zugreifen dürfen. „Erweitert“ Zu den Funktionen gehören nicht nur das Schreiben von integrierten Formaten nach einer Nutzergeste, z.B. die Möglichkeit zum Lesen, das Schreiben benutzerdefinierter Formate und die Möglichkeit, ohne Nutzergeste zu schreiben. Eine von
allow
: Websites erlauben, erweiterte Funktionen für die Zwischenablage zu verwenden
block
: Websites dürfen keine erweiterten Funktionen für die Zwischenablage verwenden,
ask
: Nachfragen, wenn eine Website erweiterte Funktionen für die Zwischenablage verwenden möchte
Der Standardwert ist ask
.
Die primäre URL ist die URL des Dokuments, das Zugriff auf die Zwischenablage angefordert hat. Die sekundäre URL wird nicht verwendet.
Typ
cookies
Gibt an, ob Cookies und andere lokale Daten von Websites gespeichert werden dürfen. Eine von
allow
: Cookies akzeptieren,
block
: Cookies blockieren,
session\_only
: Nur Cookies für die aktuelle Sitzung werden akzeptiert.
Der Standardwert ist allow
.
Die primäre URL ist die URL, die den Ursprung des Cookies darstellt. Die sekundäre URL ist die URL des Frames auf oberster Ebene.
Typ
fullscreen
Veraltet. Dies hat keine Auswirkungen mehr. Die Vollbildberechtigung wird jetzt automatisch für alle Websites gewährt. Der Wert ist immer allow
.
Typ
images
Legt fest, ob Bilder angezeigt werden. Eine von
allow
: Bilder anzeigen,
block
: Keine Bilder anzeigen.
Der Standardwert ist allow
.
Die primäre URL ist die URL des Frames auf oberster Ebene. Die sekundäre URL ist die URL des Bildes.
Typ
javascript
Gibt an, ob JavaScript ausgeführt werden soll. Eine von
allow
: JavaScript ausführen,
block
: Kein JavaScript ausführen.
Der Standardwert ist allow
.
Die primäre URL ist die URL des Frames auf oberster Ebene. Die sekundäre URL wird nicht verwendet.
Typ
location
Gibt an, ob die Standortbestimmung zulässig ist. Eine von
allow
: Erlauben Sie Websites, Ihren physischen Standort zu erfassen.
block
: Websites dürfen nicht meinen physischen Standort abrufen,
ask
: Fragen Sie nach, bevor Sie Websites erlauben, Ihren physischen Standort zu verfolgen.
Der Standardwert ist ask
.
Die primäre URL ist die URL des Dokuments, das Standortdaten angefordert hat. Bei der sekundären URL handelt es sich um die URL des Frames auf oberster Ebene, die sich von der anfragenden URL unterscheiden kann oder nicht.
Typ
microphone
Gibt an, ob Websites auf das Mikrofon zugreifen dürfen. Eine von
allow
: Websites erlauben, auf das Mikrofon zuzugreifen
block
: Websites dürfen nicht auf das Mikrofon zugreifen
ask
: Nachfragen, wenn eine Website auf das Mikrofon zugreifen möchte
Der Standardwert ist ask
.
Die primäre URL ist die URL des Dokuments, das den Mikrofonzugriff angefordert hat. Die sekundäre URL wird nicht verwendet.
HINWEIS: Das "Zulassen" ist ungültig, wenn beide Muster ein ' sind.
Typ
mouselock
Veraltet. Dies hat keine Auswirkungen mehr. Die Berechtigung zur Maussperre wird jetzt automatisch für alle Websites gewährt. Der Wert ist immer allow
.
Typ
notifications
Gibt an, ob Websites Desktop-Benachrichtigungen anzeigen dürfen. Eine von
allow
: Websites erlauben, Desktop-Benachrichtigungen anzuzeigen
block
: Websites dürfen keine Desktopbenachrichtigungen anzeigen,
ask
: Nachfragen, wenn eine Website Desktop-Benachrichtigungen 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.
Typ
plugins
Veraltet. Da die Flash-Unterstützung in Chrome 88 entfernt wurde, hat diese Berechtigung keine Auswirkungen mehr. Der Wert ist immer block
. Anrufe an set()
und clear()
werden ignoriert.
Typ
popups
Gibt an, ob Websites Pop-ups anzeigen dürfen. Eine von
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 auf oberster Ebene. Die sekundäre URL wird nicht verwendet.
Typ
unsandboxedPlugins
Veraltet. Bisher wurde kontrolliert, ob Websites Plug-ins ohne Sandbox ausführen dürfen. Nachdem der Flash Broker-Prozess in Chrome 88 entfernt wurde, hat diese Berechtigung jedoch keine Wirkung mehr. Der Wert ist immer block
. Anrufe an set()
und clear()
werden ignoriert.