A package with basic native messaging apis for webextensions
Project description
nativemessaging
A Python package for interfacing with Native Messaging in WebExtensions
Based on Native Messaging on MDN and native-messaging on mdn/webextension-examples (MPL 2.0 License)
pip3 install nativemessaging
get_message()
nativemessaging.get_message()
will poll for a message from the browser.
If runtime.connectNative
is used, get_message()
must be called repeatedly in a loop to poll for messages.
If runtime.sendNativeMessage
is used, get_message()
only needs to be called once.
encode_message( message_content )
nativemessaging.encode_message()
takes one argument, a message to be encoded.
Returns an encoded version of a message to be returned to the browser. Use with send_message()
.
send_message( encoded_message )
nativemessaging.send_message()
takes one argument, an encoded message from encode_message()
. Returns a message to the browser.
Sample
Browser side:
function onReceived(response) {
console.log(response);
}
// runtime.connectNative
var port = browser.runtime.connectNative("application_name");
port.onMessage.addListener(onReceived);
port.postMessage("hello");
// runtime.sendNativeMessage
browser.runtime.sendNativeMessage("application_name", "hello").then(onReceived);
App side:
import nativemessaging
while True:
message = nativemessaging.get_message()
if message == "hello":
nativemessaging.send_message(nativemessaging.encode_message("world"))
nativemessaging-install
nativemessaging-install
is a command line script provided with the package.
Arguments
nativemessaging-install browser [--manifest manifest]
browser
- positional argument, 1 or more parameters. Must bechrome
orfirefox
.--manifest
- a path to a manifest file to use for installing.
manifest-install.json
A native-manifest.json
file is expected in the current working directory when running the script, unless --manifest
is passsed.
The format must be similar to the native manifest format for Chrome or Firefox, with two main differences:
path
must be a relative path to the native app in relation to your current working directory.- Both
allowed_extensions
andallowed_origins
must be in the manifest to work with both Chrome and Firefox.
{
"name": "application_name",
"description": "description",
"path": "application_name.py",
"type": "stdio",
"allowed_extensions": ["extension@id"],
"allowed_origins": ["chrome-extension://extension-id"]
}
Created files
On Windows, it will create <application_name>_firefox.json
and <application_name>_chrome.json
in the same directory as <path>
.
A batch file will also be created for python apps on Windows.
A registry key is created at HKEY_CURRENT_USER\Software\Google\Chrome\NativeMessagingHosts\<application_name>
or HKEY_CURRENT_USER\Software\Mozilla\NativeMessagingHosts\<application_name>
On linux, it will create ~/.config/google-chrome/NativeMessagingHosts/<application_name>.json
or ~/.mozilla/native-messaging-hosts/<application_name>.json
On mac, it will create ~/Library/Application Support/Google/Chrome/NativeMessagingHosts/<application_name>.json
or ~/Library/Application Support/Mozilla/NativeMessagingHosts/<application_name>.json
See also:
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file nativemessaging-1.0.0.tar.gz
.
File metadata
- Download URL: nativemessaging-1.0.0.tar.gz
- Upload date:
- Size: 4.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.9.1 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.23.4 CPython/3.6.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1c6ab268448ed5ba1149ce8f91e1aad1012ac00760dcabf0acfb4a5526cf3cd0 |
|
MD5 | 83bda8f3656ed48bb2e573153f1f9515 |
|
BLAKE2b-256 | 22d8fbea6f97e03f9c557bdbe1be537c5b825b11fc42f2175353cc6e2ba60c72 |
Provenance
File details
Details for the file nativemessaging-1.0.0-py3-none-any.whl
.
File metadata
- Download URL: nativemessaging-1.0.0-py3-none-any.whl
- Upload date:
- Size: 10.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.9.1 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.23.4 CPython/3.6.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 21f0d1d301dbea5d80b7c6c64b2d8b6771e155ef3e30bc8962bd94aa2fde2c19 |
|
MD5 | f7db0d13906ac6f249bddae330b22206 |
|
BLAKE2b-256 | 00c9994c76668cf1bafcc9f3e3c6ca7807edb82844f30a0ed490a071b7b4e0ac |