Firefox plėtiniai gali pasirinkti tarpinį serverį pagal užklausos skirtuko ID
Naudokite proxy.onRequest ir galiojančią tabId informaciją maršrutizavimui pagal skirtukus, atsižvelgdami į atsarginės politikos ir užklausų be skirtuko priskyrimo apribojimus.
Firefox plėtinių API gali priimti tarpinio serverio sprendimą vienai užklausai. Kai užklausa turi galiojantį skirtuko priskyrimą, plėtinys gali palyginti jos skirtuko ID su vartotojo pasirinktu skirtuku.
Esamo Firefox plėtinio fono scenarijuje maršrutizavimo fragmentas gali būti toks:
browser.proxy.onRequest.addListener(details => {
if (details.tabId === selectedTabId) {
return {type: 'http', host: 'proxy.example', port: 8080};
}
return {type: 'direct'};
}, {urls: ['<all_urls>']});Plėtinys pateikia selectedTabId pagal savo vartotojo pasirinkimo logiką. Jo HTTP hostas ir sveikasis prievadas gali būti paimti iš HTTP tarpinių serverių sąrašo leidžiamam viešo skirtuko testui. Reikia tarpinio serverio leidimo ir hosto leidimų, apimančių filtruotus URL.
Tai skiriasi nuo PAC scenarijaus, kurio standartinis sprendimas pagal URL ir hostą neatpažįsta naršyklės skirtuko. Tai skiriasi ir nuo Firefox visuotinio rankinio tarpinio serverio keitimo, kol kraunamas kitas skirtukas.
Atsižvelkite į pagrindinę naršyklės konfigūraciją: ProxyInfo reikšmė direct nepakeičia vartotojo nustatyto tarpinio serverio. Tikrinkite pagrindinę politiką ir atsarginį elgesį, o ne žadėkite, kad kiekviena nesutampanti užklausa eis tiesiogiai.
Dalis srauto neturi patikimos skirtuko informacijos, o Mozilla dokumentuoja netikslų priskyrimą HTTP/3 tarpinio serverio ryšiams. Tai iliustruoja užklausų maršrutizavimą, o ne garantiją, kad kiekvienas su naršymo užduotimi susijęs ryšys yra izoliuotas pagal skirtuką. Plėtiniui būdingas konteinerių maršrutizavimas yra kitas modelis, kurį verta įvertinti.