In this example the extension Hansel connects to the extension Gretel:
console.log("connecting to Gretel");
let myPort = browser.runtime.connect(
"[email protected]"
);
myPort.onMessage.addListener((message) => {
console.log(`From Gretel: ${message.content}`);
});
browser.browserAction.onClicked.addListener(() => {
myPort.postMessage({content: "Hello from Hansel"});
});
Gretel listens for the connection and checks that the sender is really Hansel:
let portFromHansel;
browser.runtime.onConnectExternal.addListener((port) => {
console.log(port);
if (port.sender.id === "[email protected]") {
console.log("connection attempt from Hansel");
portFromHansel = port;
portFromHansel.onMessage.addListener((message) => {
console.log(`From Hansel: ${message.content}`);
});
}
});
browser.browserAction.onClicked.addListener(() => {
portFromHansel.postMessage({content: "Message from Gretel"});
});
Note: This API is based on Chromium's chrome.runtime
API. This documentation is derived from runtime.json
in the Chromium code.
Microsoft Edge compatibility data is supplied by Microsoft Corporation and is included here under the Creative Commons Attribution 3.0 United States License.