bug 241384 nsProfileDirServiceProvider should be GRE friendly

patch by marco@gnome.org r=ccarlen sr=darin
This commit is contained in:
cbiesinger%web.de 2004-05-26 18:46:42 +00:00
Родитель 441c269ffb
Коммит a89c7bad94
5 изменённых файлов: 33 добавлений и 93 удалений

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

@ -42,7 +42,7 @@ VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
MODULE = profdirserviceprovider
DIRS = public src
DIRS = public src standalone
include $(topsrcdir)/config/rules.mk

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

@ -39,10 +39,14 @@
// Interfaces Needed
#include "nsIDirectoryService.h"
#include "nsILocalFile.h"
#ifdef STANDALONE_PROFILEDIRSERVICE
#include "nsEmbedString.h"
#else
#include "nsString.h"
#endif
// Forward Declarations
class nsIAtom;
class nsProfileLock;
// --------------------------------------------------------------------------------------
@ -102,29 +106,16 @@ protected:
protected:
// Atoms for file locations
static nsIAtom* sApp_PrefsDirectory50;
static nsIAtom* sApp_PreferencesFile50;
static nsIAtom* sApp_UserProfileDirectory50;
static nsIAtom* sApp_UserChromeDirectory;
static nsIAtom* sApp_LocalStore50;
static nsIAtom* sApp_History50;
static nsIAtom* sApp_UsersPanels50;
static nsIAtom* sApp_UsersMimeTypes50;
static nsIAtom* sApp_BookmarksFile50;
static nsIAtom* sApp_DownloadsFile50;
static nsIAtom* sApp_SearchFile50;
static nsIAtom* sApp_MailDirectory50;
static nsIAtom* sApp_ImapMailDirectory50;
static nsIAtom* sApp_NewsDirectory50;
static nsIAtom* sApp_MessengerFolderCache50;
nsCOMPtr<nsIFile> mProfileDir;
nsProfileLock* mProfileDirLock;
PRPackedBool mNotifyObservers;
PRPackedBool mSharingEnabled;
#ifdef STANDALONE_PROFILEDIRSERVICE
nsEmbedString mNonSharedDirName;
#else
nsString mNonSharedDirName;
#endif
nsCOMPtr<nsIFile> mNonSharedProfileDir;
};

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

@ -40,6 +40,7 @@ srcdir = @srcdir@
VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
include $(srcdir)/objs.mk
MODULE = profdirserviceprovider
LIBRARY_NAME = profdirserviceprovider_s
@ -53,11 +54,7 @@ REQUIRES += ipcd \
$(NULL)
endif
CPPSRCS = nsProfileDirServiceProvider.cpp
ifdef MOZ_PROFILELOCKING
CPPSRCS += nsProfileLock.cpp
endif
CPPSRCS = $(MODULES_PROFILEDIRSERVICE_SRC_LCSRCS)
# we don't want the shared lib
FORCE_STATIC_LIB = 1

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

