mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-14 05:45:37 +00:00
Use nsILocalFile relative descs for mail prefs r=sspitzer, sr=mscott 137006, initial patch by ccarlen
This commit is contained in:
parent
f00fcdf46d
commit
ec56dfbd94
@ -58,9 +58,12 @@
|
||||
#include "prprf.h"
|
||||
#include "nsISupportsObsolete.h"
|
||||
#include "nsISupportsPrimitives.h"
|
||||
#include "nsMsgUtils.h"
|
||||
|
||||
static NS_DEFINE_CID(kRDFServiceCID, NS_RDFSERVICE_CID);
|
||||
|
||||
static NS_NAMED_LITERAL_CSTRING(REL_FILE_PREF_SUFFIX, "-rel");
|
||||
|
||||
NS_IMPL_THREADSAFE_ISUPPORTS1(nsMsgIdentity,
|
||||
nsIMsgIdentity)
|
||||
|
||||
@ -388,39 +391,44 @@ nsMsgIdentity::ToString(PRUnichar **aResult)
|
||||
|
||||
/* Identity attribute accessors */
|
||||
|
||||
// XXX - these are a COM objects, use NS_ADDREF
|
||||
//NS_IMPL_GETSET(nsMsgIdentity, Signature, nsIMsgSignature*, m_signature);
|
||||
NS_IMETHODIMP
|
||||
nsMsgIdentity::GetSignature(nsILocalFile **sig) {
|
||||
nsMsgIdentity::GetSignature(nsILocalFile **sig)
|
||||
{
|
||||
nsresult rv = getPrefService();
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
|
||||
char *prefName = getPrefName(m_identityKey, "sig_file");
|
||||
rv = m_prefBranch->GetComplexValue(prefName, NS_GET_IID(nsILocalFile), (void **)sig);
|
||||
if (NS_FAILED(rv))
|
||||
*sig = nsnull;
|
||||
if (!prefName)
|
||||
return NS_ERROR_FAILURE;
|
||||
nsCAutoString relPrefName(prefName);
|
||||
relPrefName.Append(REL_FILE_PREF_SUFFIX);
|
||||
|
||||
PRBool gotRelPref;
|
||||
rv = NS_GetPersistentFile(relPrefName.get(), prefName, nsnull, gotRelPref, sig);
|
||||
if (NS_SUCCEEDED(rv) && !gotRelPref)
|
||||
{
|
||||
rv = NS_SetPersistentFile(relPrefName.get(), prefName, *sig);
|
||||
NS_ASSERTION(NS_SUCCEEDED(rv), "Failed to write signature file pref.");
|
||||
}
|
||||
PR_Free(prefName);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsMsgIdentity::SetSignature(nsILocalFile *sig)
|
||||
{
|
||||
|
||||
nsresult rv = getPrefService();
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
|
||||
rv = NS_OK;
|
||||
char *prefName = getPrefName(m_identityKey, "sig_file");
|
||||
nsresult rv = NS_OK;
|
||||
if (sig)
|
||||
rv = m_prefBranch->SetComplexValue(prefName, NS_GET_IID(nsILocalFile), sig);
|
||||
/*
|
||||
else
|
||||
m_prefBranch->ClearFilePref(prefName);
|
||||
*/
|
||||
PR_Free(prefName);
|
||||
return rv;
|
||||
{
|
||||
char *prefName = getPrefName(m_identityKey, "sig_file");
|
||||
if (!prefName)
|
||||
return NS_ERROR_FAILURE;
|
||||
|
||||
return NS_OK;
|
||||
nsCAutoString relPrefName(prefName);
|
||||
relPrefName.Append(REL_FILE_PREF_SUFFIX);
|
||||
rv = NS_SetPersistentFile(relPrefName.get(), prefName, sig);
|
||||
}
|
||||
return rv;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
|
@ -82,6 +82,8 @@
|
||||
|
||||
#define PORT_NOT_SET -1
|
||||
|
||||
NS_NAMED_LITERAL_CSTRING(REL_FILE_PREF_SUFFIX, "-rel");
|
||||
|
||||
MOZ_DECL_CTOR_COUNTER(nsMsgIncomingServer)
|
||||
|
||||
nsMsgIncomingServer::nsMsgIncomingServer():
|
||||
@ -134,17 +136,17 @@ nsMsgIncomingServer::SetRootFolder(nsIMsgFolder * aRootFolder)
|
||||
NS_IMETHODIMP
|
||||
nsMsgIncomingServer::GetRootFolder(nsIMsgFolder * *aRootFolder)
|
||||
{
|
||||
if (!aRootFolder)
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
if (m_rootFolder) {
|
||||
NS_ENSURE_ARG_POINTER(aRootFolder);
|
||||
if (m_rootFolder)
|
||||
{
|
||||
*aRootFolder = m_rootFolder;
|
||||
NS_ADDREF(*aRootFolder);
|
||||
} else {
|
||||
}
|
||||
else
|
||||
{
|
||||
nsresult rv = CreateRootFolder();
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
|
||||
*aRootFolder = m_rootFolder;
|
||||
NS_IF_ADDREF(*aRootFolder);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
NS_IF_ADDREF(*aRootFolder = m_rootFolder);
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
@ -471,11 +473,21 @@ nsMsgIncomingServer::GetFileValue(const char* prefname,
|
||||
nsCAutoString fullPrefName;
|
||||
getPrefName(m_serverKey.get(), prefname, fullPrefName);
|
||||
|
||||
nsCAutoString fullRelPrefName(fullPrefName);
|
||||
fullRelPrefName.Append(REL_FILE_PREF_SUFFIX);
|
||||
nsCOMPtr<nsILocalFile> prefLocal;
|
||||
|
||||
nsresult rv = m_prefBranch->GetComplexValue(fullPrefName.get(),
|
||||
NS_GET_IID(nsILocalFile),
|
||||
getter_AddRefs(prefLocal));
|
||||
PRBool gotRelPref;
|
||||
nsresult rv = NS_GetPersistentFile(fullRelPrefName.get(), fullPrefName.get(),
|
||||
nsnull, gotRelPref, getter_AddRefs(prefLocal));
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
|
||||
if (NS_SUCCEEDED(rv) && !gotRelPref)
|
||||
{
|
||||
rv = NS_SetPersistentFile(fullRelPrefName.get(), fullPrefName.get(), prefLocal);
|
||||
NS_ASSERTION(NS_SUCCEEDED(rv), "Failed to update file pref.");
|
||||
}
|
||||
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
|
||||
nsCOMPtr<nsIFileSpec> outSpec;
|
||||
@ -494,21 +506,19 @@ nsMsgIncomingServer::SetFileValue(const char* prefname,
|
||||
{
|
||||
nsCAutoString fullPrefName;
|
||||
getPrefName(m_serverKey.get(), prefname, fullPrefName);
|
||||
nsCAutoString fullRelPrefName(fullPrefName);
|
||||
fullRelPrefName.Append(REL_FILE_PREF_SUFFIX);
|
||||
|
||||
nsresult rv;
|
||||
nsFileSpec tempSpec;
|
||||
rv = spec->GetFileSpec(&tempSpec);
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
|
||||
nsCOMPtr<nsILocalFile> prefLocal;
|
||||
rv = NS_FileSpecToIFile(&tempSpec, getter_AddRefs(prefLocal));
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
|
||||
rv = m_prefBranch->SetComplexValue(fullPrefName.get(), NS_GET_IID(nsILocalFile),
|
||||
prefLocal);
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
|
||||
return NS_OK;
|
||||
nsCOMPtr<nsILocalFile> localFile;
|
||||
NS_FileSpecToIFile(&tempSpec, getter_AddRefs(localFile));
|
||||
if (!localFile)
|
||||
return NS_ERROR_FAILURE;
|
||||
return NS_SetPersistentFile(fullRelPrefName.get(), fullPrefName.get(), localFile);
|
||||
}
|
||||
|
||||
nsresult
|
||||
|
@ -59,6 +59,9 @@
|
||||
#include "nsIRDFService.h"
|
||||
#include "nsIMimeConverter.h"
|
||||
#include "nsMsgMimeCID.h"
|
||||
#include "nsIPrefService.h"
|
||||
#include "nsIRelativeFilePref.h"
|
||||
#include "nsAppDirectoryServiceDefs.h"
|
||||
#include "nsICategoryManager.h"
|
||||
#include "nsCategoryManagerUtils.h"
|
||||
#include "nsISpamSettings.h"
|
||||
@ -502,7 +505,11 @@ nsresult NS_MsgEscapeEncodeURLPath(const PRUnichar *str, char **result)
|
||||
NS_ENSURE_ARG_POINTER(str);
|
||||
NS_ENSURE_ARG_POINTER(result);
|
||||
|
||||
*result = nsEscape(NS_ConvertUCS2toUTF8(str).get(), url_Path);
|
||||
nsCAutoString escapedStr;
|
||||
NS_EscapeURL(NS_ConvertUCS2toUTF8(str),
|
||||
esc_FileBaseName|esc_Forced|esc_AlwaysCopy,
|
||||
escapedStr);
|
||||
*result = nsCRT::strdup(escapedStr.get());
|
||||
if (!*result) return NS_ERROR_OUT_OF_MEMORY;
|
||||
return NS_OK;
|
||||
}
|
||||
@ -837,3 +844,87 @@ nsresult MSGApopMD5(const char *text, PRInt32 text_len, const char *password, PR
|
||||
memcpy(digest, result, DIGEST_LENGTH);
|
||||
return rv;
|
||||
}
|
||||
|
||||
NS_MSG_BASE nsresult NS_GetPersistentFile(const char *relPrefName,
|
||||
const char *absPrefName,
|
||||
const char *dirServiceProp,
|
||||
PRBool& gotRelPref,
|
||||
nsILocalFile **aFile)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aFile);
|
||||
*aFile = nsnull;
|
||||
NS_ENSURE_ARG(relPrefName);
|
||||
NS_ENSURE_ARG(absPrefName);
|
||||
gotRelPref = PR_FALSE;
|
||||
|
||||
nsCOMPtr<nsIPrefService> prefService(do_GetService(NS_PREFSERVICE_CONTRACTID));
|
||||
if (!prefService) return NS_ERROR_FAILURE;
|
||||
nsCOMPtr<nsIPrefBranch> mainBranch;
|
||||
prefService->GetBranch(nsnull, getter_AddRefs(mainBranch));
|
||||
if (!mainBranch) return NS_ERROR_FAILURE;
|
||||
|
||||
nsCOMPtr<nsILocalFile> localFile;
|
||||
|
||||
// Get the relative first
|
||||
nsCOMPtr<nsIRelativeFilePref> relFilePref;
|
||||
mainBranch->GetComplexValue(relPrefName,
|
||||
NS_GET_IID(nsIRelativeFilePref), getter_AddRefs(relFilePref));
|
||||
if (relFilePref) {
|
||||
relFilePref->GetFile(getter_AddRefs(localFile));
|
||||
NS_ASSERTION(localFile, "An nsIRelativeFilePref has no file.");
|
||||
if (localFile)
|
||||
gotRelPref = PR_TRUE;
|
||||
}
|
||||
|
||||
// If not, get the old absolute
|
||||
if (!localFile) {
|
||||
mainBranch->GetComplexValue(absPrefName,
|
||||
NS_GET_IID(nsILocalFile), getter_AddRefs(localFile));
|
||||
|
||||
// If not, and given a dirServiceProp, use directory service.
|
||||
if (!localFile && dirServiceProp) {
|
||||
nsCOMPtr<nsIProperties> dirService(do_GetService("@mozilla.org/file/directory_service;1"));
|
||||
if (!dirService) return NS_ERROR_FAILURE;
|
||||
dirService->Get(dirServiceProp, NS_GET_IID(nsILocalFile), getter_AddRefs(localFile));
|
||||
if (!localFile) return NS_ERROR_FAILURE;
|
||||
}
|
||||
}
|
||||
|
||||
if (localFile) {
|
||||
*aFile = localFile;
|
||||
NS_ADDREF(*aFile);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
NS_MSG_BASE nsresult NS_SetPersistentFile(const char *relPrefName,
|
||||
const char *absPrefName,
|
||||
nsILocalFile *aFile)
|
||||
{
|
||||
NS_ENSURE_ARG(relPrefName);
|
||||
NS_ENSURE_ARG(absPrefName);
|
||||
NS_ENSURE_ARG(aFile);
|
||||
|
||||
nsresult rv;
|
||||
nsCOMPtr<nsIPrefService> prefService(do_GetService(NS_PREFSERVICE_CONTRACTID));
|
||||
if (!prefService) return NS_ERROR_FAILURE;
|
||||
nsCOMPtr<nsIPrefBranch> mainBranch;
|
||||
prefService->GetBranch(nsnull, getter_AddRefs(mainBranch));
|
||||
if (!mainBranch) return NS_ERROR_FAILURE;
|
||||
|
||||
// Write the relative.
|
||||
nsCOMPtr<nsIRelativeFilePref> relFilePref;
|
||||
NS_NewRelativeFilePref(aFile, nsDependentCString(NS_APP_USER_PROFILE_50_DIR), getter_AddRefs(relFilePref));
|
||||
if (!relFilePref) return NS_ERROR_FAILURE;
|
||||
rv = mainBranch->SetComplexValue(relPrefName, NS_GET_IID(nsIRelativeFilePref), relFilePref);
|
||||
NS_ASSERTION(NS_SUCCEEDED(rv), "Failed to write profile-relative file pref.");
|
||||
|
||||
// Write the absolute for backwards compatibilty's sake.
|
||||
// Or, if aPath is on a different drive than the profile dir.
|
||||
rv = mainBranch->SetComplexValue(absPrefName, NS_GET_IID(nsILocalFile), aFile);
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
|
@ -46,6 +46,8 @@
|
||||
#include "msgCore.h"
|
||||
#include "nsCOMPtr.h"
|
||||
|
||||
class nsILocalFile;
|
||||
|
||||
//These are utility functions that can used throughout the mailnews code
|
||||
|
||||
NS_MSG_BASE nsresult GetMessageServiceContractIDForURI(const char *uri, nsCString &contractID);
|
||||
@ -83,6 +85,16 @@ NS_MSG_BASE nsresult GetExistingFolder(const char *aFolderURI, nsIMsgFolder **aF
|
||||
NS_MSG_BASE nsresult EscapeFromSpaceLine(nsIFileSpec *pDst, char *start, const char *end);
|
||||
NS_MSG_BASE PRBool IsAFromSpaceLine(char *start, const char *end);
|
||||
|
||||
NS_MSG_BASE nsresult NS_GetPersistentFile(const char *relPrefName,
|
||||
const char *absPrefName,
|
||||
const char *dirServiceProp, // Can be NULL
|
||||
PRBool& gotRelPref,
|
||||
nsILocalFile **aFile);
|
||||
|
||||
NS_MSG_BASE nsresult NS_SetPersistentFile(const char *relPrefName,
|
||||
const char *absPrefName,
|
||||
nsILocalFile *aFile);
|
||||
|
||||
NS_MSG_BASE nsresult CreateServicesForPasswordManager();
|
||||
|
||||
NS_MSG_BASE nsresult IsRFC822HeaderFieldName(const char *aHdr, PRBool *aResult);
|
||||
|
@ -101,7 +101,9 @@
|
||||
#include "nsIMsgMailSession.h"
|
||||
#include "nsIStreamConverterService.h"
|
||||
|
||||
#define PREF_MAIL_ROOT_IMAP "mail.root.imap"
|
||||
|
||||
#define PREF_MAIL_ROOT_IMAP "mail.root.imap" // old - for backward compatibility only
|
||||
#define PREF_MAIL_ROOT_IMAP_REL "mail.root.imap-rel"
|
||||
|
||||
static NS_DEFINE_CID(kEventQueueServiceCID, NS_EVENTQUEUESERVICE_CID);
|
||||
static NS_DEFINE_CID(kImapUrlCID, NS_IMAPURL_CID);
|
||||
@ -2943,11 +2945,16 @@ NS_IMETHODIMP nsImapService::NewChannel(nsIURI *aURI, nsIChannel **_retval)
|
||||
NS_IMETHODIMP
|
||||
nsImapService::SetDefaultLocalPath(nsIFileSpec *aPath)
|
||||
{
|
||||
nsresult rv;
|
||||
nsCOMPtr<nsIPrefBranch> prefBranch(do_GetService(NS_PREFSERVICE_CONTRACTID, &rv));
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
|
||||
return prefBranch->SetComplexValue(PREF_MAIL_ROOT_IMAP, NS_GET_IID(nsIFileSpec), aPath);
|
||||
NS_ENSURE_ARG(aPath);
|
||||
|
||||
nsFileSpec spec;
|
||||
nsresult rv = aPath->GetFileSpec(&spec);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
nsCOMPtr<nsILocalFile> localFile;
|
||||
NS_FileSpecToIFile(&spec, getter_AddRefs(localFile));
|
||||
if (!localFile) return NS_ERROR_FAILURE;
|
||||
|
||||
return NS_SetPersistentFile(PREF_MAIL_ROOT_IMAP_REL, PREF_MAIL_ROOT_IMAP, localFile);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
@ -2960,41 +2967,34 @@ nsImapService::GetDefaultLocalPath(nsIFileSpec ** aResult)
|
||||
nsCOMPtr<nsIPrefBranch> prefBranch(do_GetService(NS_PREFSERVICE_CONTRACTID, &rv));
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
|
||||
PRBool havePref = PR_FALSE;
|
||||
nsCOMPtr<nsILocalFile> prefLocal;
|
||||
nsCOMPtr<nsIFile> localFile;
|
||||
rv = prefBranch->GetComplexValue(PREF_MAIL_ROOT_IMAP, NS_GET_IID(nsILocalFile),
|
||||
getter_AddRefs(prefLocal));
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
localFile = prefLocal;
|
||||
havePref = PR_TRUE;
|
||||
}
|
||||
if (!localFile) {
|
||||
rv = NS_GetSpecialDirectory(NS_APP_IMAP_MAIL_50_DIR, getter_AddRefs(localFile));
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
havePref = PR_FALSE;
|
||||
}
|
||||
PRBool havePref;
|
||||
nsCOMPtr<nsILocalFile> localFile;
|
||||
rv = NS_GetPersistentFile(PREF_MAIL_ROOT_IMAP_REL,
|
||||
PREF_MAIL_ROOT_IMAP,
|
||||
NS_APP_IMAP_MAIL_50_DIR,
|
||||
havePref,
|
||||
getter_AddRefs(localFile));
|
||||
|
||||
PRBool exists;
|
||||
rv = localFile->Exists(&exists);
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
if (!exists) {
|
||||
if (NS_SUCCEEDED(rv) && !exists)
|
||||
rv = localFile->Create(nsIFile::DIRECTORY_TYPE, 0775);
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
}
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
// Make the resulting nsIFileSpec
|
||||
// TODO: Convert arg to nsILocalFile and avoid this
|
||||
nsCOMPtr<nsIFileSpec> outSpec;
|
||||
rv = NS_NewFileSpecFromIFile(localFile, getter_AddRefs(outSpec));
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
if (!havePref || !exists)
|
||||
rv = SetDefaultLocalPath(outSpec);
|
||||
if (!havePref || !exists)
|
||||
{
|
||||
rv = NS_SetPersistentFile(PREF_MAIL_ROOT_IMAP_REL, PREF_MAIL_ROOT_IMAP, localFile);
|
||||
NS_ASSERTION(NS_SUCCEEDED(rv), "Failed to set root dir pref.");
|
||||
}
|
||||
|
||||
*aResult = outSpec;
|
||||
NS_IF_ADDREF(*aResult);
|
||||
return rv;
|
||||
NS_IF_ADDREF(*aResult = outSpec);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
|
@ -71,7 +71,8 @@
|
||||
#include "nsCOMPtr.h"
|
||||
#include "nsMsgFolderFlags.h"
|
||||
|
||||
#define PREF_MAIL_ROOT_MOVEMAIL "mail.root.movemail"
|
||||
#define PREF_MAIL_ROOT_MOVEMAIL "mail.root.movemail" // old - for backward compatibility only
|
||||
#define PREF_MAIL_ROOT_MOVEMAIL_REL "mail.root.movemail-rel"
|
||||
|
||||
const char * gDefaultSpoolPaths[] = {
|
||||
"/var/spool/mail/",
|
||||
@ -512,11 +513,18 @@ freebuff_and_unlock:
|
||||
NS_IMETHODIMP
|
||||
nsMovemailService::SetDefaultLocalPath(nsIFileSpec *aPath)
|
||||
{
|
||||
NS_ENSURE_ARG(aPath);
|
||||
nsresult rv;
|
||||
nsCOMPtr<nsIPref> prefs(do_GetService(kPrefCID, &rv));
|
||||
|
||||
nsFileSpec spec;
|
||||
rv = aPath->GetFileSpec(&spec);
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
nsCOMPtr<nsILocalFile> localFile;
|
||||
NS_FileSpecToIFile(&spec, getter_AddRefs(localFile));
|
||||
if (!localFile) return NS_ERROR_FAILURE;
|
||||
|
||||
rv = NS_SetPersistentFile(PREF_MAIL_ROOT_MOVEMAIL_REL, PREF_MAIL_ROOT_MOVEMAIL, localFile);
|
||||
|
||||
rv = prefs->SetFilePref(PREF_MAIL_ROOT_MOVEMAIL, aPath, PR_FALSE /* set default */);
|
||||
return rv;
|
||||
}
|
||||
|
||||
@ -527,30 +535,20 @@ nsMovemailService::GetDefaultLocalPath(nsIFileSpec ** aResult)
|
||||
*aResult = nsnull;
|
||||
|
||||
nsresult rv;
|
||||
nsCOMPtr<nsIPref> prefs(do_GetService(kPrefCID, &rv));
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
|
||||
PRBool havePref = PR_FALSE;
|
||||
nsCOMPtr<nsILocalFile> prefLocal;
|
||||
nsCOMPtr<nsIFile> localFile;
|
||||
rv = prefs->GetFileXPref(PREF_MAIL_ROOT_MOVEMAIL, getter_AddRefs(prefLocal));
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
localFile = prefLocal;
|
||||
havePref = PR_TRUE;
|
||||
}
|
||||
if (!localFile) {
|
||||
rv = NS_GetSpecialDirectory(NS_APP_MAIL_50_DIR, getter_AddRefs(localFile));
|
||||
PRBool havePref;
|
||||
nsCOMPtr<nsILocalFile> localFile;
|
||||
rv = NS_GetPersistentFile(PREF_MAIL_ROOT_MOVEMAIL_REL,
|
||||
PREF_MAIL_ROOT_MOVEMAIL,
|
||||
NS_APP_MAIL_50_DIR,
|
||||
havePref,
|
||||
getter_AddRefs(localFile));
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
havePref = PR_FALSE;
|
||||
}
|
||||
|
||||
PRBool exists;
|
||||
rv = localFile->Exists(&exists);
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
if (!exists) {
|
||||
if (NS_SUCCEEDED(rv) && !exists)
|
||||
rv = localFile->Create(nsIFile::DIRECTORY_TYPE, 0775);
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
}
|
||||
|
||||
// Make the resulting nsIFileSpec
|
||||
// TODO: Convert arg to nsILocalFile and avoid this
|
||||
@ -558,12 +556,14 @@ nsMovemailService::GetDefaultLocalPath(nsIFileSpec ** aResult)
|
||||
rv = NS_NewFileSpecFromIFile(localFile, getter_AddRefs(outSpec));
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
|
||||
if (!havePref || !exists)
|
||||
rv = SetDefaultLocalPath(outSpec);
|
||||
if (!havePref || !exists) {
|
||||
rv = NS_SetPersistentFile(PREF_MAIL_ROOT_MOVEMAIL_REL, PREF_MAIL_ROOT_MOVEMAIL, localFile);
|
||||
NS_ASSERTION(NS_SUCCEEDED(rv), "Failed to set root dir pref.");
|
||||
}
|
||||
|
||||
*aResult = outSpec;
|
||||
NS_IF_ADDREF(*aResult);
|
||||
return rv;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
|
@ -51,11 +51,13 @@
|
||||
#include "nsXPIDLString.h"
|
||||
#include "nsCOMPtr.h"
|
||||
#include "nsIFileSpec.h"
|
||||
#include "nsMsgUtils.h"
|
||||
|
||||
#include "nsIDirectoryService.h"
|
||||
#include "nsAppDirectoryServiceDefs.h"
|
||||
|
||||
#define PREF_MAIL_ROOT_NONE "mail.root.none"
|
||||
#define PREF_MAIL_ROOT_NONE "mail.root.none" // old - for backward compatibility only
|
||||
#define PREF_MAIL_ROOT_NONE_REL "mail.root.none-rel"
|
||||
|
||||
static NS_DEFINE_CID(kPrefCID, NS_PREF_CID);
|
||||
|
||||
@ -71,11 +73,18 @@ NS_IMPL_ISUPPORTS2(nsNoneService, nsINoneService, nsIMsgProtocolInfo)
|
||||
NS_IMETHODIMP
|
||||
nsNoneService::SetDefaultLocalPath(nsIFileSpec *aPath)
|
||||
{
|
||||
NS_ENSURE_ARG(aPath);
|
||||
nsresult rv;
|
||||
nsCOMPtr<nsIPref> prefs(do_GetService(kPrefCID, &rv));
|
||||
|
||||
nsFileSpec spec;
|
||||
rv = aPath->GetFileSpec(&spec);
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
nsCOMPtr<nsILocalFile> localFile;
|
||||
NS_FileSpecToIFile(&spec, getter_AddRefs(localFile));
|
||||
if (!localFile) return NS_ERROR_FAILURE;
|
||||
|
||||
rv = NS_SetPersistentFile(PREF_MAIL_ROOT_NONE_REL, PREF_MAIL_ROOT_NONE, localFile);
|
||||
|
||||
rv = prefs->SetFilePref(PREF_MAIL_ROOT_NONE, aPath, PR_FALSE /* set default */);
|
||||
return rv;
|
||||
}
|
||||
|
||||
@ -86,30 +95,20 @@ nsNoneService::GetDefaultLocalPath(nsIFileSpec ** aResult)
|
||||
*aResult = nsnull;
|
||||
|
||||
nsresult rv;
|
||||
nsCOMPtr<nsIPref> prefs(do_GetService(kPrefCID, &rv));
|
||||
PRBool havePref;
|
||||
nsCOMPtr<nsILocalFile> localFile;
|
||||
rv = NS_GetPersistentFile(PREF_MAIL_ROOT_NONE_REL,
|
||||
PREF_MAIL_ROOT_NONE,
|
||||
NS_APP_MAIL_50_DIR,
|
||||
havePref,
|
||||
getter_AddRefs(localFile));
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
|
||||
PRBool havePref = PR_FALSE;
|
||||
nsCOMPtr<nsILocalFile> prefLocal;
|
||||
nsCOMPtr<nsIFile> localFile;
|
||||
rv = prefs->GetFileXPref(PREF_MAIL_ROOT_NONE, getter_AddRefs(prefLocal));
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
localFile = prefLocal;
|
||||
havePref = PR_TRUE;
|
||||
}
|
||||
if (!localFile) {
|
||||
rv = NS_GetSpecialDirectory(NS_APP_MAIL_50_DIR, getter_AddRefs(localFile));
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
havePref = PR_FALSE;
|
||||
}
|
||||
|
||||
PRBool exists;
|
||||
rv = localFile->Exists(&exists);
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
if (!exists) {
|
||||
if (NS_SUCCEEDED(rv) && !exists)
|
||||
rv = localFile->Create(nsIFile::DIRECTORY_TYPE, 0775);
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
}
|
||||
|
||||
// Make the resulting nsIFileSpec
|
||||
// TODO: Convert arg to nsILocalFile and avoid this
|
||||
@ -117,12 +116,18 @@ nsNoneService::GetDefaultLocalPath(nsIFileSpec ** aResult)
|
||||
rv = NS_NewFileSpecFromIFile(localFile, getter_AddRefs(outSpec));
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
|
||||
if (!havePref || !exists)
|
||||
rv = SetDefaultLocalPath(outSpec);
|
||||
if (!havePref || !exists) {
|
||||
rv = NS_SetPersistentFile(PREF_MAIL_ROOT_NONE_REL, PREF_MAIL_ROOT_NONE, localFile);
|
||||
NS_ASSERTION(NS_SUCCEEDED(rv), "Failed to set root dir pref.");
|
||||
}
|
||||
|
||||
*aResult = outSpec;
|
||||
NS_IF_ADDREF(*aResult);
|
||||
return rv;
|
||||
return NS_OK;
|
||||
|
||||
|
||||
NS_ENSURE_ARG_POINTER(aResult);
|
||||
*aResult = nsnull;
|
||||
}
|
||||
|
||||
|
||||
|
@ -61,11 +61,13 @@
|
||||
#include "nsAppDirectoryServiceDefs.h"
|
||||
#include "prprf.h"
|
||||
#include "nsEscape.h"
|
||||
#include "nsMsgUtils.h"
|
||||
|
||||
#define POP3_PORT 110 // The IANA port for Pop3
|
||||
#define SECURE_POP3_PORT 995 // The port for Pop3 over SSL
|
||||
|
||||
#define PREF_MAIL_ROOT_POP3 "mail.root.pop3"
|
||||
#define PREF_MAIL_ROOT_POP3 "mail.root.pop3" // old - for backward compatibility only
|
||||
#define PREF_MAIL_ROOT_POP3_REL "mail.root.pop3-rel"
|
||||
|
||||
static NS_DEFINE_CID(kPrefCID, NS_PREF_CID);
|
||||
static NS_DEFINE_CID(kPop3UrlCID, NS_POP3URL_CID);
|
||||
@ -395,11 +397,18 @@ NS_IMETHODIMP nsPop3Service::NewChannel(nsIURI *aURI, nsIChannel **_retval)
|
||||
NS_IMETHODIMP
|
||||
nsPop3Service::SetDefaultLocalPath(nsIFileSpec *aPath)
|
||||
{
|
||||
NS_ENSURE_ARG(aPath);
|
||||
nsresult rv;
|
||||
nsCOMPtr<nsIPref> prefs(do_GetService(kPrefCID, &rv));
|
||||
|
||||
nsFileSpec spec;
|
||||
rv = aPath->GetFileSpec(&spec);
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
nsCOMPtr<nsILocalFile> localFile;
|
||||
NS_FileSpecToIFile(&spec, getter_AddRefs(localFile));
|
||||
if (!localFile) return NS_ERROR_FAILURE;
|
||||
|
||||
rv = NS_SetPersistentFile(PREF_MAIL_ROOT_POP3_REL, PREF_MAIL_ROOT_POP3, localFile);
|
||||
|
||||
rv = prefs->SetFilePref(PREF_MAIL_ROOT_POP3, aPath, PR_FALSE /* set default */);
|
||||
return rv;
|
||||
}
|
||||
|
||||
@ -410,30 +419,20 @@ nsPop3Service::GetDefaultLocalPath(nsIFileSpec ** aResult)
|
||||
*aResult = nsnull;
|
||||
|
||||
nsresult rv;
|
||||
nsCOMPtr<nsIPref> prefs(do_GetService(kPrefCID, &rv));
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
|
||||
PRBool havePref = PR_FALSE;
|
||||
nsCOMPtr<nsILocalFile> prefLocal;
|
||||
nsCOMPtr<nsIFile> localFile;
|
||||
rv = prefs->GetFileXPref(PREF_MAIL_ROOT_POP3, getter_AddRefs(prefLocal));
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
localFile = prefLocal;
|
||||
havePref = PR_TRUE;
|
||||
}
|
||||
if (!localFile) {
|
||||
rv = NS_GetSpecialDirectory(NS_APP_MAIL_50_DIR, getter_AddRefs(localFile));
|
||||
PRBool havePref;
|
||||
nsCOMPtr<nsILocalFile> localFile;
|
||||
rv = NS_GetPersistentFile(PREF_MAIL_ROOT_POP3_REL,
|
||||
PREF_MAIL_ROOT_POP3,
|
||||
NS_APP_MAIL_50_DIR,
|
||||
havePref,
|
||||
getter_AddRefs(localFile));
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
havePref = PR_FALSE;
|
||||
}
|
||||
|
||||
PRBool exists;
|
||||
rv = localFile->Exists(&exists);
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
if (!exists) {
|
||||
if (NS_SUCCEEDED(rv) && !exists)
|
||||
rv = localFile->Create(nsIFile::DIRECTORY_TYPE, 0775);
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
}
|
||||
|
||||
// Make the resulting nsIFileSpec
|
||||
// TODO: Convert arg to nsILocalFile and avoid this
|
||||
@ -441,12 +440,14 @@ nsPop3Service::GetDefaultLocalPath(nsIFileSpec ** aResult)
|
||||
rv = NS_NewFileSpecFromIFile(localFile, getter_AddRefs(outSpec));
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
|
||||
if (!havePref || !exists)
|
||||
rv = SetDefaultLocalPath(outSpec);
|
||||
if (!havePref || !exists) {
|
||||
rv = NS_SetPersistentFile(PREF_MAIL_ROOT_POP3_REL, PREF_MAIL_ROOT_POP3, localFile);
|
||||
NS_ASSERTION(NS_SUCCEEDED(rv), "Failed to set root dir pref.");
|
||||
}
|
||||
|
||||
*aResult = outSpec;
|
||||
NS_IF_ADDREF(*aResult);
|
||||
return rv;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
|
@ -21,7 +21,7 @@
|
||||
*
|
||||
* Contributor(s):
|
||||
* Seth Spitzer <sspitzer@netscape.com>
|
||||
* David Bienvenu <bienvenu@netscape.com>
|
||||
* David Bienvenu <bienvenu@nventure.com>
|
||||
* Henrik Gemal <mozilla@gemal.dk>
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
@ -64,6 +64,7 @@
|
||||
#define VALID_VERSION 1
|
||||
#define NEW_NEWS_DIR_NAME "News"
|
||||
#define PREF_MAIL_NEWSRC_ROOT "mail.newsrc_root"
|
||||
#define PREF_MAIL_NEWSRC_ROOT_REL "mail.newsrc_root-rel"
|
||||
#define HOSTINFO_FILE_NAME "hostinfo.dat"
|
||||
|
||||
#define NEWS_DELIMITER '.'
|
||||
@ -231,15 +232,16 @@ nsNntpIncomingServer::GetLocalStoreType(char **type)
|
||||
NS_IMETHODIMP
|
||||
nsNntpIncomingServer::SetNewsrcRootPath(nsIFileSpec *aNewsrcRootPath)
|
||||
{
|
||||
nsresult rv;
|
||||
|
||||
nsCOMPtr<nsIPrefBranch> prefBranch(do_GetService(NS_PREFSERVICE_CONTRACTID, &rv));
|
||||
if (NS_SUCCEEDED(rv) && prefBranch) {
|
||||
return prefBranch->SetComplexValue(PREF_MAIL_NEWSRC_ROOT, NS_GET_IID(nsIFileSpec),
|
||||
aNewsrcRootPath);
|
||||
}
|
||||
NS_ENSURE_ARG(aNewsrcRootPath);
|
||||
nsFileSpec spec;
|
||||
|
||||
return NS_ERROR_FAILURE;
|
||||
nsresult rv = aNewsrcRootPath->GetFileSpec(&spec);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
nsCOMPtr<nsILocalFile> localFile;
|
||||
NS_FileSpecToIFile(&spec, getter_AddRefs(localFile));
|
||||
if (!localFile) return NS_ERROR_FAILURE;
|
||||
|
||||
return NS_SetPersistentFile(PREF_MAIL_NEWSRC_ROOT_REL, PREF_MAIL_NEWSRC_ROOT, localFile);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
@ -248,42 +250,35 @@ nsNntpIncomingServer::GetNewsrcRootPath(nsIFileSpec **aNewsrcRootPath)
|
||||
NS_ENSURE_ARG_POINTER(aNewsrcRootPath);
|
||||
*aNewsrcRootPath = nsnull;
|
||||
|
||||
nsresult rv;
|
||||
nsCOMPtr<nsIPrefBranch> prefBranch(do_GetService(NS_PREFSERVICE_CONTRACTID, &rv));
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
|
||||
PRBool havePref = PR_FALSE;
|
||||
nsCOMPtr<nsIFile> localFile;
|
||||
nsCOMPtr<nsILocalFile> prefLocal;
|
||||
rv = prefBranch->GetComplexValue(PREF_MAIL_NEWSRC_ROOT, NS_GET_IID(nsILocalFile),
|
||||
getter_AddRefs(prefLocal));
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
localFile = prefLocal;
|
||||
havePref = PR_TRUE;
|
||||
}
|
||||
if (!localFile) {
|
||||
rv = NS_GetSpecialDirectory(NS_APP_NEWS_50_DIR, getter_AddRefs(localFile));
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
havePref = PR_FALSE;
|
||||
}
|
||||
PRBool havePref;
|
||||
nsCOMPtr<nsILocalFile> localFile;
|
||||
nsresult rv = NS_GetPersistentFile(PREF_MAIL_NEWSRC_ROOT_REL,
|
||||
PREF_MAIL_NEWSRC_ROOT,
|
||||
NS_APP_NEWS_50_DIR,
|
||||
havePref,
|
||||
getter_AddRefs(localFile));
|
||||
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
PRBool exists;
|
||||
rv = localFile->Exists(&exists);
|
||||
if (NS_SUCCEEDED(rv) && !exists)
|
||||
rv = localFile->Create(nsIFile::DIRECTORY_TYPE, 0775);
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
// Make the resulting nsIFileSpec
|
||||
// TODO: Convert arg to nsILocalFile and avoid this
|
||||
nsCOMPtr<nsIFileSpec> outSpec;
|
||||
rv = NS_NewFileSpecFromIFile(localFile, getter_AddRefs(outSpec));
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
if (!havePref || !exists)
|
||||
rv = SetNewsrcRootPath(outSpec);
|
||||
if (!havePref || !exists)
|
||||
{
|
||||
rv = NS_SetPersistentFile(PREF_MAIL_NEWSRC_ROOT_REL, PREF_MAIL_NEWSRC_ROOT, localFile);
|
||||
NS_ASSERTION(NS_SUCCEEDED(rv), "Failed to set root dir pref.");
|
||||
}
|
||||
|
||||
*aNewsrcRootPath = outSpec;
|
||||
NS_IF_ADDREF(*aNewsrcRootPath);
|
||||
NS_IF_ADDREF(*aNewsrcRootPath = outSpec);
|
||||
return rv;
|
||||
}
|
||||
|
||||
|
@ -24,6 +24,7 @@
|
||||
* Scott MacGregor <mscott@netscape.com>
|
||||
* Pierre Phaneuf <pp@ludusdesign.com>
|
||||
* Håkan Waara <hwaara@chello.se>
|
||||
* David Bienvenu < bienvenu@nventure.com>
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
@ -82,6 +83,7 @@
|
||||
#include "nsNewsDownloader.h"
|
||||
#include "prprf.h"
|
||||
#include "nsICacheService.h"
|
||||
#include "nsMsgUtils.h"
|
||||
#include "nsEscape.h"
|
||||
#include "nsNetUtil.h"
|
||||
|
||||
@ -89,7 +91,8 @@
|
||||
#undef SetPort // XXX Windows!
|
||||
|
||||
#define PREF_NETWORK_HOSTS_NNTP_SERVER "network.hosts.nntp_server"
|
||||
#define PREF_MAIL_ROOT_NNTP "mail.root.nntp"
|
||||
#define PREF_MAIL_ROOT_NNTP "mail.root.nntp" // old - for backward compatibility only
|
||||
#define PREF_MAIL_ROOT_NNTP_REL "mail.root.nntp-rel"
|
||||
|
||||
static NS_DEFINE_CID(kMessengerMigratorCID, NS_MESSENGERMIGRATOR_CID);
|
||||
static NS_DEFINE_CID(kIOServiceCID, NS_IOSERVICE_CID);
|
||||
@ -960,7 +963,8 @@ nsNntpService::GetNntpServerByIdentity(nsIMsgIdentity *aSenderIdentity, nsIMsgIn
|
||||
rv = inServer->GetType(getter_Copies(serverType));
|
||||
if(serverType.Equals("nntp"))
|
||||
{
|
||||
*aNntpServer = inServer;
|
||||
*aNntpServer = inServer;
|
||||
|
||||
NS_IF_ADDREF(*aNntpServer);
|
||||
break;
|
||||
}
|
||||
@ -1463,11 +1467,16 @@ NS_IMETHODIMP nsNntpService::NewChannel(nsIURI *aURI, nsIChannel **_retval)
|
||||
NS_IMETHODIMP
|
||||
nsNntpService::SetDefaultLocalPath(nsIFileSpec *aPath)
|
||||
{
|
||||
nsresult rv;
|
||||
nsCOMPtr<nsIPrefBranch> prefBranch(do_GetService(NS_PREFSERVICE_CONTRACTID, &rv));
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
|
||||
return prefBranch->SetComplexValue(PREF_MAIL_ROOT_NNTP, NS_GET_IID(nsIFileSpec), aPath);
|
||||
NS_ENSURE_ARG(aPath);
|
||||
|
||||
nsFileSpec spec;
|
||||
nsresult rv = aPath->GetFileSpec(&spec);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
nsCOMPtr<nsILocalFile> localFile;
|
||||
NS_FileSpecToIFile(&spec, getter_AddRefs(localFile));
|
||||
if (!localFile) return NS_ERROR_FAILURE;
|
||||
|
||||
return NS_SetPersistentFile(PREF_MAIL_ROOT_NNTP_REL, PREF_MAIL_ROOT_NNTP, localFile);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
@ -1480,44 +1489,34 @@ nsNntpService::GetDefaultLocalPath(nsIFileSpec ** aResult)
|
||||
nsCOMPtr<nsIPrefBranch> prefBranch(do_GetService(NS_PREFSERVICE_CONTRACTID, &rv));
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
|
||||
PRBool havePref = PR_FALSE;
|
||||
nsCOMPtr<nsIFile> localFile;
|
||||
nsCOMPtr<nsILocalFile> prefLocal;
|
||||
rv = prefBranch->GetComplexValue(PREF_MAIL_ROOT_NNTP, NS_GET_IID(nsILocalFile),
|
||||
getter_AddRefs(prefLocal));
|
||||
if (NS_SUCCEEDED(rv))
|
||||
{
|
||||
localFile = prefLocal;
|
||||
havePref = PR_TRUE;
|
||||
}
|
||||
if (!localFile)
|
||||
{
|
||||
rv = NS_GetSpecialDirectory(NS_APP_NEWS_50_DIR, getter_AddRefs(localFile));
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
havePref = PR_FALSE;
|
||||
}
|
||||
PRBool havePref;
|
||||
nsCOMPtr<nsILocalFile> localFile;
|
||||
rv = NS_GetPersistentFile(PREF_MAIL_ROOT_NNTP_REL,
|
||||
PREF_MAIL_ROOT_NNTP,
|
||||
NS_APP_NEWS_50_DIR,
|
||||
havePref,
|
||||
getter_AddRefs(localFile));
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
|
||||
PRBool exists;
|
||||
rv = localFile->Exists(&exists);
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
if (!exists)
|
||||
{
|
||||
if (NS_SUCCEEDED(rv) && !exists)
|
||||
rv = localFile->Create(nsIFile::DIRECTORY_TYPE, 0775);
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
}
|
||||
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
// Make the resulting nsIFileSpec
|
||||
// TODO: Convert arg to nsILocalFile and avoid this
|
||||
nsCOMPtr<nsIFileSpec> outSpec;
|
||||
rv = NS_NewFileSpecFromIFile(localFile, getter_AddRefs(outSpec));
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
if (!havePref || !exists)
|
||||
rv = SetDefaultLocalPath(outSpec);
|
||||
{
|
||||
rv = NS_SetPersistentFile(PREF_MAIL_ROOT_NNTP_REL, PREF_MAIL_ROOT_NNTP, localFile);
|
||||
NS_ASSERTION(NS_SUCCEEDED(rv), "Failed to set root dir pref.");
|
||||
}
|
||||
|
||||
*aResult = outSpec;
|
||||
NS_IF_ADDREF(*aResult);
|
||||
return rv;
|
||||
NS_IF_ADDREF(*aResult = outSpec);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
|
Loading…
Reference in New Issue
Block a user