Nástroj, ktorý premení bežné prehliadače založené na Firefoxe na Developer Edition

Kvôli nesúhlasu s politikou Mozilly a distribúcií nedistribuovať zostavy Firefoxu, ktoré majú odomknuté možnosti inštalácie nepodpísaných doplnkov a používania WebExtensions Experiments API, bol vyvinutý nástroj, ktorý konvertuje bežné zostavy Firefoxu na variant „Developer Edition“, ktorý umožňuje používanie doplnkov bez digitálneho podpisu.

Vývoj nástroja uľahčil fakt, že potrebná funkcionalita vo Firefoxe je implementovaná v kóde ECMAScript a je obsiahnutá v každej verzii Firefoxu, no je zapnutá za behu v závislosti od nastavených konštantných hodnôt. Konštanty („MOZ_DEV_EDITION“, „MOZ_REQUIRE_SIGNING“) sú definované v jednom súbore („modules/addons/AddonSettings.jsm“), ktorý sa nachádza v archíve zip „/usr/lib/firefox/omni.ja“.

Navrhovaný nástroj analyzuje požadovaný súbor pomocou esprima-python, opraví AST a serializuje ho pomocou jscodegen.py. Prácu s formátom zip zabezpečuje libzip.py - väzby na libzip. Odporúča sa nainštalovať špecifikované knižnice manuálne z príslušných git repozitárov.

Okrem toho si môžete všimnúť skript unpin.py, ktorý vám umožňuje zrušiť viazanie obmedzení „{“, „==“ a „~=“ na verziu závislostí vo vopred zostavenom balíku vo formáte wheel, ktorý používajú mnohí vývojárov, čo vám umožňuje vyhnúť sa automatickému downgradu pri inštalácii požadovaného balíka cez pip pri predvolenom nastavení.

Zdroj: opennet.ru

Pridať komentár