I just went to the
atom-shell github repo page, and in the readme I found the documentation link. The documentation had a couple of other links, and the quick start seemed to be the most promising first document. So I go to the quick start and then I find this:
Differences between main process and renderer process
The main process creates web pages by creating BrowserWindow instances, and each BrowserWindow instance runs the web page in its own renderer process, when a BrowserWindow instance is destroyed, the corresponding renderer process would also be terminated.
So the main process manages all web pages and their corresponding renderer processes, and each renderer process is separated from each other and only care about the web page running in it.
In web pages it is not allowed call native GUI related APIs because managing native GUI resources in web pages is very dangerous and easy to leak resources. If you want to do GUI operations in web pages, you have to communicate with the main process to do it there.
In atom-shell, we have provided the ipc module for communication between main process and renderer process. And there is also a remote module for RPC style communication.
I vaguely remembered this must have been described, so I knew it must be there, so it was easier to find.