Aplicar um proxy do Chrome nos eventos de arranque da extensão
Registe handlers de arranque e de instalação para uma extensão de proxy Manifest V3 em vez de ligar a inicialização a uma nova janela do navegador.
Registe onStartup e onInstalled de forma síncrona no nível superior de um service worker Manifest V3 quando esses eventos devem aplicar o proxy escolhido. Para uma extensão fixada intencionalmente numa única rota:
function applyProxy() {
chrome.proxy.settings.set({
value: {
mode: 'fixed_servers',
rules: {
singleProxy: {
scheme: 'http',
host: 'proxy.example',
port: 8080,
},
},
},
scope: 'regular',
}, () => {
if (chrome.runtime.lastError) {
console.error(chrome.runtime.lastError.message);
}
});
}
chrome.runtime.onStartup.addListener(applyProxy);
chrome.runtime.onInstalled.addListener(applyProxy);O manifest deve declarar a permissão de proxy e nomear este worker em segundo plano. Para uma rota pública permitida sem autenticação de proxy, substitua o endpoint por um candidato da lista de proxies HTTP, mantendo a porta como número inteiro.
onStartup é o arranque do perfil com a extensão instalada. onInstalled também abrange atualizações, incluindo o recarregamento de uma extensão não empacotada, que conta como atualização. O evento de criação de janela descreve cada janela e pode disparar repetidamente numa mesma sessão.
Se a extensão tiver perfis guardados ou um interruptor de desligar, deixe o handler carregar e aplicar essa escolha em vez de repor um valor predefinido codificado em cada atualização. O registo de listeners permanece no nível superior; o trabalho assíncrono pode começar quando o Chrome chama o handler.
Teste a instalação e o arranque do perfil em separado durante o desenvolvimento, verificando o resultado da configuração para cada um. São dois caminhos de inicialização, não uma prova obtida ao abrir outra janela.