Die globalen Proxy-Einstellungen von Firefox betreffen sowohl normale als auch private Fenster. Deshalb verlangt die proxy.settings-API, dass die Erweiterung Zugriff auf private Fenster hat, selbst wenn der Vorgang aus einem normalen Fenster gestartet wurde.

Die Erweiterung kann diese Bedingung prüfen, bevor sie die Einstellung ändert:

const allowed = await browser.extension.isAllowedIncognitoAccess();
if (!allowed) {
  throw new Error('Private-window access is required for global proxy settings');
}
await browser.proxy.settings.set({ value: proxyConfig });

proxyConfig ist das vorhandene Konfigurationsobjekt im Firefox-Format. Die Erweiterung benötigt außerdem ihre gewöhnliche Berechtigung für die Proxy-API.

Wenn das Manifest die private Nutzung erlaubt, steuert der Benutzer diesen Zugriff in den Verwaltungsdetails der Erweiterung über Run in Private Windows. Die Prüfung meldet diese Wahl; sie erteilt die Berechtigung nicht automatisch.

Ohne den erforderlichen Zugriff wirft proxy.settings.set eine Ausnahme. Das geschieht, bevor die Erweiterung eine Verbindung zum vorgeschlagenen Proxy nachgewiesen hat, daher hat das Ersetzen seiner IP oder seines Ports nichts mit diesem Fehler zu tun.

Behandeln Sie die Ablehnung in der Oberfläche der Erweiterung und bewahren Sie die Wahl des Benutzers. Sobald Berechtigung und Anwendung der Konfiguration gelingen, bewerten Sie die tatsächliche Zielroute getrennt.

Ähnliche Artikel