An object containing information about the sender of a message or connection request that is passed to the runtime.onMessage() listener.

It is also a property of runtime.Port, but only in the Port instance passed into the runtime.onConnect() or runtime.onConnectExternal() listeners.


Values of this type are objects. They contain the following properties:

documentId Optional

string. A UUID of the document that opened the connection.

documentLifecycle Optional

string. The lifecycle state the document that opened the connection was in when the port was created. Note that the lifecycle state of the document may have changed since the port was created.

frameId Optional

integer. The frame that opened the connection. Zero for top-level frames, positive for child frames. This is only set when tab is set.

id Optional

string. The ID of the extension that sent the message, if the message was sent by an extension. If the sender has an ID explicitly set using the browser_specific_settings key in manifest.json, then id has this value. Otherwise, it has the ID that was generated for the sender.

origin Optional

string. The origin of the page or frame that opened the connection. It can differ from the url property (e.g., about:blank) or be opaque (e.g., sandboxed iframes). This is useful for identifying if the origin can be trusted if it isn't apparent from the URL.

tab Optional

tabs.Tab. The tabs.Tab which opened the connection. This property is only present when the connection was opened from a tab (including content scripts).

tlsChannelId Optional

string. The TLS channel ID of the page or frame that opened the connection, if requested by the extension and available.

url Optional

string. The URL of the page or frame hosting the script that sent the message.

If the sender is a script running in an extension page (such as a background page, an options page, or a browser action or page action popup), the URL is in the form "moz-extension://<extension-internal-id>/path/to/page.html". If the sender is a background script and you haven't included a background page, it is "moz-extension://<extension-internal-id>/_generated_background_page.html".

If the sender is a script running in a web page (including content and normal page scripts), then url is the web page URL. If the script is running in an iframe, url is the iframe's URL.

Browser compatibility

BCD tables only load in the browser

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