Die Erweiterungs-API von Firefox kann eine Proxyentscheidung für eine einzelne Anfrage treffen. Hat die Anfrage eine gültige Tab-Zuordnung, kann eine Erweiterung ihre Tab-ID mit dem vom Nutzer gewählten Tab vergleichen.

Für ein Hintergrundskript einer bestehenden Firefox-Erweiterung kann das Routing-Fragment so aussehen:

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

Die Erweiterung liefert selectedTabId aus ihrer eigenen Nutzerauswahllogik. Der HTTP-Host und der ganzzahlige Port können für einen erlaubten Test mit einem öffentlichen Tab aus der HTTP-Proxy-Liste stammen. Nötig sind die Proxy-Berechtigung und Host-Berechtigungen, die die gefilterten URLs abdecken.

Das unterscheidet sich von einem PAC-Skript, dessen Standardentscheidung anhand von URL und Host keinen Browsertab identifiziert. Es unterscheidet sich auch davon, den globalen manuellen Proxy von Firefox zu ändern, während ein anderer Tab lädt.

Berücksichtigen Sie die zugrunde liegende Browserkonfiguration: Der Wert direct in ProxyInfo überschreibt keinen vom Nutzer konfigurierten Proxy. Prüfen Sie die Basisrichtlinie und das Fallback-Verhalten, statt zu versprechen, dass jede nicht zugeordnete Anfrage direkt geht.

Ein Teil des Datenverkehrs hat keine verlässlichen Tab-Informationen, und Mozilla dokumentiert eine ungenaue Zuordnung für HTTP/3-Proxyverbindungen. Das veranschaulicht Request-Routing, nicht die Garantie, dass jede Verbindung einer Browsing-Aufgabe nach Tab isoliert ist. Die erweiterungsspezifische Container-Weiterleitung ist ein weiteres Modell, das zu bewerten ist.

Ähnliche Artikel