ExtendableMessageEvent.source

This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

The source read-only property of the ExtendableMessageEvent returns a reference to the Client object from which the message was sent.

Syntax

var mySource = ExtendableMessageEventInstance.source;

Value

A Client, ServiceWorker or MessagePort object.

Examples

When the following code is used inside a service worker to respond to a push messages by sending the data received via PushMessageData to the main context via a channel message, the event object of onmessage will be a ExtendableMessageEvent.

var port;

self.addEventListener('push', function(e) {
  var obj = e.data.json();

  if(obj.action === 'subscribe' || obj.action === 'unsubscribe') {
    port.postMessage(obj);
  } else if(obj.action === 'init' || obj.action === 'chatMsg') {
    port.postMessage(obj);
  }
});

self.onmessage = function(e) {
  console.log(e.source);
  port = e.ports[0];
}

Specifications

Specification Status Comment
Service Workers
The definition of 'ExtendableMessageEvent.source' in that specification.
Working Draft Initial definition.

Browser compatibility

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support ? ?451 No ? No
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support No ? ?45 ? No ?

1. Service workers (and Push) have been disabled in the Firefox 45 & 52 Extended Support Releases (ESR).

See also

Document Tags and Contributors

Contributors to this page: fscholz, chrisdavidmills
Last updated by: fscholz,