Înregistrați onStartup și onInstalled sincron la nivelul superior al unui service worker Manifest V3 atunci când aceste evenimente trebuie să aplice proxy-ul ales. Pentru o extensie fixată intenționat pe o singură rută:

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);

Manifestul trebuie să declare permisiunea de proxy și să numească acest worker din fundal. Pentru o rută publică permisă fără autentificare proxy, înlocuiți punctul final cu un candidat din lista de proxy-uri HTTP, păstrând portul ca număr întreg.

onStartup este pornirea profilului cu extensia instalată. onInstalled include și actualizările, inclusiv reîncărcarea unei extensii neîmpachetate, care contează ca actualizare. Evenimentul de creare a ferestrei descrie fiecare fereastră și se poate declanșa repetat într-o singură sesiune.

Dacă extensia are profiluri salvate sau un comutator de oprire, lăsați handler-ul să încarce și să aplice acea alegere în loc să reseteze o valoare implicită codificată la fiecare actualizare. Înregistrarea ascultătorilor rămâne la nivelul superior; munca asincronă poate începe când Chrome apelează handler-ul.

Testați instalarea și pornirea profilului separat în timpul dezvoltării, verificând rezultatul configurației pentru fiecare. Sunt două căi de inițializare, nu o dovadă obținută deschizând altă fereastră.

Articole similare