Globalne ustawienia proxy Firefoksa dotyczą zarówno zwykłych, jak i prywatnych okien. Dlatego API proxy.settings wymaga, aby rozszerzenie miało dostęp do okien prywatnych, nawet gdy operację rozpoczęto w zwykłym oknie.

Rozszerzenie może sprawdzić ten warunek przed zmianą ustawienia:

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 to istniejący obiekt konfiguracji w formacie Firefoksa. Rozszerzenie potrzebuje także zwykłego uprawnienia do API proxy.

Gdy manifest zezwala na użycie prywatne, użytkownik kontroluje ten dostęp w szczegółach zarządzania rozszerzeniem przez Run in Private Windows. Sprawdzenie zgłasza ten wybór; nie przyznaje uprawnienia automatycznie.

Bez wymaganego dostępu proxy.settings.set zgłasza wyjątek. Dzieje się to, zanim rozszerzenie wykaże jakiekolwiek połączenie z proponowanym proxy, więc zamiana jego adresu IP lub portu nie ma związku z tym niepowodzeniem.

Obsłuż odrzucenie w interfejsie rozszerzenia i zachowaj wybór użytkownika. Gdy uprawnienie i zastosowanie konfiguracji się powiodą, oceń rzeczywistą trasę docelową osobno.

Powiązane artykuły