
Ограничения Manifest V3 в расширении EasyProxy для управления прокси
martini-drinker 17 минут назад Ограничения Manifest V3 в расширении EasyProxy для управления прокси Простой 4 мин 538 Расширения для браузеров Firefox Google Chrome JavaScript * Из песочницы С выходом Manifest V3 в...
Anthropic — What company has the best second artificial intelligence model at the end of June?
В сфере искусственного интеллекта произошло заметное событие. martini-drinker 17 минут назад Ограничения Manifest V3 в расширении EasyProxy для управления прокси Простой 4 мин 538 Расширения для браузеров Firefox Google Chrome JavaScript * Из песочницы С выходом Manifest V3 в Google Chrome большинство расширений, позволяющих управлять настройками прокси, перестали полноценно работать, а некоторые и вовсе перестали. Основным функционалом для меня (как думаю и для большинства пользователей) было автоматическое туннелирование запросов для сформированного пользователем списка хостов, а также включение прокси для отдельной вкладки (окна), не затрагивая остальные. Изучив доступные варианты в магазине расширений Chrome, понял что подходящих вариантов практически нет.
Чаще всего расширения предлагают использовать пользовательский PAC скрипт или запустить прокси для всего браузера. В первом случае постоянное редактирование скрипта при попытке добавить очередной хост выглядит малопривлекательным, во втором сильно - урезает гибкость работы в интернете. Поэтому было принято решение написания собственного минималистичного расширения с удобным управлением, без сторонних библиотек.
Технические детали
Программирование для меня - хобби, поэтому писал код в свободное от работы время. В силу того, что Manifest V3 ударил и по блокировщикам рекламы в том числе, решил что настало время перейти на Firefox. Особенно после того, как посмотрел документацию и понял, что Proxy API здесь намного гибче.
И, как самый крупный бонус, возможность установки расширения на Android версию браузера. Firefox позволил реализовать все пожелания по управлению прокси. API дает доступ к сетевым запросам, показывая: запрашиваемый адрес, id вкладки, с которой пришел запрос, режим (regular, incognito) и пр.
и позволяет точечно пускать трафик через прокси, в зависимости от условий. Полная панель управления получилась такой. ControlsЧтобы хост текущей вкладки было удобно добавлять/удалять из пользовательсного списка Host list, сделал большую кнопку сверху.
Отраслевые последствия
Простой вариант - брать хост из адресной строки не подошел, так как он становится доступным только после ответа от сервера. Если запрос “зависнет”, то пришлось бы ждать, пока он не “отвалится” по таймауту. Поэтому выручил browser.
По настройкам прокси все стандартно. Доступные типы: HTTP, HTTPS, SOCKS4, SOCKS5 + авторизация. Я же использую локальный SOCKS5 без авторизации.
SettingsСам Host list реализовал как обычную таблицу с полями, но с возможностью переключения на текстовое поле, чтобы можно было разом загрузить/выгрузить большой список. Также добавил поддержку поддоменов, если основной домен не должен быть туннелирован. Host listВ процессе написания понял, что было бы удобно получить полный список запрашиваемых хостов для конкретной вкладки и конкретного ресурса, поэтому добавил Host tracker, позволяющий добавлять/удалять адреса в Host list в своей же вкладке.
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.





