د پروکسي پروفایلونو بدلول باید ټاکل شوی حساب بدل کړي، نه بل 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 لاندې ساتي، د عددي پورټ او د هغې د پام وړ حساب سره. Manifest ته webRequest، webRequestAuthProvider، storage او اړین د کوربه اجازې ورته اړتیا ده. د پروکسي ټاکنه پخپله هم د proxy اجازې ته اړتیا لري.

ثبت په همغږي ډول پېښیږي. زېرمه د بیرته غږ دننه لوستل کیږي، وروسته له دې چې Chrome د لېږلو لپاره نصب شوی اورېدونکی ولري. یوازې د لومړني storage promise له حل وروسته ثبت کول د ویښیدو تشه رامنځته کوي.

د خپریدو دمخه د ردولو حد اضافه کړئ

برخه ثبت او د حساب ټاکنه ښیي. د هرې غوښتنې لپاره یو محدود بیا هڅې ریکارډ اضافه کړئ ترڅو رد شوی پټنوم په بې پایه توګه ونه لېږل شي. هغه ریکارډ د بشپړیدو یا ناکامۍ په وخت پاک کړئ. کله چې کارکوونکی ودریږي د worker globals کېدای شي ورک شي، نو د ویښیدو ترمنځ اړین حالت په مناسب غزول شوې زېرمې سیمه کې وساتئ.

storage.session د براوزر ناستې په دننه کې د کارکوونکي بیا پیلیدو ته دوام ورکوي؛ دا د براوزر د بیا پیلیدو ترمنځ تلپاتې حساب زېرمه نه ده. تعریف کړئ چې غزول شوې برخه څه کوي کله چې ټاکل شوی حساب شتون نه لري.

د isProxy او challenger ګوتنې د یوې بې اړیکې وېبپاڼې ننګونې مخه نیسي چې دا حساب ترلاسه کړي. که براوزر پېښه هیڅکله ونه لېږي، یوازې د اورېدونکي پاکول نشي کولای هغه تولید کړي: اصلي غوښتنه، اجازې او د براوزر چلند جلا جلا وګورئ.

اړوندې مقالې