I have just landed semi-single-profile on the firefox trunk. It will probably take a couple days (or more) to settle out the major regressions in the startup code. It will probably take even longer to settle out the interesting problems with the extension manager (it’s a totally-new functionality, and it’s hard to debug).
When reporting bugs, please make sure to say what version (trunk or branch) you’re using, and what the build date is. Please also search for existing bugs carefully… I have been surprised at how many duplicates are files of firefox branch bugs for 0.9.
Right now, we are using the same restart mechanism on the trunk as we did on the branch. On most platforms (except Mac) this involves using execv to replace the current process. On mac, it turns out that execv doesn’t work for bundled apps, so we have to use trickier system calls.
This is going to change, relatively soon. I have been working at making XPCOM re-startable, so that you can call NS_InitXPCOM2/NS_ShutdownXPCOM several times over the life of the app. This is more “dangerous” because of static data in the tree that might not be cleaned-up properly during XPCOM shutdown.