Розширення Firefox можуть вибирати проксі за ID вкладки запиту
Використовуйте proxy.onRequest і коректні дані tabId для маршрутизації за вкладками, з обмеженнями для резервної політики та запитів без прив’язки до вкладки.
API розширень Firefox може ухвалити рішення про проксі для окремого запиту. Якщо запит має коректну прив’язку до вкладки, розширення може порівняти 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, поки завантажується інша вкладка.
Зважайте на базову конфігурацію браузера: значення direct у ProxyInfo не перекриває проксі, налаштований користувачем. Перевіряйте базову політику та поведінку за резерву, а не обіцяйте, що кожен невідповідний запит іде напряму.
Частина трафіку не має достовірних даних про вкладку, і Mozilla документує неточну прив’язку для проксі-з’єднань HTTP/3. Це ілюструє маршрутизацію запитів, а не гарантію, що кожне з’єднання, пов’язане із завданням перегляду, ізольовано за вкладкою. Маршрутизація через контейнери, властива розширенню, — ще одна модель для оцінки.