Registri unu Chrome MV3-proksan aŭtentigan aŭskultanton por profila ŝanĝo
Registru la aŭtentigan aŭskultanton de Manifest V3 sinkrone kaj legu la nunan proksan konton ene de la okazaĵa retroalvoko.
Ŝanĝi proksajn profilojn devus ŝanĝi la elektitan konton, ne aldoni alian onAuthRequired-aŭskultanton. Alie malnovaj fermoj povas daŭre respondi per la konto el antaŭa elekto.
Registru unu nomitan aŭskultanton ĉe la supra nivelo de la service worker. Legu la nunan konton kiam okazaĵo alvenas:
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'],
);Ĉi tiu fragmento supozas, ke la etendaĵo jam konservas la elektitan HTTP-prokson sub selectedProxy, kun numera pordo kaj la celata konto. La manifestaĵo bezonas webRequest, webRequestAuthProvider, storage kaj la postulatajn gastigantajn permesojn. Ankaŭ la proksa elekto mem bezonas la permeson proxy.
La registrado okazas sinkrone. La konservejo estas legata ene de la retroalvoko, post kiam Chrome havas instalitan aŭskultanton por sendi al ĝi. Registri nur post kiam komenca konserveja promeso solviĝas kreas vekiĝan breĉon.
Aldonu malakceptolimigon antaŭ eldono
La fragmento montras registradon kaj kontan elekton. Aldonu limigitan rekonprovan rikordon por ĉiu peto, por ke malakceptita pasvorto ne estu sendata senfine. Purigu tiun rikordon ĉe kompletigo aŭ malsukceso. Ĝeneralaj variabloj de la laboranto povas malaperi kiam la laboranto haltas, do konservu la staton bezonatan inter vekiĝoj en taŭga konserveja areo de la etendaĵo.
storage.session postvivas laborantajn restartojn ene de la retuma sesio; ĝi ne estas permanenta konta konservejo inter retumaj restartoj. Difinu, kion la etendaĵo faras kiam neniu elektita konto disponeblas.
La kontroloj isProxy kaj challenger malhelpas, ke defio de nerilata retejo ricevu ĉi tiun konton. Se la retumilo neniam sendas la okazaĵon, la purigado de la aŭskultanto sola ne povas produkti ĝin: ekzamenu la faktan peton, permesojn kaj retuman konduton aparte.