code: function listener(message, sender) {
  			var messageEvent = new MessageEvent({
  				data: message,
  				origin: sender.tab ? sender.tab.url : sender.url
  			})
  			if (
  				('sourceChannel' in messageEvent)
  				&& ('key' in messageEvent)
  				&& transport.name === messageEvent.sourceChannel //events on the same channel
  				&& transport.key !== messageEvent.key //skip returned back events
  			) {
  				handler(messageEvent)
  			}
  		}
docs: Fired when a message is sent from another extension/app (by runtime.sendMessage). Cannot be used in a content script. chrome.runtime.onMessageExternal.addListener(function (request, sender, sendResponse){})