Firefox paplašinājumu API var pieņemt starpniekservera lēmumu atsevišķam pieprasījumam. Ja pieprasījumam ir derīga cilnes piesaiste, paplašinājums var salīdzināt tā cilnes ID ar lietotāja izvēlēto cilni.

Esoša Firefox paplašinājuma fona skriptam maršrutēšanas fragments var būt šāds:

browser.proxy.onRequest.addListener(details => {
  if (details.tabId === selectedTabId) {
    return {type: 'http', host: 'proxy.example', port: 8080};
  }
  return {type: 'direct'};
}, {urls: ['<all_urls>']});

Paplašinājums nodrošina selectedTabId no savas lietotāja izvēles loģikas. Tā HTTP resursdators un veselā skaitļa ports var nākt no HTTP starpniekserveru saraksta atļautam publiskas cilnes testam. Tam vajadzīga starpniekservera atļauja un resursdatora atļaujas, kas aptver filtrētos URL.

Tas atšķiras no PAC skripta, kura standarta lēmums pēc URL un resursdatora neidentificē pārlūka cilni. Tas atšķiras arī no Firefox globālā manuālā starpniekservera maiņas, kamēr ielādējas cita cilne.

Ņemiet vērā pārlūka pamatkonfigurāciju: ProxyInfo vērtība direct neaizstāj lietotāja iestatīto starpniekserveri. Pārbaudiet pamatpolitiku un rezerves uzvedību, tā vietā lai solītu, ka katrs nesakrītošais pieprasījums iet tieši.

Daļai trafika trūkst uzticamas cilnes informācijas, un Mozilla dokumentē neprecīzu piesaisti HTTP/3 starpniekservera savienojumiem. Tas ilustrē pieprasījumu maršrutēšanu, nevis garantiju, ka katrs ar pārlūkošanas uzdevumu saistītais savienojums ir izolēts pēc cilnes. Paplašinājumam raksturīgā konteineru maršrutēšana ir vēl viens izvērtējams modelis.

Saistītie raksti