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.

Artigos relacionados