પ્રોફાઇલ સ્વિચિંગ માટે એક Chrome MV3 પ્રોક્સી પ્રમાણીકરણ શ્રોતા નોંધો
Manifest V3 પ્રમાણીકરણ શ્રોતાને સિંક્રનસ રીતે નોંધો અને ઇવેન્ટ કૉલબેકની અંદર વર્તમાન પ્રોક્સી ખાતું વાંચો.
પ્રોક્સી પ્રોફાઇલ બદલવાથી પસંદ કરેલું ખાતું બદલવું જોઈએ, બીજો 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 અને જરૂરી host પરવાનગીઓની જરૂર છે. પ્રોક્સી પસંદગીને પોતાને પણ proxy પરવાનગીની જરૂર છે.
નોંધણી સિંક્રનસ રીતે થાય છે. સંગ્રહ કૉલબેકની અંદર વાંચવામાં આવે છે, Chrome પાસે મોકલવા માટે સ્થાપિત શ્રોતા આવ્યા પછી. પ્રારંભિક storage promise ઉકેલાયા પછી જ નોંધણી કરવાથી જાગૃતિનું અંતર ઊભું થાય છે.
પ્રકાશન પહેલાં નકાર મર્યાદા ઉમેરો
ટુકડો નોંધણી અને ખાતા પસંદગી દર્શાવે છે. દરેક વિનંતી માટે મર્યાદિત પુનઃપ્રયાસ રેકોર્ડ ઉમેરો જેથી નકારાયેલો પાસવર્ડ અનંત સમય સુધી સબમિટ ન થાય. પૂર્ણ થવા અથવા નિષ્ફળતા પર તે રેકોર્ડ સાફ કરો. કાર્યકર બંધ થાય ત્યારે કાર્યકર globals અદૃશ્ય થઈ શકે છે, તેથી જાગૃતિઓ વચ્ચે જરૂરી સ્થિતિ યોગ્ય એક્સટેન્શન સંગ્રહ વિસ્તારમાં રાખો.
storage.session બ્રાઉઝર સત્રની અંદર કાર્યકર પુનઃપ્રારંભને ટકી રહે છે; તે બ્રાઉઝર પુનઃપ્રારંભ વચ્ચે કાયમી ખાતા સંગ્રહ નથી. કોઈ પસંદ કરેલું ખાતું ઉપલબ્ધ ન હોય ત્યારે એક્સટેન્શન શું કરે તે વ્યાખ્યાયિત કરો.
isProxy અને challenger તપાસો અસંબંધિત વેબસાઇટ પડકારને આ ખાતું મળતું અટકાવે છે. જો બ્રાઉઝર ક્યારેય ઇવેન્ટ મોકલતું નથી, તો ફક્ત શ્રોતા સફાઈ તેને ઉત્પન્ન કરી શકતી નથી: વાસ્તવિક વિનંતી, પરવાનગીઓ અને બ્રાઉઝર વર્તન અલગથી તપાસો.