Narzędzie, które zamienia zwykłe przeglądarki oparte na przeglądarce Firefox w wersję Developer Edition

W związku z brakiem zgody z polityką Mozilli i dystrybucji, aby nie rozpowszechniać kompilacji Firefoksa, które mają odblokowane możliwości instalowania niepodpisanych dodatków i korzystania z API WebExtensions Experiments, opracowano narzędzie, które konwertuje zwykłe kompilacje Firefoksa do wariantu „Developer Edition”, który umożliwia korzystanie z dodatków bez podpisu cyfrowego.

Rozwój narzędzia ułatwił fakt, że niezbędna funkcjonalność w Firefoksie jest zaimplementowana w kodzie ECMAScript i jest zawarta w dowolnej wersji Firefoksa, ale jest włączana w czasie wykonywania w zależności od ustawionych wartości stałych. Stałe („MOZ_DEV_EDITION”, „MOZ_REQUIRE_SIGNING”) zdefiniowane są w jednym pliku („modules/addons/AddonSettings.jsm”), który znajduje się w archiwum zip „/usr/lib/firefox/omni.ja”.

Proponowane narzędzie analizuje wymagany plik za pomocą esprima-python, łata AST i serializuje go za pomocą jscodegen.py. Pracę z formatem zip zapewnia libzip.py - powiązania z libzip. Zalecane jest ręczne zainstalowanie określonych bibliotek z odpowiednich repozytoriów git.

Dodatkowo można zwrócić uwagę na skrypt unpin.py, który pozwala na odłączenie ograniczeń „{”, „==” i „~=” od wersji zależności w prekompilowanym pakiecie formatu koła, używanym przez wiele programistów, co pozwala uniknąć automatycznego obniżenia wersji podczas instalowania żądanego pakietu za pomocą pip przy ustawieniach domyślnych.

Źródło: opennet.ru

Dodaj komentarz