L'API d'extensions de Firefox peut prendre une décision de proxy pour une requête individuelle. Lorsque la requête possède une attribution d'onglet valide, une extension peut comparer son ID d'onglet avec l'onglet choisi par l'utilisateur.

Pour le script d'arrière-plan d'une extension Firefox existante, le fragment de routage peut être :

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

L'extension fournit selectedTabId depuis sa propre logique de sélection utilisateur. Son hôte HTTP et son port entier peuvent provenir de la liste de proxys HTTP pour un test autorisé sur un onglet public. Elle a besoin de la permission proxy et des permissions d'hôte couvrant les URL filtrées.

Cela diffère d'un script PAC, dont la décision standard fondée sur l'URL et l'hôte n'identifie pas d'onglet de navigateur. Cela diffère aussi du changement du proxy manuel global de Firefox pendant qu'un autre onglet charge.

Tenez compte de la configuration sous-jacente du navigateur : la valeur direct de ProxyInfo ne remplace pas un proxy configuré par l'utilisateur. Vérifiez la politique de base et le comportement de repli au lieu de promettre que chaque requête non concordante passe directement.

Une partie du trafic manque d'informations d'onglet fiables, et Mozilla documente une attribution inexacte pour les connexions proxy HTTP/3. Cela illustre le routage des requêtes, non une garantie que chaque connexion liée à une tâche de navigation est isolée par onglet. Le routage par conteneurs propre à l'extension est un autre modèle à évaluer.

Articles similaires