runtime.onMessage

Fired when a message is sent from either an extension process or a content script.

Syntax

browser.runtime.onMessage.addListener(function(
  message,         // optional any
  sender,          // MessageSender
  function() {...} // function
) {...})
browser.runtime.onMessage.removeListener(listener)
browser.runtime.onMessage.hasListener(listener)

Events have three functions:

addListener(callback)
Adds a listener to this event.
removeListener(listener)
Stop listening to this event. The listener argument is the listener to remove.
hasListener(listener)
Check whether listener is registered for this event. Returns true if it is listening, false otherwise.

addListener syntax

Parameters

callback

Function that will be called when this event occurs. The function will be passed the following arguments:

message
any. The message sent by the calling script.
sender
runtime.MessageSender.
sendResponse
function. Function to call (at most once) when you have a response. The argument should be any JSON-ifiable object. If you have more than one onMessage listener in the same document, then only one may send a response. This function becomes invalid when the event listener returns, unless you return true from the event listener to indicate you wish to send a response asynchronously (this will keep the message channel open to the other end until sendResponse is called).

Returns: boolean. Return true from the event listener if you wish to call sendResponse after the event listener returns.

Browser compatibility

EdgeFirefoxChromeOpera
Basic support?45.0Yes33
Firefox
Basic support48.0

Examples

Example add-ons

Acknowledgements

This API is based on Chromium's chrome.runtime API. This documentation is derived from runtime.json in the Chromium code.

Document Tags and Contributors

 Contributors to this page: wbamberg
 Last updated by: wbamberg,