Скрипт PAC использует синтаксис JavaScript. Это не означает, что он выполняется внутри веб-страницы.

Резолвер прокси предоставляет среду выполнения с входными данными маршрутизации и вспомогательными функциями. Он не гарантирует window, document, DOM или navigator.appName страницы. Поэтому фрагмент определения браузера, скопированный со страницы, может не сработать ещё до того, как ваше правило прокси что-либо вернёт.

Стройте маршрут на поддерживаемых данных, например на переданных URL и имени хоста, или на документированной вспомогательной функции, когда этого требует сетевая политика. Не выводите версию браузера из случайных особенностей движка JavaScript и не позволяйте этому выводу определять выход.

Если разным управляемым клиентам действительно нужны разные политики, доставляйте нужную конфигурацию через их систему управления. Корпоративная политика Firefox — один из вариантов доставки для управляемых установок Firefox. Это понятнее, чем встраивать недокументированную головоломку определения браузера в общий файл PAC.

Скрипт, который успешно разбирается как обычный JavaScript, не обязательно является поддерживаемым скриптом PAC. Проверяйте документированную среду резолвера, а не только синтаксис языка.

Похожие статьи