Globálne nastavenia proxy vo Firefoxe ovplyvňujú bežné aj súkromné okná. Preto API proxy.settings vyžaduje, aby malo rozšírenie prístup k súkromným oknám, aj keď bola operácia spustená z bežného okna.

Rozšírenie môže tento predpoklad overiť pred zmenou nastavenia:

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 je existujúci konfiguračný objekt vo formáte Firefoxu. Rozšírenie tiež potrebuje obvyklé povolenie pre proxy API.

Ak manifest povoľuje súkromné použitie, používateľ tento prístup riadi v podrobnostiach správy rozšírenia pomocou Run in Private Windows. Kontrola toto rozhodnutie hlási; povolenie automaticky neudeľuje.

Bez potrebného prístupu proxy.settings.set vyhodí výnimku. Stane sa to skôr, než rozšírenie preukázalo akékoľvek spojenie s navrhovaným proxy, takže nahradenie jeho IP alebo portu s týmto zlyhaním nesúvisí.

Odmietnutie ošetrite v používateľskom rozhraní rozšírenia a zachovajte voľbu používateľa. Keď povolenie a použitie konfigurácie uspejú, vyhodnoťte skutočnú trasu cieľa samostatne.

Súvisiace články