Утиліта, що перетворює звичайні браузери на основі 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

Додати коментар або відгук