This could use some explanation. Why do we create a custom provider for coreAppsDir?

Also, this should be in an XPCOM component registered via a component manifest. Otherwise, it might not get registered early enough in the startup process. See references to [xpcom-directory-providers](http://mxr.mozilla.org/mozilla-central/search?string=xpcom-directory-providers) for examples.