1. Use the profile mgr
2. Use a litle lib in modules/mpfilelocprovider - gtkWidget does this,
possibly other embedding apps
What I'd like to do is get rid of modules/mpfilelocprovider, still build
a static lib, but build it in the profile module. The profile dll would
link with it, but the static lib would be exported so an embedding app
could link with it.
The advantage would be one less dir in /modules and less duplicate code.
The nsIDirectoryServiceProvider implemented by proifle mgr and this
static lib are more or less the same.
I'd also like to make it required that any app built with mozilla code
support one of the two methods above. The only thing I know of that does
neither is viewer and I've seen some hacks here and there to get around
this. If all it has to do is link with a static lib, why not? If we were
guaranteed to have these file locations, it could make some things
cleaner. It could also make things more efficient. For one, chrome reg
makes many failed calls at startup to directory service to find the user
chrome dir. If profle mgr is being used, it won't succeed until a
profile is set. If we could guarantee that these locations either exist
initially or notification will be sent when they do, it would be better.
Thoughts, objections?