API rozszerzeń Firefoksa może podjąć decyzję o proxy dla pojedynczego żądania. Gdy żądanie ma prawidłowe przypisanie karty, rozszerzenie może porównać jego ID karty z kartą wybraną przez użytkownika.

Dla skryptu w tle istniejącego rozszerzenia Firefoksa fragment trasowania może wyglądać tak:

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

Rozszerzenie dostarcza selectedTabId z własnej logiki wyboru użytkownika. Jego host HTTP i całkowity port mogą pochodzić z listy proxy HTTP do dozwolonego testu publicznej karty. Potrzebuje uprawnienia proxy i uprawnień hosta obejmujących filtrowane adresy URL.

Różni się to od skryptu PAC, którego standardowa decyzja według URL i hosta nie identyfikuje karty przeglądarki. Różni się też od zmiany globalnego ręcznego proxy Firefoksa, gdy ładuje się inna karta.

Uwzględnij podstawową konfigurację przeglądarki: wartość direct w ProxyInfo nie zastępuje proxy ustawionego przez użytkownika. Sprawdź politykę bazową i zachowanie zapasowe, zamiast obiecywać, że każde niedopasowane żądanie pójdzie bezpośrednio.

Część ruchu nie ma wiarygodnych informacji o karcie, a Mozilla dokumentuje niedokładne przypisanie dla połączeń proxy HTTP/3. Ilustruje to trasowanie żądań, a nie gwarancję, że każde połączenie związane z zadaniem przeglądania jest izolowane według karty. Trasowanie przez kontenery specyficzne dla rozszerzenia to kolejny model do oceny.

Powiązane artykuły