ପ୍ରକ୍ସି ପ୍ରୋଫାଇଲ୍ ବଦଳାଇବା ଉଚିତ୍ ଯେ ଚୟନିତ ଖାତା ବଦଳିବ, ଅନ୍ୟ ଏକ 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 ସମାଧାନ ହେବା ପରେ ହିଁ ପଞ୍ଜିକରଣ କଲେ ଜାଗରଣ ଫାଙ୍କ ସୃଷ୍ଟି ହୁଏ।

ମୁକ୍ତି ପୂର୍ବରୁ ଏକ ପ୍ରତ୍ୟାଖ୍ୟାନ ସୀମା ଯୋଡ଼ନ୍ତୁ

ଅଂଶ ପଞ୍ଜିକରଣ ଏବଂ ଖାତା ଚୟନ ଦେଖାଏ। ପ୍ରତ୍ୟାଖ୍ୟାତ ପାସୱାର୍ଡ ଅସୀମିତ ଭାବରେ ଦାଖଲ ନହେବା ପାଇଁ ପ୍ରତ୍ୟେକ ଅନୁରୋଧ ପାଇଁ ଏକ ସୀମିତ ପୁନଃଚେଷ୍ଟା ରେକର୍ଡ ଯୋଡ଼ନ୍ତୁ। ସମାପ୍ତି କିମ୍ବା ବିଫଳତାରେ ସେହି ରେକର୍ଡ ସଫା କରନ୍ତୁ। ୱାର୍କର ବନ୍ଦ ହେଲେ ୱାର୍କର globals ଅଦୃଶ୍ୟ ହୋଇପାରେ, ତେଣୁ ଜାଗରଣ ମଧ୍ୟରେ ଆବଶ୍ୟକ ସ୍ଥିତି ଉପଯୁକ୍ତ ଏକ୍ସଟେନସନ୍ ସଂରକ୍ଷଣ କ୍ଷେତ୍ରରେ ରଖନ୍ତୁ।

storage.session ବ୍ରାଉଜର ସେସନ୍ ଭିତରେ ୱାର୍କର ପୁନଃଆରମ୍ଭକୁ ସହ୍ୟ କରେ; ଏହା ବ୍ରାଉଜର ପୁନଃଆରମ୍ଭ ମଧ୍ୟରେ ସ୍ଥାୟୀ ଖାତା ସଂରକ୍ଷଣ ନୁହେଁ। କୌଣସି ଚୟନିତ ଖାତା ଉପଲବ୍ଧ ନଥିଲେ ଏକ୍ସଟେନସନ୍ କଣ କରେ ତାହା ନିର୍ଦ୍ଧାରଣ କରନ୍ତୁ।

isProxy ଏବଂ challenger ଯାଞ୍ଚ ଏକ ଅସମ୍ପର୍କିତ ୱେବସାଇଟ୍ ଚ୍ୟାଲେଞ୍ଜକୁ ଏହି ଖାତା ପାଇବାରୁ ରୋକେ। ଯଦି ବ୍ରାଉଜର ଇଭେଣ୍ଟ କେବେ ପଠାଏ ନାହିଁ, କେବଳ ଶ୍ରୋତା ସଫାଇ ତାହା ଉତ୍ପନ୍ନ କରିପାରିବ ନାହିଁ: ପ୍ରକୃତ ଅନୁରୋଧ, ଅନୁମତି ଏବଂ ବ୍ରାଉଜର ଆଚରଣ ଅଲଗା ଭାବରେ ଯାଞ୍ଚ କରନ୍ତୁ।

ସମ୍ପର୍କିତ ପ୍ରବନ୍ଧ