Chciałbym uruchomić polecenie (exe gdzieś na dysku) z argumentami w prostym dodatku do WebExtensions i prawdopodobnie uzyskać jego standardowe wyjście. Czy jest to możliwe w WebExtensions, ponieważ starsze API są przestarzałe?Jak uruchomić program wiersza poleceń w rozszerzeniach internetowych Firefox?
Odpowiedz
Ten blogu wspomina jak - https://blog.mozilla.org/addons/2016/06/09/webextensions-for-firefox-49/
Przeczytaj sekcję runtime.connectNative
. Mówią:
runtime.connectNative
Ten interfejs API pozwala na komunikowanie się z innymi procesami w systemie operacyjnym hosta. Jest to powszechnie używany interfejs API dla menedżerów haseł i oprogramowania zabezpieczającego, który musi komunikować się z procesami zewnętrznymi.
Aby komunikować się z procesem natywnym, jest to proces dwuetapowy. Najpierw instalator musi zainstalować plik manifestu JSON w odpowiedniej lokalizacji pliku na komputerze docelowym. Ten manifest JSON zapewnia połączenie między Firefoksem a procesem. Po drugie, użytkownik instaluje dodatek. Następnie add-on może wywołać connectNative, sendNativeMessage i innych API:
chrome.runtime.sendNativeMessage('your-application', { text: "Hello" }, function(response) { console.log("Received " + response); });
Firefox rozpocznie proces, jeśli nie już się rozpoczęła, i nakazuje rura aż do procesu. Postępuj zgodnie z postępem runtime.connectNative w Bugzilli.
Ponieważ na blogu wymieniono ten interfejs API jako "w toku", domyślam się, że nie można go teraz użyć? –
@ MichaelBednarek prawdopodobnie można używać tylko w edycji Nightly i Dev. Jeśli chcesz dodać dodatek do dodatku Firefox Addon SDK, możesz użyć polecenia "child_process" - https://developer.mozilla.org/en-US/Add-ons/SDK/Low-Level_APIs/system_child_process – Noitidart