nsresult nsMailGNOMEIntegration::Init() { nsresult rv; // GConf _must_ be available, or we do not allow CreateInstance to succeed. nsCOMPtr<nsIGConfService> gconf = do_GetService(NS_GCONFSERVICE_CONTRACTID); nsCOMPtr<nsIGIOService> giovfs = do_GetService(NS_GIOSERVICE_CONTRACTID); if (!gconf && !giovfs) return NS_ERROR_NOT_AVAILABLE; // Check G_BROKEN_FILENAMES. If it's set, then filenames in glib use // the locale encoding. If it's not set, they use UTF-8. mUseLocaleFilenames = PR_GetEnv("G_BROKEN_FILENAMES") != nsnull; if (GetAppPathFromLauncher()) return NS_OK; nsCOMPtr<nsIFile> appPath; rv = NS_GetSpecialDirectory(NS_XPCOM_CURRENT_PROCESS_DIR, getter_AddRefs(appPath)); NS_ENSURE_SUCCESS(rv, rv); rv = appPath->AppendNative(NS_LITERAL_CSTRING(MOZ_APP_NAME)); NS_ENSURE_SUCCESS(rv, rv); rv = appPath->GetNativePath(mAppPath); return rv; }
nsresult nsGNOMEShellService::Init() { nsresult rv; // GConf or GIO _must_ be available, or we do not allow // CreateInstance to succeed. nsCOMPtr<nsIGConfService> gconf = do_GetService(NS_GCONFSERVICE_CONTRACTID); nsCOMPtr<nsIGIOService> giovfs = do_GetService(NS_GIOSERVICE_CONTRACTID); if (!gconf && !giovfs) return NS_ERROR_NOT_AVAILABLE; // Check G_BROKEN_FILENAMES. If it's set, then filenames in glib use // the locale encoding. If it's not set, they use UTF-8. mUseLocaleFilenames = PR_GetEnv("G_BROKEN_FILENAMES") != nsnull; if (GetAppPathFromLauncher()) return NS_OK; nsCOMPtr<nsIProperties> dirSvc (do_GetService("@mozilla.org/file/directory_service;1")); NS_ENSURE_TRUE(dirSvc, NS_ERROR_NOT_AVAILABLE); nsCOMPtr<nsILocalFile> appPath; rv = dirSvc->Get(NS_XPCOM_CURRENT_PROCESS_DIR, NS_GET_IID(nsILocalFile), getter_AddRefs(appPath)); NS_ENSURE_SUCCESS(rv, rv); rv = appPath->AppendNative(NS_LITERAL_CSTRING(MOZ_APP_NAME)); NS_ENSURE_SUCCESS(rv, rv); return appPath->GetNativePath(mAppPath); }