ចុះឈ្មោះអ្នកស្តាប់ការផ្ទៀងផ្ទាត់ប្រូកស៊ី Chrome MV3 មួយសម្រាប់ការប្តូរប្រវត្តិរូប
ចុះឈ្មោះអ្នកស្តាប់ការផ្ទៀងផ្ទាត់ Manifest V3 ដោយសមកាលកម្ម ហើយអានគណនីប្រូកស៊ីបច្ចុប្បន្ននៅក្នុងការហៅត្រឡប់នៃព្រឹត្តិការណ៍។
ការប្តូរប្រវត្តិរូបប្រូកស៊ីគួរតែប្តូរគណនីដែលបានជ្រើសរើស មិនមែនបន្ថែមអ្នកស្តាប់ onAuthRequired មួយទៀតទេ។ បើមិនដូច្នេះទេ closures ចាស់អាចបន្តឆ្លើយតបជាមួយគណនីពីការជ្រើសរើសមុន។
ចុះឈ្មោះអ្នកស្តាប់ដែលមានឈ្មោះមួយនៅកម្រិតកំពូលនៃ service worker។ អានគណនីបច្ចុប្បន្ននៅពេលព្រឹត្តិការណ៍មកដល់៖
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 មានអ្នកស្តាប់ដំឡើងសម្រាប់ផ្ញើទៅ។ ការចុះឈ្មោះតែបន្ទាប់ពី promise ផ្ទុកដំបូងត្រូវបានដោះស្រាយបង្កើតគម្លាតនៃការភ្ញាក់។
បន្ថែមដែនកំណត់នៃការបដិសេធមុនពេលចេញផ្សាយ
ផ្នែកនេះបង្ហាញការចុះឈ្មោះ និងការជ្រើសរើសគណនី។ បន្ថែមកំណត់ត្រាព្យាយាមឡើងវិញមានដែនកំណត់សម្រាប់សំណើនីមួយៗ ដើម្បីកុំឱ្យពាក្យសម្ងាត់ដែលត្រូវបានបដិសេធត្រូវបានដាក់ស្នើគ្មានទីបញ្ចប់។ សម្អាតកំណត់ត្រានោះនៅពេលបញ្ចប់ ឬបរាជ័យ។ Globals របស់ worker អាចបាត់នៅពេល worker ឈប់ ដូច្នេះរក្សាស្ថានភាពដែលត្រូវការរវាងការភ្ញាក់នៅក្នុងតំបន់ផ្ទុកសមស្របរបស់កម្មវិធីបន្ថែម។
storage.session រស់រានពីការចាប់ផ្តើមឡើងវិញរបស់ worker ក្នុងវគ្គរុករក។ វាមិនមែនជាការផ្ទុកគណនីអចិន្ត្រៃយ៍រវាងការចាប់ផ្តើមឡើងវិញរបស់រុករកទេ។ កំណត់អ្វីដែលកម្មវិធីបន្ថែមធ្វើនៅពេលមិនមានគណនីដែលបានជ្រើសរើស។
ការត្រួតពិនិត្យ isProxy និង challenger ការពារការប្រកួតប្រជែងពីគេហទំព័រមិនពាក់ព័ន្ធពីការទទួលគណនីនេះ។ ប្រសិនបើរុករកមិនដែលផ្ញើព្រឹត្តិការណ៍ ការសម្អាតអ្នកស្តាប់តែម្នាក់ឯងមិនអាចបង្កើតវាបានទេ៖ ពិនិត្យសំណើពិតប្រាកដ ការអនុញ្ញាត និងឥរិយាបថរុករកដោយឡែកពីគ្នា។