ப்ராக்ஸி சுயவிவரங்களை மாற்றுவது தேர்ந்தெடுக்கப்பட்ட கணக்கை மாற்ற வேண்டும், மற்றொரு 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 சோதனைகள் தொடர்பில்லாத வலைத்தளச் சவாலுக்கு இந்தக் கணக்கு கிடைப்பதைத் தடுக்கின்றன. உலாவி நிகழ்வை ஒருபோதும் அனுப்பவில்லை என்றால், லிசனர் சுத்தம் மட்டும் அதை உருவாக்க முடியாது: உண்மையான கோரிக்கை, அனுமதிகள் மற்றும் உலாவி நடத்தையைத் தனித்தனியாக ஆராயுங்கள்.

தொடர்புடைய கட்டுரைகள்