' +'' +'' +'' +'' +'' +'' +'' +'' +'' +'' +'' +'')//-->
В материале приведены некоторые технические подробности по "внутренностям" расширения UltraSurf VPN RU, описаны применяемые технологии, API, общая логика работы и особенности использования.
В этой статье:
По умолчанию при запуске расширения выполняется автоматическая настройка соединения, выбор конкретного сервера из текущего пула доступных хостов и последующий запуск соединения с этим прокси‑сервером.
При этом сначала производится автоматическая диагностика доступности* выбранного хоста прокси. Если конкретный прокси в текущий момент недоступен, производится повторный автовыбор другого сервера и процедура проверки и установки соединения повторяется.
* Для обеспечения корректных результатов тестирования используется встроенный список из 10 сайтов, отзывающихся на запросы в любой точке "этой планеты". При выборе сайтов для включения в этот набор также учитывается их реальный аптайм и доступность во всех версиях браузеров, заявленных к поддержке (с движком от CR29 и новее).
Встроенный набор сайтов одинаков во всех линейках расширения и меняется только в случае устойчивых проблем с доступом. При этом число "тестовых" остаётся неизменным, удалённый сайт просто заменяется на другой (например, в мае 2025 года из списка удалена Википедия – там был установлен сертификат домена, неподдерживаемый в браузерах версий CR29–CR49).
Кроме того, в линейке PRO пользователь может задать собственный список произвольных тестовых URL, если его по каким‑то причинам "не устраивает" набор сайтов по умолчанию.
Перебор серверов из списка производится автоматически, выбор сервера производится в случайном* порядке в пределах сеанса работы браузера. Во избежание повторных коннектов ранее выбранные сервера исключаются из автоперебора.
* Начиная с версии [2025.5.25] в аддоне изменён метод рэндомизации списка. Теперь он стал проще и быстрее за счёт замены исходного варианта (рандомное хэширование по MD5 и обратное вычисление позиции в списке) на двойное перемешивание номеров позиций двумя разными (более простыми и быстрыми) функциями.
По факту крипто‑функция вычисления хэшей серверов (и их перемешивания) заменена на двойной "прогон" номеров позиций: сначала создаётся массив случайных чисел (по числу позиций в исходном списке прокси), затем этот массив перемешивается по алгоритму Фишера-Йетса (применяется его упрощённая реализация, на практике более чем достаточная для целей изменения последовательности серверов в списке).
Кроме упрощения кода (и ускорения его работы), это изменение также позволило почти вчетверо (!) уменьшить общий размер аддона за счёт удаления громоздкого крипто‑модуля (стал не нужен при новой схеме рэндомизации списка), что ещё больше увеличило скорость работы расширения.
Процесс перемешивания списка задействуется только при включении опции "Менять IP‑адрес прокси при подключении" в Настройках. При этом он повторяется при каждом подключении к VPN, до начала выбора и проверки прокси.
Можно в любой момент отключить автоматический перебор серверов (сняв галку с указанной опции) и установить текущий работающий прокси (любой из них) в качестве постоянного. Это может быть вызвано "личными предпочтениями" пользователя или связано со скоростью работы конкретного прокси.
Кроме указанных причин, отключение "случайности" может потребоваться, если вы авторизуетесь на каком‑либо сайте И если этот сайт сбрасывает авторизацию при смене IP‑адреса клиента. Такое встречается достаточно часто и необходимость частой повторной авторизации при фоновом "перещёлкивании" прокси может, так скажем, "немного напрягать".
При неавторизованном "свободном полёте" этот фактор обычно никак не сказывается на доступе к разным сайтам, но степень вашей приватности за счёт переменного адреса будет, конечно же, выше. В общем, при изменении этой настройки нужно исходить только из ваших конкретных текущих условий работы, никаких "лучше или хуже" здесь нет и быть не может.
Следует понимать, что при отключении автоперемешивания может случиться так, что если выбранный прокси в какой‑то момент станет недоступен, будет выполнена перепроверка соединения и в качестве нового "постоянного" будет выбран следующий за ним (или далее, первый же из доступных на текущий момент!) сервер из списка.
Оперативно проверить текущие (действующие в вашем профиле) настройки прокси в браузере можно* на служебной странице chrome://net-internals/#proxy. На скриншоте показан пример настроек после включения приватного режима:
* В некоторых браузерах эта страница отсутстует ("выпилена" разработчиками с заменой на онлайн‑сервис).
Начиная с версии [2025.5.25] в код добавлена функция вызова этой страницы непосредственно из интерфейса аддона. Теперь для этого достаточно нажать кнопку‑заголовок в окне диагностики соединения:
Исходя из принципа работы приватного режима (VPN), при его включении весь трафик со всех сайтов, открываемых в браузере, идёт только через прокси – именно ВЕСЬ, без исключения. Этим приватный режим отличается от режима PAC‑прокси, когда через прокси проходит трафик только определённой* части сайтов, по фиксированному списку.
* Могут применяться термины "белый" или "чёрный" список, кому как больше нравится, но общий смысл понятен – это перечень ресурсов, подлежащих обязательному пропуску через прокси, с остальными сайтами браузер при этом работает напрямую.
На принципе PAC‑прокси построены все известные "обходилки" – тот же "антизапрет", "скачать с вконтакта" и другие подобные. Кроме того, этот же принцип можно использовать и в самостоятельно создаваемых скриптах, выполняющих задачу "заворота" трафика на прокси для желаемой части сайтов.
Так же, как и VPN, PAC‑скрипты могут быть установлены в качестве системных настроек. В этом случае трафик обабатывается на уровне системы в целом и доступ к сайтам "по списку" не зависит от установки каких‑либо приложений в браузере.
Соответственно, различаются и варианты выбора того или иного способа обработки трафика. Приватный режим нужен для анонимного сёрфинга, при этом будет доступна бо́льшая часть сайтов, но при этом, конечно же, общая скорость доступа в любом случае будет ниже, чем при прямом подключении. Использование PAC‑прокси не даёт анонимности, но падение скорости будет только на сайтах, занесённых в список проксируемых.
В отдельных случаях также требуется безусловно* исключить определённые сайты из любого вида проксирования, обеспечив для них обязательный прямой доступ.
* Это обусловлено требованиями безопасности сёрфинга в части снижения вероятности утечки конфиденциальных данных пользователя через сервис прокси. В общем случае желательно всегда работать с критичными приложениями** только напрямую, во избежание потенциальных MITM‑атак со стороны неподконтрольных вам прокси‑сервисов.
** Примерами таких приложений (сайтов) могут служить банковские или государственные сайты и другие онлайн‑ресурсы, где обрабатываются и хранятся ваши персональные данные (финансовая информация, сведения о вашей личности и т.д.).
При использовании PAC‑прокси это обеспечивается указанием масок таких сайтов в самом PAC‑скрипте, в блоке правил прямого доступа.
При использовании приватного режима (VPN‑прокси) это обеспечивается указанием масок доменов таких сайтов в специальных правилах для обхода прокси (т.н. "байпасс‑лист", список исключений).
UltraSurf VPN RU даёт возможность работы напрямую с любым сайтом без использования каких‑либо списков исключений в принципе. Для этого достаточно установить в Настройках режим прямого подключения, автоматически задействующийся при выходе из приватного режима.
В линейках CLASSIC и TURBO это единственный способ получения гарантированного прямого доступа, работающего независимо от системных настроек и других локальных приложений.
Кроме указанного способа, в линейке PRO также есть возможность задания своего персонального списка исключений и при работе в приватном режиме. Эта функция доступна начиная с версии [2025.6.20] и позволяет достаточно гибко управлять трафиком, "в один щелчок" меняя условия доступа для любых сайтов.
Если вам требуется такой "тюнинг", рекомендуется изучить раздел Настройка, проверка и применение байпасс‑листа.
При запуске прокси‑режима и при выполнении попытки установки соединения с прокси (при запуске приватного режима) на "бэджике" у значка расширения на тулбаре отображаются бегущие точки на синем фоне · · · .
После прохождения проверок и установления соединения с прокси на бэджике отображается VPN на зелёном фоне.
В дальнейшем, по умолчанию, выполняется автоматическое отслеживание состояния соединения с сетью и связь с прокси. Кроме того, при этом также производится и периодическая проверка конфликтов с другими прокси‑расширениями.
Для снижения расхода ресурсов и уменьшения общей нагрузки на браузер применяется динамический таймер проверок – если на момент проверки никаких ошибок нет, время ожидания следующей проверки автоматически увеличивается ещё на 1 секунду (неограниченно, вплоть до нескольких часов и более, пока не будет произведён выход из приватного режима).
При обнаружении проблем меняется статус расширения, ошибка индицируется красным цветом бэджика кнопки на тулбаре. Если проблема связана с сетевым соединением, на бэджике будет текст ERR , если обнаружен конфликт с другим аддоном, "отобравшим у нас" управление прокси, на бэджике будет VPN .
При возникновении любой из ошибок таймер проверок автоматически сбрасывается (в текущих версиях уменьшается до 1 секунды и снова сбрасывается, если ошибка осталась и после следующей проверки), расширение переходит в режим "активного ожидания" переподключения с более частой перепроверкой состояния.
В случае "конфликтной ситуации" решить проблему может только вмешательство пользователя – он может либо вручную выключить "конкурента" (и вернуть управление "нам"), либо просто отключить приватный режим (при этом выключится и самопроверка).
Кроме того, в линейках TURBO и PRO есть специальный аварийный режим "Взять управление на себя", позволяющий решить конфликт непосредственно в интерфейсе Панели управления. Режим включается автоматически и задействуется только при конфликтах.
После устранения проблемы (восстановление соединения с сетью или решение конфликта любым способом) приватный режим (если он был включен) восстанавливается автоматически и на индикаторе снова будет отображаться VPN .
В текущих версиях аддона статус отображается также и в подсказке к кнопке на тулбаре. Более подробное описание текущего состояния и/или проблемы выводится в текстовом блоке в окне попапа. Если в настройках включён вывод сообщений в консоль (опция "Диагностика…") – динамику процесса можно посмотреть и в консоли.
Контроль состояния можно отключить "галкой" в блоке Настроек ("Игнорировать ошибки прокси и конфликты").
Отключение проверок имеет смысл при стабильном подключении к сети и если не используются другие прокси. При этом снижается расход ресурсов (в т.ч. – возможных утечек памяти) и повышется общее быстродействие браузера.
При ручном отключении приватного режима в настройках на бэджике отображается OFF на чёрном фоне.
Если включена функция автоматической периодической проверки обновлений расширения И если обнаружена более новая версия И если пользователь при этом отказался от текущей установки, фоновый цвет бэджика будет статичным* для всех состояний – VPN – напоминая о наличии новой версии. Также будет статичным и текст подсказки у значка:
* На тот случай, если не нужна такая "монохромность" (или она мешает быстрому восприятию состояния аддона), помним – если уж вы сами включили "автообновлятор", сами можете его и выключить, вернув всё "как было"… :)
Опция "Не учитывать системные настройки прокси" – браузер работает с сетью в обход настроек системного прокси. При отключении от прокси задействуется спецрежим "DIRECT MODE" (индикация на бэджике – DCM вместо OFF ). Прямой доступ позволяет исключить проблемы при ошибках системного прокси при отключении от прокси‑сервера.
Для оперативной смены этой опции можно использовать дублирующий переключатель "прямой доступ"/"системный прокси" в правом верхнем блоке кнопок панели управления (доступен начиная с версии [2023.6.17] и во всех последующих).
Кнопка "D", дублирует соответствующую настройку, при щелчке по кнопке её текст меняется на "S" и (теперь) переключает обратно на использование общего системного прокси. Кнопка* добавлена чисто для удобства, для быстрого переключения режима без открытия блока настроек (сама настройка при этом также изменяется и запоминается автоматически).
* Начиная с версии [2025.5.25] эти кнопки отображаются как "буквы в кругляшке", соответственно – Ⓓ или Ⓢ.
Проверки подключения к сети также зависят от этой опции – либо с системными настройками, либо напрямую. Если у вас системный прокси задан как внешний, можно оценить работоспособность режима по изменению клиентского IP‑адреса.
Если системный прокси не задан или не используется, разницы в IP‑адресе не будет, в этом случае всегда отобразится один и тот же реальный IP‑адрес вашего подключения.
Если эта опция выключена (по умолчанию) – управление прокси полностью отключено и доступно другим аддонам. Следует помнить, что включение режима прямого доступа может помешать использованию других прокси‑аддонов.
Соответственно, если нужно задействовать другое прокси‑расширенние (временно, БЕЗ отключения UltraSurf VPN RU), сначала установите режим "системный прокси" (вЫключив эту настройку), а затем запустите сторонний аддон.
Опция "Прокси только для HTTP/HTTPS протокола" – использование только в качестве HTTP/HTTPS‑прокси, все остальные протоколы при этом не проксируются*, их трафик идёт напрямую. Эта опция снижает вероятность проблем с доступом по протоколам, неподдерживаемым серверами UltraSurf (в частности – FTP).
* Начиная с версии [2025.5.25], кроме типовых масок локальных адресов, из проксирования в любом случае будут безусловно исключены этот сайт и CDN‑сервер Проекта Good CRX. Это сделано для гарантированного (и безопасного!) доступа к загрузке обновлений CRX‑установщика и/или обновлений актуального списка прокси.
Кроме того, начиная с версии [2025.5.25], эта настройка также влияет на список обхода прокси (байпасс‑лист), который теперь меняется динамически. Если она отключена (по умолчанию) – в исключения добавляются служебные* ссылки с протоколом "chrome*://" (в предыдущих версиях они добавлялись* в любом случае, независимо от этой настройки).
* Да, автор в курсе, что "достаточно указания протокола" и что "совать сюда локаль – это маразм".:) Однако, это оставлено на всякий случай, потому как не раз были обнаружены проблемы с их пробросом (нежелательным!) через прокси и именно по этой причине "служебка" и была в своё время добавлена в байпасс. Короче, это решение окончательное, так сделано и так и будет, просто примите как данность…)
Начиная с версии [2025.5.25] в расширение добавлены функции проверки и загрузки обновлений как самого аддона, так и встроенного списка прокси. Вызываются только по требованию (запуск вручную).
Начиная с версии [2025.6.18 / TURBO] добавлена опциональная функция автоматической* периодической проверки с напоминанием для пользователя и периодическим предложением загрузки обновлений самого аддона (если они есть). Работает по принципу "включил и забыл", пока оно само не напомнит.)
* Формально это "полуавтомат", запуск процесса проверки происходит только при входе в Панель управления или при смене режима работы прокси "турбо"‑способом. Однако, на практике, пользователь делает это хотя бы раз в неделю.)
В интерфейсе управления "фича прикручена" к многофункциональной "кнопке‑логотипу" в левой части заголовка. Как видно из скриншотов – функционал кнопки также меняется в зависимости от режима автообновления:
Выбор действия – щелчок левой или правой кнопкой мыши с учётом зажатых клавиш ALT или CTRL или SHIFT.
В текущей версии расширения доступны 5 вариантов действий:
На этой странице вы можете ознакомится с описанием текущих изменений, принять решение о необходимости обновления и перейти по ссылками к загрузке установщика нужного формата.
Если включена функция автопроверки обновлений расширения И если обнаружена более новая версия И если пользователь при этом отказался от текущей установки, действие этой кнопки меняется – щелчок ЛКМ в этом случае дублирует щелчок ПКМ (вызов ручной проверки обновления с возможностью загрузки актуальной версии установщика).
Эта функция позволяет сразу загрузить установщик актуальной авторской версии (с автоопределением формата CRX‑файла) и оперативно обновить вашу версию. Если обновление не требуется (актуальная версия у вас уже установлена), после проверки будет выдано соответствующее сообщение.
Загрузка установщика производится напрямую с CDN‑сервера Проекта Good CRX, никаких переходов по ссылкам при этом не требуется, достаточно просто подтвердить сохранение файла* в вашей папке загрузок.
* Для обхода браузерных ограничений, не позволяющих использовать сторонние CRX‑файлы, расширение файлов установщика изменено и будет зависеть от получаемого (в соответствии с версией вашего браузера) формата файла (*.CRX2 или *.CRX3). По этой причине перед установкой необходимо вручную переименовать загруженный файл, поставив ему расширение *.CRX.
Функционально автопроверка делает то же самое, что и ручная, только автоматически, с интервалом один раз в неделю. Подробнее о том, как это работает, читаем в описании версии [2025.6.18 / TURBO], начиная с которой "автообновлятор" был добавлен в расширение.
Функция подробно описана в статье о работе с настройками, предназначена для упрощения процесса обновления "отсохших" прокси и оперативного восстановления работоспособности расширения без необходимости его переустановки.
Загрузка обновлённого списка производится напрямую с этого сайта, никаких переходов по ссылкам при этом не требуется. Обновлённый список формируется автором на основе пула, заложенного в текущую официальную версию аддона‑прототипа.
При успешной загрузке новый список автоматически сохраняется, заменяя встроенный, и применяется сразу же. Если режим приватности на этот момент был включен, также будет произведён автоматический перезапуск расширения и переподключение к новым серверам.
В случае возникновения любой ошибки при загрузке, эта процедура прерывается с выдачей сообщения (алерта). При этом никаких изменений текущего внутреннего списка прокси сделано не будет.
Также при этом будет автоматически выполнено переподключение к VPN (если режим приватности был включен на момент вызова этой функции). Добавлено чисто для удобства, может потребоваться при установке в режиме разработчика (например, при отладке аддона) либо если возникла какая‑либо серьёзная ошибка.
UltraSurf VPN RU не использует для работы никакие сторонние библиотеки (привет любителям JQuery)).
В коде применён только чистый JS (ES5), все неподдерживаемые в "старых" браузерах функции заменены на аналоги. Все скрипты работают в "строгом" режиме – для гарантии выполнения функций и облегчения отлова ошибок.
Аддон работает постоянно, фоновый процесс из памяти не выгружается. Это обусловлено необходимостью проверок вероятных конфликтов прокси при сёрфинге. Скрипты интерфейса управления работают только при активном окне настроек и выгружаются из памяти автоматически после выполнения требуемых действий и закрытия этого окна.
Расширение UltraSurf VPN RU имеет модульную* структуру скриптов, подгружаемых по необходимости (это снижает общий текущий расход памяти). Основные функции проксирования размещены в скрипте** us.js (фоновый скрипт). Для подгрузки и стыковки модулей применяется немного доработанная библиотека RequireJS (файл require.js).***
* Начиная с версии [2025.6.12] все функции бэкенда сведены в один скрипт, "модульность", фактически, осталась только в части разных скриптов для фонового процесса и для интерфейса управления. Зачем и почему так сделано – читаем ниже.
** Здесь и далее – имена файлов указаны для текущих версий, могут отличаться в более ранних.
*** Начиная с версии [2025.6.12] подгрузка модулей больше не требуется, из текущих версиий этот файл удалён.
Функции управления аддоном, активации элементов окна Панели управления и общие сервисные функции для всех окон интерфейса размещены в скрипте ui.js. Этот скрипт задействуется только при вызове окна настроек и не занимает память при фоновой работе аддона.
Этот же скрипт содержит процедуры запуска сетевой диагностики и проверки соединения с пулом прокси. Также в нём размещена функция проверки и загрузки обновлений как текущего списка прокси, так и самого расширения в целом.
Остальные файлы установочного комплекта (кроме манифеста, иконки и списка хостов по умолчанию) относятся к интерфейсу окна управления и настройки (ui.htm и ui.css), загружаются и используются только при вызове этого окна.
Как отмечено выше, начиная с версии [2025.6.12] в расширении больше нет "гороха" из множества файлов, содержавших ранее группы функций бэкенда и окна Панели управления.
Отход от модульной структуры связан с тем, что размеры практически всех отдельных модулей после предыдущей (и текущей) оптимизации сократились до размеров менее килобайта каждый. С учётом того, что в большинстве случаев в память грузятся все модули, принято решение об их объединении в один исполняемый скрипт. Это существенно сократило как время его непосредственной загрузки, так и общее время инициализации аддона (переход к состоянию готовности).
Кроме того, с учётом "подкрадывания" к выпуску MV3 варианта (в стадии активной проработки), это целенаправленный "задел на будущее" – для облегчения перехода с версий MV2 на MV3 в рамках заявленной ранее концепции "один универсальный код под разные версии манифеста".
За счёт отказа от модульности из комплекта аддона удалён менеджер загрузки и подключения модулей (типовая библиотека required.js, занимавшая в предыдущей версии почти половину объёма фонового скрипта).
В результате оптимизации количество отдельных файлов в комплекте расширения уменьшено* втрое (с 20 до 7, включая иконку, манифест и текстовый хост‑лист). Общий размер установленного комплекта, с учётом всего множества добавленных новых функций, уменьшен* с 70 kB** до 40 kB.
Соответственно уменьшился* и размер CRX‑установщика (был 27 kB, стал всего 18 kB).
Изменилось и соотношение размеров фонового скрипта (был 35 kB, стал 15 kB) к интерфейсной части (код, отвечающий за вывод окна Панели управления, был 20 kB, стал 23 kB). Это также снизило* общий расход памяти при работе аддона.
* Это важно, учитывая "физику", чем меньше файл – тем быстрее он грузится, чем компактнее код – тем быстрее он работает!
** Для сравнения первой цифрой указаны размеры для версии 2025.5.25, последней с "многофайловой" структурой. Если сравнивать с текущей версией "прототипа" в CWS (1.8.6 от 13.05.2025, общий размер почти 1.5MB, число файлов в комплекте – 128 в 70 папках), она вообще "ни в какие ворота не лезет" с т.з. компактности… :)
Основной API, используемый в аддоне – chrome.proxy. Он обеспечивает работу всех функций управления настройками прокси в браузере, а также отвечает за отслеживание конфликтов с другими прокси‑расширениями.
При стартовой диагностике и отслеживании текущего состояния сетевого соединения работает API chrome.webRequest, также применяемый при проверках возможных конфликтов с другими установленными прокси‑расширениями.
Для вызова окна настроек применяется chrome.browserAction. Этот API используется и для переключения режима работы прокси в линейках TURBO и PRO (если в настройках включен "турбо‑режим", смена режима "в один клик"). Кроме того, этот API применяется для оперативной индикации состояния и отвечает за отрисовку бэджика у значка на тулбаре.
Для хранения* пользовательских настроек используется API chrome.storage. В текущих версиях расширения в манифесте для этого не требуется особых разрешений, размер данных не превышает ограничения по умолчанию (5/10Mb).
* В текущих версиях для работы с настройками используются функции хранилища самого расширения (API localStorage). Как и в других авторских аддонах, все настройки всегда хранятся только локально, синхронизации нет** и не будет в принципе.
** В линейках CLASSIC и TURBO это просто нецелесообразно, пару‑тройку "галочек" можно изменить за считанные секунды. В линейке PRO для переноса настроек можно использовать функцию резервного копирования и восстановления.
Для обеспечения работы аддона с любыми* URL, в манифесте запрашивается разрешение [ "*://*/*" ].
* Под "любыми" в данном случае подразумеваются URL с протоколом HTTP/HTTPS. С другими протоколами, включая локальные файлы и служебные страницы браузера, расширение не работает в принципе, указание масок для них не требуется.
Кроме указанных выше API и разрешений, в линейке PRO для работы с персональным байпасс‑листом используется API chrome.tabs, необходимый для получения имени домена сайта, открытого в текущей вкладке, и для занесения этого имени в качестве шаблона в список исключений. Для упрощения работы со вкладками в манифесте этой линейки дополнительно запрашивается разрешение [ "activeTab" ].
Расширение не имеет никакого интерфейса, кроме попап‑окна, вызываемого по щелчку по кнопке на тулбаре. Диалоги и сообщения выдаются в этом окне в виде динамически меняющегося текста информационных блоков.
В отличие от прототипа, для отрисовки интерфейса не используются никакие сторонние JS/CSS библиотеки, интерфейс построен исключительно на чистом HTML с минимально необходимым набором стилей и скриптов.
Все настройки и управление работой прокси также выполняются в этом же окне, отдельной страницы настроек нет (и не будет). Сохранение настроек производится автоматически, сразу же после их изменения. Перезапуск расширения или иные действия при этом не требуются* (в отдельных случаях нужно просто закрыть и повторно вызвать это окно).
* Точнее сказать, "теперь НЕ требуются", потому что реальная "непрерывность" работы фонового процесса после изменения настроек появилась только начиная с версии [2025.6.12] и присутствует только в линейках TURBO и PRO, в которых фоновый процесс НЕ перезагружается** при любых изменениях настроек в любой комбинации, независимо от того, связаны ли настройки с текущим состоянием (режимом работы) или будут применены после его переключения.
В указанных линейках интерфейсная часть перегружается только*** при переключении опции "ПКМ: подсказки". Фоновый скрипт не перезагружается в принципе, кроме принудительного "приказа" на перезапуск ("красная кнопка" в блоке настроек).
Если же изменение касается режима работы фонового скрипта (например, включение/отключение отслеживания конфликтов), перезапускается только прокси браузера (его настройки и поведение теперь меняются "на лету").
Если изменение какой‑либо опции не связано с текущим режимом работы, меняются только значения этих ключей в фоновом скрипте (обновлённые параметры автоматически применятся при следующей смене режима прокси, перезапуск всего "бэкенда" для этого теперь не нужен).
В линейке CLASSIC, как и ранее, если в Настройках меняется любая опция, связанная с текущим режимом работы прокси, производится одновременная синхронная перезагрузка** как фонового процесса, так и Панели настроек. Если подряд меняется несколько связанных опций, соответственно, больше и перезапусков (после каждого изменения).
Как и ранее, оценить работоспособность (и текущую применяемость) каждой из опций можно по изменению статуса в Панели управления в сочетании с синхронным изменением цвета и текста в бейджике иконки на тулбаре. Однако, без перезагрузки эта синхронность прослеживается гораздо лучше.
Это изменение также сделано в рамках планируемого выпуска версий с MV3‑форматом манифеста.
** Этот "костыль" был заложен ещё в изначальных версиях расширения, чисто для упрощения кода. Теперь это не нужно, опции "подхватываются на лету", БЕЗ перезагрузок вообще (и БЕЗ заметного увеличения объёма кода в частности). "Костыль" остался у "классики", чтобы сохранить в ней минимально необходимый размер кода управления, компактность – наше всё! :)
*** В принципе, и этой перегрузки можно было бы избежать, но это ведёт к увеличению размера кода интерфейса, потому что основной объём подсказок "зашит" в HTML… не‑не, автор резко против, не для того делалось "тут ужали, там подрезали"… :) Короче, проще перезагрузить html-ку Панели управления, чем сохранять/восстанавливать исходные титлы скриптом…)
Назначение параметров в меню настроек интуитивно понятно из их названия. Кроме того, для всех настроек имеется достаточно подробная подсказка. Все настройки сохраняются только локально, синхронизация не поддерживается.
Подробнее о доступных функциях и настройках читаем в статье UltraSurf VPN RU : Возможности и настройка.
Независимо от ваших настроек, при успешном подключении к прокси (или просто при наличии интернет‑соединения, если режим приватности выключен) в окне панели управления справочно отображается ваш текущий внешний IP‑адрес (в приватном режиме это адрес текущего прокси‑сервера).
Отображение IP‑адреса в любом случае происходит с некоторой задержкой, связанной с ожиданием ответа от внешнего сервиса проверки. До момента получения ответа (или при превышении таймаута запроса) в строке адреса будет указано "Не определён". Максимальное время ожидания – 10 секунд (задано жёстко, не регулируется).
Если интернет‑соединение отсутствует, кроме "неопределённости" в строке адреса, в панели управления будет показано сообщение об ошибке подключения. При этом индикатор состояния также изменится на "ред‑алерт" ERR .
Если сетевое соединение в норме и индикатор состояния показывает "всё в порядке, шеф" и если сетевая диагностика также проходит без ошибок, но адрес в панели управления всё равно не отображается – вероятно, есть временная проблема с внешним сервисом проверки IP‑адреса.
В этом случае можно проверить внешний адрес вручную, перейдя на любой из сайтов с такой функцией.
Аддон не имеет практических ограничений по версии браузера, используемые API работают в версиях 29+.
Исходный код НЕ обфусцирован, исключительно с целью удобства при возможных доработках и для облегчения читаемости кода при его исследовании. Кому это критично – удалите комментарии и пропустите* через компрессоры.)
* Начиная с версии [2025.5.25] это не имеет смысла – в установочный комплект аддона теперь входят сжатые версии всех JS/CSS/HTML‑файлов. Сделано с целью общего ускорения загрузки окон аддона при их вызове. Тем не менее, в публичном варианте исходного кода текущей версии, компрессия НЕ используется, все файлы оставлены "как есть", включая все комментарии и "отложенные на потом" фрагменты кода.
Язык интерфейса, сообщений, подсказок и описания – только русский (локализация жёсткая, зашита в коде), другие* локализации отсутствуют. Это связано со значительным упрощением кода, а также с тем, что при создании расширения автор в первую очередь ориентируется на русскоязычных пользователей.
* Впрочем, если "дело пойдёт", прикрутить "басурманский" обратно не является особой проблемой…)
Исходный код текущей версии расширения можно просмотреть в режиме онлайн на любом из ресурсов, приведённых в материале UltraSurf VPN RU : LBSC*.
* См.также: LBSC: Что это такое и как работать с этим архивом.
Как уже сказано, в текущих релизах "UltraSurf VPN RU" в качестве единственного языка интерфейса используется только русский. Применение иных локализаций с помощью стандартного API потребует серьёзной переделки кода и приведёт не только к увеличению его размера, но и к общему замедлению, связанному с необходимостью подгрузки и парсинга дополнительных языковых модулей.
Кроме того, изменение локали приведёт и к необходимости повторного "вылизывания" интерфейса в части стилей и прочего, чтобы все текстовые элементы, сообщения и подсказки отображались достаточно ровно "и просто красиво"…)
Тем не менее, при наличии реально подтверждённого спроса на выпуск версий с интерфейсом на любом из достаточно распространённых языков, такие версии могут быть выпущены в рамках этого Проекта как отдельные* языковые релизы (понятно, называться они будут, скажем, "UltraSurf VPN EN").
* В силу указанных выше причин, прикрутка "басурманского" с глобальным изменением кода для локализации автором на текущий момент не рассматривается**. А вот вариант с другим "жёстко зашитым" языком вполне приемлем в рамках общих концепций этого Проекта.
** Да, я в курсе, что добавка языка в виде дополнительного текстового файла в формате JSON сделает все последующие изменения локализованных версий намного проще и быстрее, но пока я "внутренне" не готов к "большой переделке" всего кода в целом – это потребует не только значительного времени, но и, опять же, не даст гарантии, что в локализованных версиях не будет внесено каких‑либо "багов и глюков".
В общем, пока мой ответ – "нет". Хотя… если будет определённый "стимул"… я могу и передумать… :)
С другой стороны, автором приветствуется ваше желание сделать дополнительные переводы на другие языки, поэтому если вам это интересно и действительно необходимо – смотрите исходный код, ищите соответствующие текстовые "вкрапления" и переводите самостоятельно на желаемый вам язык.
Готовые переводы вы можете прислать по обратной связи или просто выложить ссылкой в комментариях на этом сайте, они будут проверены на качество и соответствие текста исходному интерфейсу и затем будут включены во все последующие релизы аддона. При этом гарантируется сохранение вашего авторства по конкретной добавленной локали.
Короче, велкам… :)
На этом общее описание "матчасти" расширения UltraSurf VPN RU завершено.
…но чтобы читатель был полностью "в курсе", добавлю ещё пару слов…
При использовании "UltraSurf VPN RU" в браузерах достаточно старых версий возможна некорректная работа отдельных функций. Это не является ошибкой расширения и связано с ограничениями в некоторых браузерах полноценной поддержки используемых в аддоне API.
Подобная ситуация возможна при работе с любым браузером версии старше CR31. В частности, это относится к браузеру SRWare Iron 29, указанному в качестве "нижнего порога" допустимых версий. Для смягчения этих проблем в аддон добавлены некоторые дополнительные "костыли", устраняющие бо́льшую часть подобных ошибок.
Кроме того, в достаточно старых браузерах не исключены и другие проблемы с доступом к большинству сайтов, связанные с применением современных технологий (скрипты, стили и т.д.). Это также не связано с ошибками в аддоне и зависит только от разработчиков самих сайтов.
В общем и целом, инженерное тестирование этого расширения (на этапе разработки) в браузерах версий старше CR49 проводится по остаточному принципу и в большинстве случаев связано только с проверкой общей работоспособности основных ключевых функций аддона и только если эти версии заявлены в числе поддерживаемых.
В силу того, что такие версии на сегодняшний день практически не используются, вопросы неработоспособности в них отдельных функций расширения в общем случае автором не рассматриваются и никакие претензии не принимаются.
Тем не менее, при реальной необходимости полная поддержка может быть добавлена и для достаточно старых версий браузеров путём дополнительной доработки исходного кода. Эта доработка может быть выполнена автором на условиях частного партнёрства с конкретным заказчиком (по обоюдной договорённости).