Mi piacerebbe eseguire un comando (exe da qualche parte sul disco) con argomenti in un semplice addon di WebExtensions e possibilmente ottenere il suo stdout. C'è un modo per farlo in WebExtensions, dal momento che le API precedenti vengono deprecate?Come eseguire un programma da riga di comando in Firefox Webextensions?
risposta
Questo post del blog ricorda come - https://blog.mozilla.org/addons/2016/06/09/webextensions-for-firefox-49/
Leggere la sezione runtime.connectNative
. Dicono:
runtime.connectNative
Questa API consente di comunicare con altri processi sul sistema operativo dell'host. È un'API comunemente usata per gestori di password e software di sicurezza che deve comunicare con processi esterni.
Per comunicare con un processo nativo, esiste un processo in due passaggi. Innanzitutto, il programma di installazione deve installare un file manifest JSON in un percorso file appropriato sul computer di destinazione. Quel manifest JSON fornisce il collegamento tra Firefox e il processo. In secondo luogo, l'utente installa il componente aggiuntivo. Poi l'add-on può chiamare il connectNative, sendNativeMessage e altre API:
chrome.runtime.sendNativeMessage('your-application', { text: "Hello" }, function(response) { console.log("Received " + response); });
Firefox inizierà il processo, se non è già iniziato, e comandi tubo attraverso il processo. Seguire insieme all'avanzamento di runtime.connectNative su Bugzilla.
Poiché il blog elenca questa API come "in corso", suppongo che non possa essere utilizzata in questo momento? –
@MichaelBednarek probabilmente può essere utilizzato solo in Nightly e Dev Edition. Se vuoi creare un addon SDK Addon per Firefox, puoi usare 'child_process' - https://developer.mozilla.org/en-US/Add-ons/SDK/Low-Level_APIs/system_child_process – Noitidart