Ввиду несогласия с политикой 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 при настройках по умолчанию.
// cc-by opennet.ru
// converted with crypt’s opennet autoreposter
>>> Подробности