Il-bdil tal-profili tal-proxy għandu jbiddel il-kont magħżul, mhux iżid sema' onAuthRequired ieħor. Inkella closures qodma jistgħu jibqgħu jwiegħdu bil-kont minn għażla preċedenti.

Irreġistra sema' wieħed bl-isem fil-livell ta' fuq tas-service worker. Aqra l-kont attwali meta jasal avveniment:

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'],
);

Dan il-framment jassumi li l-estensjoni diġà taħżen il-proxy HTTP magħżul taħt selectedProxy, b'port numeriku u l-kont maħsub. Il-manifest jeħtieġ webRequest, webRequestAuthProvider, storage u l-permessi tal-host meħtieġa. L-għażla tal-proxy nnifisha wkoll teħtieġ il-permess proxy.

Ir-reġistrazzjoni ssir b'mod sinkroniku. Il-ħażna tinqara fil-callback, wara li Chrome ikollu sema' installat biex jibgħat lilu. Li tirreġistra biss wara li tiġi solvuta promise tal-ħażna inizjali toħloq vojt fil-qawmien.

Żid limitu ta' rifjut qabel il-ħruġ

Il-framment juri r-reġistrazzjoni u l-għażla tal-kont. Żid rekord ta' tentattivi mill-ġdid limitat għal kull talba sabiex password miċħuda ma tiġix sottomessa bla tarf. Naddaf dak ir-rekord mal-kompletament jew mal-falliment. Il-globals tal-worker jistgħu jisparixxu meta l-worker jieqaf, għalhekk żomm l-istat meħtieġ bejn il-qawmien f'żona tal-ħażna adatta tal-estensjoni.

storage.session jgħix mill-ġdid tal-worker fi ħdan is-sessjoni tal-browser; mhuwiex ħażna permanenti tal-kont bejn il-ġdid tal-browser. Iddefinixxi x'tagħmel l-estensjoni meta ma jkunx hemm kont magħżul disponibbli.

Il-kontrolli isProxy u challenger jipprevjenu sfida ta' sit web mhux relatat milli tirċievi dan il-kont. Jekk il-browser qatt ma jibgħat l-avveniment, it-tindif tas-sema' waħdu ma jistax jipproduċih: eżamina t-talba attwali, il-permessi u l-imġiba tal-browser separatament.

Artikli relatati