Bug 671804 - Provide NS_APP_PREF_DEFAULTS_50_DIR and NS_APP_PREFS_DEFAULTS_DIR_LIST in xpcshell dir provider. r=bsmedberg

This commit is contained in:
Mike Hommey 2011-07-21 09:57:07 +02:00
Родитель 2fa4244b02
Коммит 0ce10103b8
1 изменённых файлов: 21 добавлений и 1 удалений

Просмотреть файл

@ -2087,7 +2087,15 @@ XPCShellDirProvider::GetFile(const char *prop, PRBool *persistent,
{
if (mGREDir && !strcmp(prop, NS_GRE_DIR)) {
*persistent = PR_TRUE;
NS_ADDREF(*result = mGREDir);
return mGREDir->Clone(result);
} else if (mGREDir && !strcmp(prop, NS_APP_PREF_DEFAULTS_50_DIR)) {
nsCOMPtr<nsIFile> file;
*persistent = PR_TRUE;
if (NS_FAILED(mGREDir->Clone(getter_AddRefs(file))) ||
NS_FAILED(file->AppendNative(NS_LITERAL_CSTRING("defaults"))) ||
NS_FAILED(file->AppendNative(NS_LITERAL_CSTRING("pref"))))
return NS_ERROR_FAILURE;
NS_ADDREF(*result = file);
return NS_OK;
}
@ -2111,6 +2119,18 @@ XPCShellDirProvider::GetFiles(const char *prop, nsISimpleEnumerator* *result)
dirs.AppendObject(file);
return NS_NewArrayEnumerator(result, dirs);
} else if (!strcmp(prop, NS_APP_PREFS_DEFAULTS_DIR_LIST)) {
nsCOMArray<nsIFile> dirs;
nsCOMPtr<nsIFile> file;
if (NS_FAILED(NS_GetSpecialDirectory(NS_XPCOM_CURRENT_PROCESS_DIR,
getter_AddRefs(file))) ||
NS_FAILED(file->AppendNative(NS_LITERAL_CSTRING("defaults"))) ||
NS_FAILED(file->AppendNative(NS_LITERAL_CSTRING("preferences"))))
return NS_ERROR_FAILURE;
dirs.AppendObject(file);
return NS_NewArrayEnumerator(result, dirs);
}
return NS_ERROR_FAILURE;
}