Sajili msikilizaji mmoja wa uthibitishaji wa proksi wa Chrome MV3 kwa kubadilisha wasifu
Sajili msikilizaji wa uthibitishaji wa Manifest V3 kwa usawa na soma akaunti ya proksi ya sasa ndani ya mwitikio wa tukio.
Kubadilisha wasifu wa proksi kunapaswa kubadilisha akaunti iliyochaguliwa, si kuongeza msikilizaji mwingine wa onAuthRequired. Vinginevyo closures za zamani zinaweza kuendelea kujibu na akaunti ya uchaguzi uliopita.
Sajili msikilizaji mmoja mwenye jina katika ngazi ya juu ya service worker. Soma akaunti ya sasa tukio linapofika:
function answerProxyChallenge(details, reply) {
if (!details.isProxy) {
reply({});
return;
}
chrome.storage.session.get('selectedProxy').then(({selectedProxy: p}) => {
if (!p || details.challenger.host !== p.host ||
details.challenger.port !== p.port) {
reply({});
return;
}
reply({authCredentials: {username: p.username, password: p.password}});
}).catch(() => reply({cancel: true}));
}
chrome.webRequest.onAuthRequired.addListener(
answerProxyChallenge,
{urls: ['<all_urls>']},
['asyncBlocking'],
);Kipande hiki kinachukulia kuwa kiendelezi tayari kinahifadhi proksi ya HTTP iliyochaguliwa chini ya selectedProxy, na bandari ya nambari na akaunti inayokusudiwa. Manifest inahitaji webRequest, webRequestAuthProvider, storage na ruhusa za mwenyeji zinazohitajika. Uchaguzi wa proksi wenyewe pia unahitaji ruhusa ya proxy.
Usajili hufanyika kwa usawa. Hifadhi inasomwa ndani ya mwitikio, baada ya Chrome kuwa na msikilizaji aliyesakinishwa wa kutuma kwake. Kusajili tu baada ya ahadi ya awali ya hifadhi kutatuliwa huunda pengo la kuamka.
Ongeza kikomo cha kukataliwa kabla ya kutoa
Kipande kinaonyesha usajili na uchaguzi wa akaunti. Ongeza rekodi ndogo ya kujaribu tena kwa kila ombi ili nenosiri lililokataliwa lisitumwe bila kikomo. Safisha rekodi hiyo inapokamilika au kushindwa. Global za mfanyakazi zinaweza kutoweka mfanyakazi anaposimama, kwa hiyo weka hali inayohitajika kati ya kuamka katika eneo la hifadhi linalofaa la kiendelezi.
storage.session hustahimili kuanzishwa upya kwa mfanyakazi ndani ya kikao cha kivinjari; si hifadhi ya kudumu ya akaunti kati ya kuanzishwa upya kwa kivinjari. Eleza kiendelezi hufanya nini wakati hakuna akaunti iliyochaguliwa inapatikana.
Ukaguzi wa isProxy na challenger huzuia changamoto kutoka tovuti isiyohusiana kupokea akaunti hii. Ikiwa kivinjari hakiwasilishi tukio kamwe, kusafisha msikilizaji peke yake hakuwezi kukizalisha: chunguza ombi halisi, ruhusa na tabia ya kivinjari kwa masharti tofauti.