La API de extensiones de Firefox puede tomar una decisión de proxy para una solicitud individual. Cuando la solicitud tiene una atribución de pestaña válida, una extensión puede comparar su ID de pestaña con la pestaña que seleccionó el usuario.

Para el script en segundo plano de una extensión de Firefox existente, el fragmento de enrutamiento puede ser:

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

La extensión suministra selectedTabId desde su propia lógica de selección del usuario. Su host HTTP y su puerto entero pueden provenir de la lista de proxies HTTP para una prueba permitida con una pestaña pública. Necesita el permiso de proxy y los permisos de host que cubran las URL filtradas.

Esto difiere de un script PAC, cuya decisión estándar por URL y host no identifica una pestaña del navegador. También difiere de cambiar el proxy manual global de Firefox mientras se carga otra pestaña.

Tenga en cuenta la configuración subyacente del navegador: el valor direct de ProxyInfo no anula un proxy configurado por el usuario. Compruebe la política base y el comportamiento de reserva en lugar de prometer que toda solicitud no coincidente va directamente.

Parte del tráfico carece de información fiable de pestaña, y Mozilla documenta una atribución imprecisa para las conexiones de proxy HTTP/3. Esto ilustra el enrutamiento de solicitudes, no una garantía de que cada conexión asociada a una tarea de navegación quede aislada por pestaña. El enrutamiento por contenedores específico de la extensión es otro modelo que evaluar.

Artículos relacionados