പ്രോക്സി പ്രൊഫൈലുകൾ മാറ്റുമ്പോൾ തിരഞ്ഞെടുത്ത അക്കൗണ്ട് മാറണം, മറ്റൊരു onAuthRequired ശ്രോതാവ് ചേർക്കരുത്. അല്ലെങ്കിൽ പഴയ closures മുൻ തിരഞ്ഞെടുപ്പിലെ അക്കൗണ്ട് ഉപയോഗിച്ച് തുടർന്ന് മറുപടി നൽകിയേക്കാം.

സർവീസ് വർക്കറുടെ ഏറ്റവും മുകളിലെ തലത്തിൽ ഒരു പേരുള്ള ശ്രോതാവ് രജിസ്റ്റർ ചെയ്യുക. ഇവന്റ് വരുമ്പോൾ നിലവിലെ അക്കൗണ്ട് വായിക്കുക:

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

ഈ ഭാഗം അനുമാനിക്കുന്നത് എക്സ്റ്റൻഷൻ തിരഞ്ഞെടുത്ത HTTP പ്രോക്സി ഇതിനകം selectedProxy എന്നതിന് കീഴിൽ, സംഖ്യാപരമായ പോർട്ടും ഉദ്ദേശിച്ച അക്കൗണ്ടും സഹിതം സൂക്ഷിക്കുന്നു എന്നാണ്. മാനിഫെസ്റ്റിന് webRequest, webRequestAuthProvider, storage എന്നിവയും ആവശ്യമായ ഹോസ്റ്റ് അനുമതികളും വേണം. പ്രോക്സി തിരഞ്ഞെടുപ്പിന് തന്നെ proxy അനുമതിയും വേണം.

രജിസ്ട്രേഷൻ സമകാലികമായി സംഭവിക്കുന്നു. Chrome-ന് അയയ്ക്കാൻ ഇൻസ്റ്റാൾ ചെയ്ത ശ്രോതാവ് ലഭിച്ചതിന് ശേഷം സംഭരണം കോൾബാക്കിനുള്ളിൽ വായിക്കുന്നു. പ്രാരംഭ storage promise പരിഹരിച്ചതിന് ശേഷം മാത്രം രജിസ്റ്റർ ചെയ്യുന്നത് ഉണരൽ വിടവ് സൃഷ്ടിക്കുന്നു.

പുറത്തിറക്കുന്നതിന് മുമ്പ് നിരസിക്കൽ പരിധി ചേർക്കുക

ഭാഗം രജിസ്ട്രേഷനും അക്കൗണ്ട് തിരഞ്ഞെടുപ്പും കാണിക്കുന്നു. നിരസിച്ച പാസ്വേഡ് അനന്തമായി സമർപ്പിക്കാതിരിക്കാൻ ഓരോ അഭ്യർത്ഥനയ്ക്കും പരിമിതമായ പുനഃശ്രമം രേഖ ചേർക്കുക. പൂർത്തിയാകുമ്പോഴോ പരാജയപ്പെടുമ്പോഴോ ആ രേഖ വൃത്തിയാക്കുക. വർക്കർ നിലയ്ക്കുമ്പോൾ worker globals അപ്രത്യക്ഷമായേക്കാം, അതിനാൽ ഉണരലുകൾക്കിടയിൽ ആവശ്യമായ അവസ്ഥ എക്സ്റ്റൻഷന്റെ ഉചിതമായ സംഭരണ മേഖലയിൽ സൂക്ഷിക്കുക.

storage.session ബ്രൗസർ സെഷനുള്ളിൽ വർക്കർ പുനരാരംഭങ്ങളെ അതിജീവിക്കുന്നു; ബ്രൗസർ പുനരാരംഭങ്ങൾക്കിടയിൽ ഇത് സ്ഥിരമായ അക്കൗണ്ട് സംഭരണമല്ല. തിരഞ്ഞെടുത്ത അക്കൗണ്ട് ലഭ്യമല്ലാത്തപ്പോൾ എക്സ്റ്റൻഷൻ എന്ത് ചെയ്യുന്നു എന്ന് നിർവചിക്കുക.

isProxy, challenger പരിശോധനകൾ ബന്ധമില്ലാത്ത വെബ്സൈറ്റ് വെല്ലുവിളിക്ക് ഈ അക്കൗണ്ട് ലഭിക്കുന്നത് തടയുന്നു. ബ്രൗസർ ഇവന്റ് ഒരിക്കലും അയയ്ക്കുന്നില്ലെങ്കിൽ, ശ്രോതാവ് വൃത്തിയാക്കൽ മാത്രം അത് സൃഷ്ടിക്കാൻ കഴിയില്ല: യഥാർത്ഥ അഭ്യർത്ഥന, അനുമതികൾ, ബ്രൗസർ സ്വഭാവം എന്നിവ വെവ്വേറെ പരിശോധിക്കുക.

അനുബന്ധ ലേഖനങ്ങൾ