Rekisteröi yksi Chrome MV3 -välityspalvelimen todennuksen kuuntelija profiilin vaihtoa varten
Rekisteröi Manifest V3 -todennuskuuntelija synkronisesti ja lue nykyinen välityspalvelintili tapahtuman takaisinkutsussa.
Välityspalvelinprofiilien vaihtamisen pitäisi vaihtaa valittu tili, ei lisätä toista onAuthRequired-kuuntelijaa. Muuten vanhat sulkeumat voivat jatkaa vastaamista aiemman valinnan tilillä.
Rekisteröi yksi nimetty kuuntelija service workerin ylimmällä tasolla. Lue nykyinen tili, kun tapahtuma saapuu:
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'],
);Tämä katkelma olettaa, että laajennus tallentaa jo valitun HTTP-välityspalvelimen selectedProxyn alle, numeerisella portilla ja aiotulla tilillä. Manifesti tarvitsee webRequestin, webRequestAuthProviderin, storagen ja vaaditut isäntäoikeudet. Myös välityspalvelimen valinta tarvitsee proxy-oikeuden.
Rekisteröinti tapahtuu synkronisesti. Tallennustila luetaan takaisinkutsun sisällä sen jälkeen, kun Chromella on asennettu kuuntelija, jolle toimittaa. Rekisteröinti vasta alkuperäisen storage-lupauksen ratkettua luo heräämisaukko.
Lisää hylkäysraja ennen julkaisua
Katkelma näyttää rekisteröinnin ja tilin valinnan. Lisää rajattu uudelleenyritystietue jokaista pyyntöä kohden, jotta hylättyä salasanaa ei lähetetä loputtomasti. Tyhjennä tietue valmistuessa tai epäonnistuessa. Workerin globaalit voivat kadota, kun worker pysähtyy, joten pidä heräämisten välillä tarvittava tila laajennuksen sopivassa tallennusalueessa.
storage.session kestää workerin uudelleenkäynnistykset selaimen istunnon sisällä; se ei ole pysyvä tilitallennus selaimen uudelleenkäynnistysten välillä. Määritä, mitä laajennus tekee, kun valittua tiliä ei ole saatavilla.
isProxy- ja challenger-tarkistukset estävät asiaankuulumattoman verkkosivuston haasteen saamasta tätä tiliä. Jos selain ei koskaan toimita tapahtumaa, pelkkä kuuntelijan siivous ei voi tuottaa sitä: tutki varsinainen pyyntö, oikeudet ja selaimen käyttäytyminen erikseen.