onOpenStreamChannel()
The following API is built on top of sendMessage and onMessage, basically, it's just a wrapper, the routing and security rules still apply the same way.
Registers a listener for when a Stream opens. Only one listener per channel per context.
channel
Required | string
Stream(s) are strictly scoped sendMessage(s). Scopes could be different features of your extension that need to talk to the other side, and those scopes are named using a channel id.
callback
Required | fn
Callback that should be called whenever Stream is opened from the other side. Callback will be called with one argument, the Stream object, documented below.
Stream(s) can be opened by a malicious webpage(s) if your extension's content script in that tab has called allowWindowMessaging, if working with sensitive information use isInternalEndpoint(stream.info.endpoint) to check, if false call stream.close() immediately.