Firefox-ის გაფართოებებს შეუძლიათ პროქსის არჩევა მოთხოვნის ჩანართის ID-ით
გამოიყენეთ proxy.onRequest და სწორი tabId ინფორმაცია ჩანართზე დაფუძნებული მარშრუტიზაციისთვის, სარეზერვო პოლიტიკისა და ჩანართის მიკუთვნების გარეშე მოთხოვნების შეზღუდვებით.
Firefox-ის გაფართოების API-ს შეუძლია პროქსის გადაწყვეტილება მიიღოს ცალკეული მოთხოვნისთვის. როცა მოთხოვნას აქვს სწორი ჩანართის მიკუთვნება, გაფართოებას შეუძლია მისი ჩანართის ID შეადაროს მომხმარებლის მიერ არჩეულ ჩანართს.
არსებული Firefox გაფართოების ფონური სკრიპტისთვის მარშრუტიზაციის ფრაგმენტი შეიძლება იყოს:
browser.proxy.onRequest.addListener(details => {
if (details.tabId === selectedTabId) {
return {type: 'http', host: 'proxy.example', port: 8080};
}
return {type: 'direct'};
}, {urls: ['<all_urls>']});გაფართოება selectedTabId-ს აწვდის საკუთარი მომხმარებლის არჩევის ლოგიკიდან. მისი HTTP ჰოსტი და მთელი რიცხვითი პორტი შეიძლება მოვიდეს HTTP პროქსების სიიდან დაშვებული საჯარო ჩანართის ტესტისთვის. საჭიროა პროქსის ნებართვა და ჰოსტის ნებართვები, რომლებიც ფილტრირებულ URL-ებს ფარავს.
ეს განსხვავდება PAC სკრიპტისგან, რომლის სტანდარტული URL-ისა და ჰოსტის გადაწყვეტილება ბრაუზერის ჩანართს არ იდენტიფიცირებს. განსხვავდება იმისგანაც, როცა Firefox-ის გლობალურ ხელით პროქსის ვცვლით, სანამ სხვა ჩანართი იტვირთება.
გაითვალისწინეთ ბრაუზერის ძირითადი კონფიგურაცია: ProxyInfo-ს direct მნიშვნელობა არ ცვლის მომხმარებლის მიერ დაყენებულ პროქსის. შეამოწმეთ საბაზისო პოლიტიკა და სარეზერვო ქცევა იმის დაპირების ნაცვლად, რომ ყოველი შეუსაბამო მოთხოვნა პირდაპირ გადის.
ზოგიერთ ტრაფიკს საიმედო ჩანართის ინფორმაცია აკლია და Mozilla HTTP/3 პროქსის კავშირებისთვის არაზუსტ მიკუთვნებას აფიქსირებს. ეს ასახავს მოთხოვნების მარშრუტიზაციას და არა გარანტიას, რომ ნავიგაციის ამოცანასთან დაკავშირებული ყოველი კავშირი ჩანართის მიხედვით იზოლირებულია. გაფართოებისთვის სპეციფიკური კონტეინერის მარშრუტიზაცია შესაფასებელი კიდევ ერთი მოდელია.