We only promise to load JS code (and create instances) for pages that actually make use of the extension: the definition of make use is to call something that is considered an entry point (e.g. we load the dialog extension when the user calls something inside 'xwalk.experimental.dialog'). This prevents us spending cycles with frames and pages that don't really care about our extension code.

Broadcast operation might led you wrongly think that an event will be delivered to some instance, and due to the above maybe no one is listening (but you pay the IPC price).

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.

My point is that given the circumstances Broadcast is easy to misuse. See also bug #948.