@ -37,9 +37,8 @@
* ***** END LICENSE BLOCK ***** */
#include "nsProfileDirServiceProvider.h"
#include "nsProfileStringTypes.h"
#include "nsProfileLock.h"
#include "nsIAtom.h"
#include "nsStaticAtom.h"
#include "nsILocalFile.h"
#include "nsDirectoryServiceDefs.h"
#include "nsAppDirectoryServiceDefs.h"
@ -68,25 +67,6 @@
#define NEWS_DIR_50_NAME NS_LITERAL_CSTRING("News")
#define MSG_FOLDER_CACHE_DIR_50_NAME NS_LITERAL_CSTRING("panacea.dat")
// Static Variables
nsIAtom* nsProfileDirServiceProvider::sApp_PrefsDirectory50;
nsIAtom* nsProfileDirServiceProvider::sApp_PreferencesFile50;
nsIAtom* nsProfileDirServiceProvider::sApp_UserProfileDirectory50;
nsIAtom* nsProfileDirServiceProvider::sApp_UserChromeDirectory;
nsIAtom* nsProfileDirServiceProvider::sApp_LocalStore50;
nsIAtom* nsProfileDirServiceProvider::sApp_History50;
nsIAtom* nsProfileDirServiceProvider::sApp_UsersPanels50;
nsIAtom* nsProfileDirServiceProvider::sApp_UsersMimeTypes50;
nsIAtom* nsProfileDirServiceProvider::sApp_BookmarksFile50;
nsIAtom* nsProfileDirServiceProvider::sApp_DownloadsFile50;
nsIAtom* nsProfileDirServiceProvider::sApp_SearchFile50;
nsIAtom* nsProfileDirServiceProvider::sApp_MailDirectory50;
nsIAtom* nsProfileDirServiceProvider::sApp_ImapMailDirectory50;
nsIAtom* nsProfileDirServiceProvider::sApp_NewsDirectory50;
nsIAtom* nsProfileDirServiceProvider::sApp_MessengerFolderCache50;
//*****************************************************************************
// nsProfileDirServiceProvider::nsProfileDirServiceProvider
//*****************************************************************************
@ -241,27 +221,24 @@ nsProfileDirServiceProvider::GetFile(const char *prop, PRBool *persistant, nsIFi
nsCOMPtr<nsIFile> localFile;
nsresult rv = NS_ERROR_FAILURE;
nsIAtom* inAtom = NS_NewAtom(prop);
NS_ENSURE_TRUE(inAtom, NS_ERROR_OUT_OF_MEMORY);
if (inAtom == sApp_PrefsDirectory50) {
if (strcmp(prop, NS_APP_PREFS_50_DIR) == 0) {
rv = domainDir->Clone(getter_AddRefs(localFile));
}
else if (inAtom == sApp_PreferencesFile50) {
else if (strcmp(prop, NS_APP_PREFS_50_FILE) == 0) {
rv = domainDir->Clone(getter_AddRefs(localFile));
if (NS_SUCCEEDED(rv))
rv = localFile->AppendNative(PREFS_FILE_50_NAME);
}
else if (inAtom == sApp_UserProfileDirectory50) {
else if (strcmp(prop, NS_APP_USER_PROFILE_50_DIR) == 0) {
rv = domainDir->Clone(getter_AddRefs(localFile));
}
else if (inAtom == sApp_UserChromeDirectory) {
else if (strcmp(prop, NS_APP_USER_CHROME_DIR) == 0) {
rv = domainDir->Clone(getter_AddRefs(localFile));
if (NS_SUCCEEDED(rv))
rv = localFile->AppendNative(USER_CHROME_DIR_50_NAME);
}
else if (inAtom == sApp_LocalStore50) {
else if (strcmp(prop, NS_APP_LOCALSTORE_50_FILE) == 0) {
rv = domainDir->Clone(getter_AddRefs(localFile));
if (NS_SUCCEEDED(rv)) {
rv = localFile->AppendNative(LOCAL_STORE_FILE_50_NAME);
@ -272,12 +249,12 @@ nsProfileDirServiceProvider::GetFile(const char *prop, PRBool *persistant, nsIFi
}
}
}
else if (inAtom == sApp_History50) {
else if (strcmp(prop, NS_APP_HISTORY_50_FILE) == 0) {
rv = domainDir->Clone(getter_AddRefs(localFile));
if (NS_SUCCEEDED(rv))
rv = localFile->AppendNative(HISTORY_FILE_50_NAME);
}
else if (inAtom == sApp_UsersPanels50) {
else if (strcmp(prop, NS_APP_USER_PANELS_50_FILE) == 0) {
rv = domainDir->Clone(getter_AddRefs(localFile));
if (NS_SUCCEEDED(rv)) {
rv = localFile->AppendNative(PANELS_FILE_50_NAME);
@ -285,7 +262,7 @@ nsProfileDirServiceProvider::GetFile(const char *prop, PRBool *persistant, nsIFi
rv = EnsureProfileFileExists(localFile, domainDir);
}
}
else if (inAtom == sApp_UsersMimeTypes50) {
else if (strcmp(prop, NS_APP_USER_MIMETYPES_50_FILE) == 0) {
rv = domainDir->Clone(getter_AddRefs(localFile));
if (NS_SUCCEEDED(rv)) {
rv = localFile->AppendNative(MIME_TYPES_FILE_50_NAME);
@ -293,17 +270,17 @@ nsProfileDirServiceProvider::GetFile(const char *prop, PRBool *persistant, nsIFi
rv = EnsureProfileFileExists(localFile, domainDir);
}
}
else if (inAtom == sApp_BookmarksFile50) {
else if (strcmp(prop, NS_APP_BOOKMARKS_50_FILE) == 0) {
rv = domainDir->Clone(getter_AddRefs(localFile));
if (NS_SUCCEEDED(rv))
rv = localFile->AppendNative(BOOKMARKS_FILE_50_NAME);
}
else if (inAtom == sApp_DownloadsFile50) {
else if (strcmp(prop, NS_APP_DOWNLOADS_50_FILE) == 0) {
rv = domainDir->Clone(getter_AddRefs(localFile));
if (NS_SUCCEEDED(rv))
rv = localFile->AppendNative(DOWNLOADS_FILE_50_NAME);
}
else if (inAtom == sApp_SearchFile50) {
else if (strcmp(prop, NS_APP_SEARCH_50_FILE) == 0) {
rv = domainDir->Clone(getter_AddRefs(localFile));
if (NS_SUCCEEDED(rv)) {
rv = localFile->AppendNative(SEARCH_FILE_50_NAME);
@ -311,29 +288,27 @@ nsProfileDirServiceProvider::GetFile(const char *prop, PRBool *persistant, nsIFi
rv = EnsureProfileFileExists(localFile, domainDir);
}
}
else if (inAtom == sApp_MailDirectory50) {
else if (strcmp(prop, NS_APP_MAIL_50_DIR) == 0) {
rv = domainDir->Clone(getter_AddRefs(localFile));
if (NS_SUCCEEDED(rv))
rv = localFile->AppendNative(MAIL_DIR_50_NAME);
}
else if (inAtom == sApp_ImapMailDirectory50) {
else if (strcmp(prop, NS_APP_IMAP_MAIL_50_DIR) == 0) {
rv = domainDir->Clone(getter_AddRefs(localFile));
if (NS_SUCCEEDED(rv))
rv = localFile->AppendNative(IMAP_MAIL_DIR_50_NAME);
}
else if (inAtom == sApp_NewsDirectory50) {
else if (strcmp(prop, NS_APP_NEWS_50_DIR) == 0) {
rv = domainDir->Clone(getter_AddRefs(localFile));
if (NS_SUCCEEDED(rv))
rv = localFile->AppendNative(NEWS_DIR_50_NAME);
}
else if (inAtom == sApp_MessengerFolderCache50) {
else if (strcmp(prop, NS_APP_MESSENGER_FOLDER_CACHE_50_DIR) == 0) {
rv = domainDir->Clone(getter_AddRefs(localFile));
if (NS_SUCCEEDED(rv))
rv = localFile->AppendNative(MSG_FOLDER_CACHE_DIR_50_NAME);
}
NS_RELEASE(inAtom);
if (localFile && NS_SUCCEEDED(rv))
return CallQueryInterface(localFile, _retval);
@ -365,28 +340,6 @@ nsProfileDirServiceProvider::Initialize()
}
#endif
static const nsStaticAtom provider_atoms[] = {
{ NS_APP_PREFS_50_DIR, &sApp_PrefsDirectory50 },
{ NS_APP_PREFS_50_FILE, &sApp_PreferencesFile50 },
{ NS_APP_USER_PROFILE_50_DIR, &sApp_UserProfileDirectory50 },
{ NS_APP_USER_CHROME_DIR, &sApp_UserChromeDirectory },
{ NS_APP_LOCALSTORE_50_FILE, &sApp_LocalStore50 },
{ NS_APP_HISTORY_50_FILE, &sApp_History50 },
{ NS_APP_USER_PANELS_50_FILE, &sApp_UsersPanels50 },
{ NS_APP_USER_MIMETYPES_50_FILE, &sApp_UsersMimeTypes50 },
{ NS_APP_BOOKMARKS_50_FILE, &sApp_BookmarksFile50 },
{ NS_APP_DOWNLOADS_50_FILE, &sApp_DownloadsFile50 },
{ NS_APP_SEARCH_50_FILE, &sApp_SearchFile50 },
{ NS_APP_MAIL_50_DIR, &sApp_MailDirectory50 },
{ NS_APP_IMAP_MAIL_50_DIR, &sApp_ImapMailDirectory50 },
{ NS_APP_NEWS_50_DIR, &sApp_NewsDirectory50 },
{ NS_APP_MESSENGER_FOLDER_CACHE_50_DIR, &sApp_MessengerFolderCache50 },
{ NS_APP_PROFILE_DEFAULTS_NLOC_50_DIR, nsnull },
};
// Register our directory atoms
NS_RegisterStaticAtoms(provider_atoms, NS_ARRAY_LENGTH(provider_atoms));
return NS_OK;
}
@ -446,7 +399,7 @@ nsProfileDirServiceProvider::InitProfileDir(nsIFile *profileDir)
return NS_ERROR_FILE_NOT_DIRECTORY;
}
if (!mNonSharedDirName.IsEmpty())
if (mNonSharedDirName.Length())
rv = InitNonSharedProfileDir();
return rv;
@ -458,7 +411,7 @@ nsProfileDirServiceProvider::InitNonSharedProfileDir()
nsresult rv;
NS_ENSURE_STATE(mProfileDir);
NS_ENSURE_STATE(!mNonSharedDirName.IsEmpty());
NS_ENSURE_STATE(mNonSharedDirName.Length());
nsCOMPtr<nsIFile> localDir;
rv = mProfileDir->Clone(getter_AddRefs(localDir));
@ -518,7 +471,7 @@ nsProfileDirServiceProvider::EnsureProfileFileExists(nsIFile *aFile, nsIFile *de
if (NS_FAILED(rv))
return rv;
return defaultsFile->CopyTo(destDir, nsString());
return defaultsFile->CopyTo(destDir, EmptyString());
}
nsresult

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

@ -39,9 +39,8 @@
*
* ***** END LICENSE BLOCK ***** */
#include "nsProfileStringTypes.h"
#include "nsProfileLock.h"
#include "nsLiteralString.h"
#include "nsString.h"
#if defined(XP_MAC) || defined(XP_MACOSX)
#include <Processes.h>