En raison de l'opposition à la politique de Mozilla et des distributions qui ne diffusent pas des versions de Firefox avec des options activées pour installer des extensions non signées et utiliser l'API WebExtensions Experiments, un outil a été développé pour transformer les versions standards de Firefox en une variante "Developer Edition" permettant l'utilisation d'extensions sans signature numérique.
Le développement de l'outil a été facilité par le fait que la fonctionnalité requise dans Firefox est implémentée dans le code ECMAScript et fait partie de n'importe quelle version de Firefox, mais est activée en fonction des constantes définies. Les constantes ("MOZ_DEV_EDITION", "MOZ_REQUIRE_SIGNING") sont définies dans un fichier («modules/addons/AddonSettings.jsm»), qui se trouve dans l'archive zip «/usr/lib/firefox/omni.ja».
L'utilitaire proposé analyse le fichier requis avec esprima-python, patch l'AST et le sérialise à l'aide de jscodegen.py. Le travail avec le format zip est assuré par libzip.py — des liaisons à libzip. Il est recommandé d'installer manuellement les bibliothèques mentionnées depuis les dépôts git correspondants.
De plus, on peut noter le script unpin.py, qui permet de supprimer les restrictions sur les versions des dépendances («{«, «==» et «~=») dans un paquet précompilé au format wheel, utilisé par de nombreux développeurs, ce qui évite le rétrogradage automatique lors de l'installation d'un paquet requis via pip avec les paramètres par défaut.
Source : opennet.ru
