O verificare de proxy într-o extensie Chrome are nevoie de o destinație cu răspuns previzibil. Folosiți un punct final HTTPS pe care îl controlați, de exemplu unul care returnează un obiect JSON mic cu adresa pe care o observă.

Rulați cererea dintr-un context al extensiei, cum ar fi service worker-ul sau o pagină a extensiei, cu punctul final în host permissions din manifest:

"host_permissions": ["https://probe.example/*"]

O permisiune de gazdă nu oferă unui content script aceleași privilegii între origini. Țineți verificarea în contextul extensiei în loc să presupuneți că un script injectat poate face aceeași cerere.

async function probe() {
  const controller = new AbortController();
  const timer = setTimeout(() => controller.abort(), 5000);
  try {
    const response = await fetch('https://probe.example/ip', {
      cache: 'no-store',
      signal: controller.signal,
    });
    if (!response.ok) throw new Error(`HTTP ${response.status}`);
    const result = await response.json();
    if (typeof result.ip !== 'string') throw new Error('Bad probe body');
    return result.ip;
  } finally {
    clearTimeout(timer);
  }
}

Numele de gazdă este un substituent. Serverul și clientul trebuie să cadă de acord asupra formatului răspunsului și a politicii de cache. Tratați cererile respinse și răspunsurile deformate în apelantul extensiei în loc să le afișați ca adresă de ieșire validă.

Numiți observația cu precizie

Un rezultat reușit demonstrează că această cerere a ajuns la punctul final și a primit forma de răspuns așteptată. Comparați adresa observată cu ruta intenționată, acolo unde comparația are sens. IP-ul de ascultare al proxy-ului configurat nu trebuie să fie ieșirea lui publică.

O regulă PAC sau o listă de excepții poate trimite verificarea direct, în timp ce o altă destinație folosește un proxy. Citirea setărilor proxy oferă dovezi de configurare; cererea oferă dovezi pentru această destinație. Niciuna singură nu demonstrează că fiecare filă sau URL urmează aceeași rută.

Țineți separat în interfață timpul de expirare, eroarea HTTP și un corp neașteptat. „Această verificare a eșuat” este mai util decât să declarați întreaga mașină offline după o singură cerere.

Articole similare