Àyẹ̀wò proxy nínú Chrome extension nílò ibi tí ìdáhùn rẹ̀ lè ṣe àfojúsùn. Lo HTTPS ibi ìparí tí ìwọ fúnra rẹ ń ṣàkóso, bíi èyí tí ń dá JSON ohun kékeré padà pẹ̀lú àdírẹ́sì tí ó rí.

Ṣe ìbéèrè náà láti inú àyíká extension, bíi service worker rẹ̀ tàbí ojú-ìwé extension, pẹ̀lú ibi ìparí nínú host permissions ti manifest:

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

Ìyọ̀ǹda host kò fún content script ní àǹfààní àgbéléwọ̀n orísun kan náà. Pa àyẹ̀wò náà mọ́ nínú àyíká extension dípò rírò pé script tí a fi sínú lè ṣe ìbéèrè kan náà.

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

Orúkọ host jẹ́ àpapọ̀ ibi. Server àti client gbọ́dọ̀ gbà lórí ìrísí ìdáhùn àti ìlànà cache. Ṣàkóso àwọn ìbéèrè tí a kọ̀ àti àwọn ìdáhùn tí kò tọ́ nínú olùpè extension dípò fífi wọ́n hàn gẹ́gẹ́ bí àdírẹ́sì ìjáde tí ó wúlò.

Dárúkọ àkíyèsí náà ní pípé

Àbájáde àṣeyọrí fi hàn pé ìbéèrè yìí dé ibi ìparí àti pé ó gba ìrísí ìdáhùn tí a retí. Fi àdírẹ́sì tí a ṣàkíyèsí wé ọ̀nà tí o ní lọ́kàn, níbi tí ìfiwéra náà bá yẹ.IP tí proxy tí a ṣètò ń gbọ́ kò gbọdọ̀ jẹ́ ìjáde gbogbogbo rẹ̀.

Òfin PAC tàbí àkójọ àforíjì lè rán àyẹ̀wò náà tààrà nígbà tí ibi mìíràn ń lo proxy.Kíkà àwọn ètò proxy ń pèsè ẹ̀rí ìṣètò; ìbéèrè náà ń pèsè ẹ̀rí fún ibi yìí. Kò sí ọ̀kan nínú wọn tí ó lè fi hàn pé gbogbo tab tàbí URL ń tẹ̀lé ọ̀nà kan náà.

Ya àkókò ìparí, àṣìṣe HTTP àti ara àìròtẹ́lẹ̀ sọ́tọ̀ nínú ojú-ìwé. «Àyẹ̀wò yìí kùnà» wúlò ju fífi gbogbo ẹ̀rọ hàn gẹ́gẹ́ bí kò sí lórí ayélujá lẹ́yìn ìbéèrè kan.

Àwọn àpilẹ̀kọ tó jọra