incognito
| Typ | String |
|---|---|
| Verpflichtend | Nein |
| Manifestversion | 2 oder höher |
| Beispiel |
json json json |
Verwenden Sie den Schlüssel incognito, um zu steuern, wie die Erweiterung mit privaten Browserfenstern arbeitet.
Hinweis:
Standardmäßig laufen Erweiterungen nicht in privaten Browserfenstern. Ob eine Erweiterung auf private Browserfenster zugreifen kann, liegt in der Kontrolle des Benutzers. Für weitere Details siehe Extensions in Private Browsing. Ihre Erweiterung kann überprüfen, ob sie auf private Browserfenster zugreifen kann, indem sie extension.isAllowedIncognitoAccess verwendet.
Dies ist ein String, der einen der folgenden Werte annehmen kann:
-
"spanning" (der Standard): Die Erweiterung sieht Ereignisse sowohl von privaten als auch von nicht-privaten Fenstern und Tabs. Fenster und Tabs erhalten eine
incognito-Eigenschaft in demWindowoderTab, das sie repräsentiert. Diese Eigenschaft zeigt an, ob das Objekt privat ist oder nicht:jsbrowser.windows.getLastFocused().then((windowInfo) => { console.log(`Window is private: ${windowInfo.incognito}`); }); -
"split": Die Erweiterung ist aufgetrennt zwischen privaten und nicht-privaten Fenstern. Es laufen effektiv zwei Kopien der Erweiterung: Eine sieht nur nicht-private Fenster, die andere nur private Fenster. Jede Kopie hat isolierten Zugriff auf Web-APIs (zum Beispiel wird
localStoragenicht geteilt). Allerdings wird die WebExtension-APIstorage.localgeteilt.Hinweis: Firefox unterstützt den "split"-Modus nicht. Erweiterungen, die diese Option in Firefox anfordern, werden im Modus "not_allowed" installiert. Es wird jedoch empfohlen, den
incognito-Schlüssel von migrierten Erweiterungen zu löschen, um das Standardverhalten ("spanning") beizubehalten. -
"not_allowed": Private Tabs und Fenster sind für die Erweiterung unsichtbar.
Datenschutzüberlegungen
Wenn Ihre Erweiterung den Modus "spanning" verwendet, um auf private und nicht-private Fenster zuzugreifen, achten Sie darauf, nicht den Zustand von privaten an nicht-private Browsersitzungen zu leaken. Ein häufiger Fehler ist es, Daten von einem Content Script, das in einem privaten Browsertab läuft, an einen externen Server mit einer Netzwerk-Anfrage von der Hintergrundseite zu senden. Da die Hintergrundseite Cookies mit der Haupt-Browsersitzung teilt, kann dies private Browsing-Aktivität mit der nicht-privaten Sitzung verknüpfen.
Um dies zu vermeiden, nutzen Sie credentials: "omit" und cache: "no-cache" in allen fetch()-Aufrufen von der Hintergrundseite, die Daten aus privaten Browserfenstern beinhalten könnten:
fetch(url, {
credentials: "omit",
cache: "no-cache",
});
Beispiele
"incognito": "spanning"
"incognito": "split"
"incognito": "not_allowed"