Add content-to-content communication via message manager

NEW
Unassigned

Status

()

Core
DOM: Content Processes
4 years ago
4 years ago

People

(Reporter: mdas, Unassigned)

Tracking

Trunk
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

Since bug 879475 has landed, we should enable communication between child processes using the message manager. The message manager currently only allows chrome<->content bidirectional communication, but not content<->content, and now that we have child processes creating child processes, it would be useful to be able to communicate between them. In  https://bugzilla.mozilla.org/show_bug.cgi?id=879475#c164, it was stated that PContentBridge enables such communication, but I can't access PContentBridge from JS components as it's only available in C++, and enabling it in message manager would be more familiar/intuitive.

As a use case: it would really help b2g automation if we could have access to content-to-content message passing. Our automation uses Marionette which hacks around basic information passing by storing data in the Marionette server running in the shared b2g root chrome process, and retrieving it from the correct child process, but this is indirect, makes us store extra data and send extra messages around, and if our needs get any more complicated, it will be difficult to figure out what the 'correct' child process will be without direct message passing. If we have content<->content messaging via message manager, we can remove these workarounds, and remove some assumptions we make.
If we enable content-to-content communication, one still needs to find the correct end-points. Also we assumes a parent/child relationship between PContentBridgeParent and PContentBridgeChild. We need to be careful not to be confused by the not-related content-to-content bridge.
You need to log in before you can comment on or make changes to this bug.