Утилита, превращающая обычные браузеры на основе Firefox в Developer Edition

Ввиду несогласия с политикой Mozilla и дистрибутивов не распространять сборки Firefox, имеющие незаблокированные возможности установки неподписанных дополнений и использования API WebExtensions Experiments, был разработан инструмент, преобразующий обычные сборки Firefox в вариант «Developer Edition», допускающий использование дополнений без цифровой подписи.

Разработка инструмента была облегчена тем, что нужная функциональность в Firefox реализована в коде на ECMAScript и входит в состав любого варианта Firefox, но включается во время выполнения кода в зависимости от установленных значений констант. Константы («MOZ_DEV_EDITION», «MOZ_REQUIRE_SIGNING») определяются в одном файле («modules/addons/AddonSettings.jsm»), который находится в zip-архиве «/usr/lib/firefox/omni.ja».

Предложенная утилита парсит нужный файл с помощью esprima-python, патчит AST, и сериализует с помощью jscodegen.py. Работа с форматом zip обеспечивается libzip.py — биндингов к libzip. Указанные библиотеки рекомендуется установить вручную из соответствующих git репозиториев.

Дополнительно можно отметить скрипт unpin.py, который позволяет отвязать ограничения «{«, «==» и «~=» на версии зависимостей в предсобранном пакете формата wheel, используемый многими разработчиками, что позволяет избежать автоматического даунгрейда при установке нужного пакета через pip при настройках по умолчанию.

Источник: opennet.ru

author avatar
ProHoster Consultant, technical specialist
A technical specialist at ProHoster with over six years of experience in server administration, VPN solutions, and network security. I manage infrastructure setup and support, monitor service stability, and implement solutions to protect client data. I also contribute to performance optimization and compliance with modern security and privacy requirements.

Добавить комментарий