Aufgrund der Ablehnung der Mozilla-Politik und der Distributionen, die keine Versionen von Firefox ohne gesperrte Möglichkeiten zur Installation unsignierter Erweiterungen und zur Nutzung der API WebExtensions Experiments bereitstellen, wurde ein Tool entwickelt, das regulĂ€re Versionen von Firefox in eine âDeveloper Editionâ umwandelt, die die Verwendung von nicht signierten Erweiterungen erlaubt.
Die Entwicklung des Tools wurde erleichtert, da die benötigte FunktionalitĂ€t in Firefox in ECMAScript-Code implementiert ist und in jeder Version von Firefox enthalten ist, jedoch zur Laufzeit des Codes aktiv wird, abhĂ€ngig von den festgelegten Konstanten. Die Konstanten (âMOZ_DEV_EDITIONâ, âMOZ_REQUIRE_SIGNINGâ) sind in einer Datei definiert (âmodules/addons/AddonSettings.jsmâ), die im Zip-Archiv â/usr/lib/firefox/omni.jaâ zu finden ist.
Das vorgeschlagene Tool parst die benötigte Datei mit esprima-python, patcht den AST und serialisiert mit jscodegen.py. Der Umgang mit dem Zip-Format wird durch libzip.py â Bindings zu libzip â sichergestellt. Es wird empfohlen, die genannten Bibliotheken manuell aus den entsprechenden Git-Repositories zu installieren.
ZusĂ€tzlich kann das Skript unpin.py erwĂ€hnt werden, das die EinschrĂ€nkungen â{â, â==â und â~=â bezĂŒglich der Versionen von AbhĂ€ngigkeiten im vorgefertigten Wheel-Paket, das von vielen Entwicklern verwendet wird, aufhebt, wodurch ein automatisches Downgrade beim Installieren des benötigten Pakets ĂŒber pip mit den Standardkonfigurationen vermieden wird.
Quelle: opennet.ru
