This is a very simple example of how to use native messaging to exchange messages between a WebExtension and a native application.
The WebExtension, which can be found under “add-on”, connects to the native application and listens to messages from it. It then sends a message to the native application when the user clicks on the WebExtension’s browser action. The message payload is just “ping”.
The native application, which can be found under “app”, listens for messages from the WebExtension. When it receives a message, the native application sends a response message whose payload is just “pong”. The native application is written in Python.
To get this working, there’s a little setup to do.
execute
permission."path": "C:\\Users\\MDN\\native-messaging\\app\\ping_pong_win.bat"
.To assist in troubleshooting on Windows, there is a script called check_config_win.py
. Running this from the command line should give you an idea of any problems.
Then just install the add-on as usual, by visiting about:debugging, clicking “Load Temporary Add-on”, and selecting the add-on’s “manifest.json”.
You should see a new browser action icon in the toolbar. Open the console (“Tools/Web Developer/Browser Console” in Firefox), and click the browser action icon. You should see output like this in the console:
Sending: ping
Received: pong
If you don’t see this output, see the Troubleshooting guide for ideas.