Due to disagreement with Mozilla's policy and the distributions not to distribute Firefox builds that have unblocked capabilities for installing unsigned add-ons and using the API WebExtensions Experiments, a tool has been developed that transforms standard Firefox builds into a 'Developer Edition', allowing the use of add-ons without a digital signature.
The development of this tool was facilitated by the fact that the necessary functionality in Firefox is implemented in ECMAScript code and is included in any version of Firefox, but is enabled at runtime based on the installed constant values. The constants ('MOZ_DEV_EDITION', 'MOZ_REQUIRE_SIGNING') are defined in a single file ('modules/addons/AddonSettings.jsm') located in the zip archive '/usr/lib/firefox/omni.ja'.
The proposed utility parses the necessary file using esprima-python, patches the AST, and serializes it using jscodegen.py. Working with the zip format is handled by libzip.py — bindings to libzip. It is recommended to install the specified libraries manually from the corresponding git repositories.
Additionally, there is the script unpin.py, which allows unpinning the restrictions '{', '==', and '~=' on dependency versions in the pre-built wheel format package used by many developers, which helps avoid automatic downgrades when installing the necessary package via pip under default settings.
Source: opennet.ru
