I'd like to run a command (exe somewhere on disk) with arguments in a simple WebExtensions addon, and possibly get its stdout. Is there a way to do so in WebExtensions, since the older APIs are being deprecated?
You can open the command line interface by pressing Shift+F2.
In Firefox: Open the about:debugging page, click the This Firefox option, click the Load Temporary Add-on button, then select any file in your extension's directory. The extension now installs, and remains installed until you restart Firefox.
Use nohup firefox & to run firefox from terminal and you can use terminal for other process, if you close terminal, firefox will not quit. If you get error like Another instance is running then use nohup firefox -P --no-remote & and create a new user profile and browse. Save this answer.
This blog post mentions how - https://blog.mozilla.org/addons/2016/06/09/webextensions-for-firefox-49/
Read the section runtime.connectNative
. They say:
runtime.connectNative
This API allows you to communicate with other processes on the host’s operating system. It’s a commonly used API for password managers and security software which needs to communicate with external processes.
To communicate with a native process, there’s a two-step process. First, your installer needs to install a JSON manifest file at an appropriate file location on the target computer. That JSON manifest provides the link between Firefox and the process. Secondly, the user installs the add-on. Then the add-on can call the connectNative, sendNativeMessage and other APIs:
chrome.runtime.sendNativeMessage('your-application', { text: "Hello" }, function(response) { console.log("Received " + response); });
Firefox will start the process if it hasn’t started already, and pipe commands through to the process. Follow along with the progress of runtime.connectNative on Bugzilla.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With