3 ms·
Due to the way multi-process browsing works, Firefox at any time still needs to be able to launch new processes in order to accommodate new tabs, or thanks to s
by iggldiggl 4y ago
Due to the way multi-process browsing works, Firefox at any time still needs to be able to launch new processes in order to accommodate new tabs, or thanks to site-isolation possibly even browsing to a different origin within the same tab. Once the old binaries have been unlinked, I assume there is no longer a sane way of launching a new process using the old binaries?
- toast0 4y agoAt start, you could start a new seed process, map all the libraries and what not, but don't do any browsing work... When it's time to launch an isolated process, fork the seed process and use the child. This doesn't seem insane to me, but might not be an easy thing to fit in to the large body of code that's already there. You still have issues if you're starting up during an upgrade, but that's a problem with anything dynamically linked.
- iggldiggl 4y agoDoesn't using fork make it more difficult to cleanly separate the various child processes from each other? It also makes address space layout randomisation less effective, because every forked process starts out with the same base memory layout, doesn't it?
- toast0 4y ago> Doesn't using fork make it more difficult to cleanly separate the various child processes from each other? I don't think so? As long as the main process is separate from the seed process, and the seed process is forked before specialization. > It also makes address space layout randomisation less effective, because every forked process starts out with the same base memory layout, doesn't it? Yeah, I think you're right. Not sure if you could maybe do some randomization post fork, but you're probably right.