Closed
Description
This is the continuation of #123592
The extension host is no longer forked off the renderer but it still uses node.js for communication. We need a solution that scales for the amount of data that is coming in and going out between renderer and extension host. In other words, we should not send the data through the shared process message port.
This is similar to what the file watcher had to go through and I ended up pushing for a node.js enabled web worker solution, which means:
- the shared process creates node.js enabled web workers
- the web worker owns one part of the message port end point
- the web worker forks processes and proxies all communication via the message port to the receiver
- the other end of the message port is sent back to the renderer
I believe the extension host could use a similar model, provided that the runtime behaviour of a process from a node.js enabled web worker is identical to a process forked off a node.js enabled window. Maybe @deepak1556 could verify that assumption.