Datorită neacceptării politicii Mozilla și a distribuitorilor de a nu distribui versiuni Firefox care au posibilități neblocate de instalare a extensiilor nesemnate și utilizarea API-urilor WebExtensions Experiments, a fost dezvoltat un instrument care transformă versiunile obișnuite de Firefox într-o variantă „Developer Edition”, care permite utilizarea extensiilor fără semnătură digitală.
Dezvoltarea instrumentului a fost facilitată de faptul că funcționalitatea necesară în Firefox este implementată în cod ECMAScript și face parte din orice variantă Firefox, dar este activată în timpul execuției codului în funcție de valorile constante stabilite. Constantele („MOZ_DEV_EDITION”, „MOZ_REQUIRE_SIGNING”) sunt definite într-un singur fișier („modules/addons/AddonSettings.jsm”), care se află în arhiva zip „/usr/lib/firefox/omni.ja”.
Utilitarul propus analizează fișierul necesar folosind esprima-python, modifică AST-ul și îl serializează cu ajutorul jscodegen.py. Lucrul cu formatul zip este asigurat de libzip.py - legături către libzip. Bibliotecile menționate se recomandă să fie instalate manual din repozitoarele git corespunzătoare.
De asemenea, se poate menționa scriptul unpin.py, care permite deblocarea restricțiilor „{“, „==” și „~=” pe versiunile de dependențe în pachetul preconstruit în format wheel, utilizat de mulți dezvoltatori, ceea ce permite evitarea retrogradării automate atunci când se instalează pachetul dorit prin pip cu setările implicite.
Sursa: opennet.ro
