Chrome onAuthRequired: verifique isProxy antes de enviar credenciais
O callback de autenticação do Chrome pode descrever um desafio do proxy ou um desafio da origem. Fornecer as mesmas credenciais a ambos é um bug de escopo de credenciais.
Uma extensão do navegador pode encontrar desafios de autenticação de dois lugares diferentes: o proxy que transporta a solicitação e o site de destino. Eles não devem receber automaticamente a mesma conta.
O discriminador útil no evento webRequest.onAuthRequired do Chrome é isProxy. Um callback que remove essa verificação apenas para fazer um prompt desaparecer pode começar a fornecer credenciais do proxy a um desafio da origem.
Combine com o proxy em que você pretende confiar
Verificar isProxy é um começo. Restrinja também o tratamento ao desafiante proxy esperado e ao contexto da solicitação. Uma extensão que gerencia vários endpoints deve selecionar a conta pertencente àquele endpoint, não uma única senha global para cada desafio.
Não presuma que definir a rota do proxy e lidar com o login dele sejam uma única permissão ou uma única chamada de API. O Chrome os documenta separadamente. Use a referência atual de webRequest para dados de eventos e permissões de autenticação. Um exemplo de registro de listener do Manifest V3 mostra o registro síncrono e a seleção de conta dentro do callback.
Verifique a geração do manifesto
Exemplos que mencionam uma API WebRequest experimental vêm de versões antigas da extensão. Os requisitos atuais de permissão dependem da geração do manifesto da extensão e do modelo de implantação. Em especial, o tratamento de autenticação tem seu próprio caminho de permissão compatível; um exemplo obsoleto de listener de bloqueio não basta para estabelecer que uma extensão do Manifest V3 possa executá-lo sem alterações.
Um manipulador correto também deve evitar repetir indefinidamente as mesmas credenciais rejeitadas. Trate um segundo desafio após uma conta fornecida como evidência a investigar, não como um pedido para reproduzir a senha para sempre.
As credenciais devem permanecer no caminho de tratamento protegido adequado da extensão. Não as publique em um arquivo PAC nem as codifique diretamente em um exemplo distribuído. O objetivo é um login de proxy de escopo restrito, não uma regra para todo o navegador que responda a cada desafio de autenticação com o mesmo segredo.