Утыліта, якая ператварае звычайныя браўзэры на аснове 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

Дадаць каментар