> In your example I think that not every instance should receive this event, but only instances watching for this event, so the page interested will register for watching these events, and it can register with the other side as an instance interested in receiving events. When instance dies, JS side knows and can remove from that list.

Your concerns here is valid.

The current implementation is, adding event listener in API binding code, and relying on `extension.setMessageListener` to receive the event message, otherwise there is no way to listen the message sent from native side. If the target  event is arrived, then all listeners would be called. It makes sense that only the extension instances who are interested in the event will receive such an event notification. 

Another alternative approach is, each extension API implementation will implement addEventListener/removeEventListener API. Take addEventListener, it needs to insert an new event listener into callback list, and also it has to tell the native side that an event listener is added (so the native side knows which extension instances are interested in the event). In this sense, we need to introduce a general event listener mechanism to support this, like `chrome.Event` does.  I opened a bug to track this at https://crosswalk-project.org/jira/browse/XWALK-244.

But I don't think this PR could address such an improvement here. It is somewhat an enhancement to the extension mechanism. 
@cmarcelo  Your opinion?