As extensões do Firefox podem escolher um proxy a partir do ID de aba do pedido
Use proxy.onRequest e informações tabId válidas para encaminhamento por aba, com limites para a política de recurso e pedidos sem atribuição de aba.
A API de extensões do Firefox pode tomar uma decisão de proxy para um pedido individual. Quando o pedido tem uma atribuição de aba válida, uma extensão pode comparar o seu ID de aba com a aba que o utilizador selecionou.
Para o script de fundo de uma extensão Firefox existente, o fragmento de encaminhamento pode ser:
browser.proxy.onRequest.addListener(details => {
if (details.tabId === selectedTabId) {
return {type: 'http', host: 'proxy.example', port: 8080};
}
return {type: 'direct'};
}, {urls: ['<all_urls>']});A extensão fornece selectedTabId a partir da sua própria lógica de seleção do utilizador. O anfitrião HTTP e a porta inteira podem vir da lista de proxies HTTP para um teste permitido numa aba pública. Precisa da permissão de proxy e das permissões de anfitrião que cobrem os URL filtrados.
Isto difere de um script PAC, cuja decisão padrão por URL e anfitrião não identifica uma aba do navegador. Também difere de alterar o proxy manual global do Firefox enquanto outra aba está a carregar.
Tenha em conta a configuração subjacente do navegador: o valor direct do ProxyInfo não substitui um proxy configurado pelo utilizador. Verifique a política base e o comportamento de recurso em vez de prometer que todos os pedidos sem correspondência passam diretamente.
Parte do tráfego não tem informações fiáveis de aba, e a Mozilla documenta uma atribuição imprecisa para ligações de proxy HTTP/3. Isto ilustra o encaminhamento de pedidos, não uma garantia de que cada ligação associada a uma tarefa de navegação está isolada por aba. O encaminhamento por contentores específico da extensão é outro modelo a avaliar.