В Manifest V3 (MV3) введены существенные изменения, которые влияют на работу расширений, включая VPN-расширения. Основная причина, по которой несколько VPN-расширений не могут работать одновременно, связана с ограничениями, введенными в MV3, а также с особенностями работы сетевых запросов в Chrome.
Основные причины
Ограничения на webRequest и webRequestBlocking:
В Manifest V2 расширения могли использовать webRequest и webRequestBlocking для перехвата и изменения сетевых запросов. Это позволяло VPN-расширениям перехватывать весь трафик и направлять его через VPN.
В Manifest V3 использование webRequestBlocking было ограничено, а впоследствии полностью удалено. Вместо этого рекомендуется использовать Service Workers, которые работают асинхронно и не поддерживают блокировку запросов.
Это означает, что расширения больше не могут блокировать запросы и изменять их синхронно, что критически важно для VPN-функциональности.
Service Workers:
В MV3 расширения используют Service Workers для выполнения фоновой работы. Однако Service Workers работают в однопоточном режиме и не могут блокировать запросы, как это делалось в MV2.
Это ограничивает возможность одновременного использования нескольких VPN-расширений, так как они не могут конкурировать за управление сетевым трафиком.
Ограничение на одно VPN-расширение:
Chrome позволяет активировать только одно VPN-расширение за раз. Это связано с тем, что VPN-расширения требуют полного контроля над сетевым трафиком, и одновременное управление трафиком несколькими расширениями может привести к конфликтам и нестабильной работе.
В MV3 это ограничение стало еще более строгим из-за отсутствия синхронной блокировки запросов.
Политика безопасности:
Google вводит более строгие правила безопасности в MV3, чтобы предотвратить злоупотребления расширениями. Это включает ограничения на перехват и изменение сетевых запросов, что делает невозможным одновременную работу нескольких VPN-расширений.
Конкуренция за сетевой трафик:
Если бы несколько VPN-расширений могли работать одновременно, они бы конкурировали за управление сетевым трафиком. Это могло бы привести к непредсказуемым результатам, включая потерю данных, нестабильную работу и другие проблемы.
Как это можно обойти?
К сожалению, в текущей реализации Manifest V3 нет способа обойти это ограничение. Однако есть несколько альтернативных подходов:
Использование внешних VPN:
Вместо VPN-расширений в браузере можно использовать внешние VPN-клиенты (например, OpenVPN, NordVPN, ExpressVPN и т.д.), которые работают на уровне операционной системы и не зависят от ограничений Chrome.
Использование расширений на основе Manifest V2:
Если вам нужно использовать несколько VPN-расширений, вы можете попробовать расширения, которые все еще работают на Manifest V2. Однако имейте в виду, что Google постепенно отказывается от поддержки MV2, и в будущем эти расширения могут перестать работать.
Разработка собственного решения:
Если вам нужно использовать несколько VPN-расширений, вы можете разработать собственное решение на основе Manifest V2 или использовать сторонние инструменты, такие как Proxy Server или SOCKS5.
Заключение
Ограничения Manifest V3 делают невозможным одновременную работу нескольких VPN-расширений в Chrome. Это связано с изменениями в архитектуре расширений, включая отказ от синхронной блокировки запросов и введение Service Workers. Если вам нужно использовать несколько VPN-решений, лучше использовать внешние VPN-клиенты или расширения на основе Manifest V2 (если они доступны).