зеркало из https://github.com/mozilla/gecko-dev.git
Fix for bug 21089 r=dveditz
This commit is contained in:
Родитель
392200fb9d
Коммит
a271589189
|
@ -1461,121 +1461,174 @@ nsInstall::GetPatch(nsHashKey *aKey, nsFileSpec** fileName)
|
||||||
}
|
}
|
||||||
|
|
||||||
PRInt32
|
PRInt32
|
||||||
nsInstall::FileOpDirCreate(nsFileSpec& aTarget, PRInt32* aReturn)
|
nsInstall::FileOpDirCreate(nsInstallFolder& aTarget, PRInt32* aReturn)
|
||||||
{
|
{
|
||||||
nsInstallFileOpItem* ifop = new nsInstallFileOpItem(this, NS_FOP_DIR_CREATE, aTarget, aReturn);
|
nsFileSpec* localFS = new nsFileSpec(*aTarget.GetFileSpec());
|
||||||
|
if (localFS == nsnull)
|
||||||
|
{
|
||||||
|
*aReturn = SaveError(nsInstall::OUT_OF_MEMORY);
|
||||||
|
return NS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
nsInstallFileOpItem* ifop = new nsInstallFileOpItem(this, NS_FOP_DIR_CREATE, *localFS, aReturn);
|
||||||
|
if (ifop == nsnull)
|
||||||
|
{
|
||||||
|
delete localFS;
|
||||||
|
*aReturn = SaveError(nsInstall::OUT_OF_MEMORY);
|
||||||
|
return NS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
PRInt32 result = SanityCheck();
|
PRInt32 result = SanityCheck();
|
||||||
if (result != nsInstall::SUCCESS)
|
if (result != nsInstall::SUCCESS)
|
||||||
{
|
{
|
||||||
|
delete localFS;
|
||||||
|
delete ifop;
|
||||||
*aReturn = SaveError( result );
|
*aReturn = SaveError( result );
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ifop == nsnull)
|
|
||||||
{
|
|
||||||
*aReturn = SaveError(nsInstall::OUT_OF_MEMORY);
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (*aReturn == nsInstall::SUCCESS)
|
if (*aReturn == nsInstall::SUCCESS)
|
||||||
{
|
{
|
||||||
*aReturn = ScheduleForInstall( ifop );
|
*aReturn = ScheduleForInstall( ifop );
|
||||||
}
|
}
|
||||||
|
delete localFS;
|
||||||
|
|
||||||
SaveError(*aReturn);
|
SaveError(*aReturn);
|
||||||
|
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
PRInt32
|
PRInt32
|
||||||
nsInstall::FileOpDirGetParent(nsFileSpec& aTarget, nsFileSpec* aReturn)
|
nsInstall::FileOpDirGetParent(nsInstallFolder& aTarget, nsFileSpec* aReturn)
|
||||||
{
|
{
|
||||||
// nsInstallFileOpItem ifop(this, aTarget, aReturn);
|
nsFileSpec* localFS = aTarget.GetFileSpec();
|
||||||
|
|
||||||
aTarget.GetParent(*aReturn);
|
localFS->GetParent(*aReturn);
|
||||||
|
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
PRInt32
|
PRInt32
|
||||||
nsInstall::FileOpDirRemove(nsFileSpec& aTarget, PRInt32 aFlags, PRInt32* aReturn)
|
nsInstall::FileOpDirRemove(nsInstallFolder& aTarget, PRInt32 aFlags, PRInt32* aReturn)
|
||||||
{
|
{
|
||||||
nsInstallFileOpItem* ifop = new nsInstallFileOpItem(this, NS_FOP_DIR_REMOVE, aTarget, aFlags, aReturn);
|
nsFileSpec* localFS = new nsFileSpec(*aTarget.GetFileSpec());
|
||||||
|
if (localFS == nsnull)
|
||||||
|
{
|
||||||
|
*aReturn = SaveError(nsInstall::OUT_OF_MEMORY);
|
||||||
|
return NS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
nsInstallFileOpItem* ifop = new nsInstallFileOpItem(this, NS_FOP_DIR_REMOVE, *localFS, aFlags, aReturn);
|
||||||
|
if (ifop == nsnull)
|
||||||
|
{
|
||||||
|
delete localFS;
|
||||||
|
*aReturn = SaveError(nsInstall::OUT_OF_MEMORY);
|
||||||
|
return NS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
PRInt32 result = SanityCheck();
|
PRInt32 result = SanityCheck();
|
||||||
if (result != nsInstall::SUCCESS)
|
if (result != nsInstall::SUCCESS)
|
||||||
{
|
{
|
||||||
|
delete localFS;
|
||||||
|
delete ifop;
|
||||||
*aReturn = SaveError( result );
|
*aReturn = SaveError( result );
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ifop == nsnull)
|
|
||||||
{
|
|
||||||
*aReturn = SaveError(nsInstall::OUT_OF_MEMORY);
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (*aReturn == nsInstall::SUCCESS)
|
if (*aReturn == nsInstall::SUCCESS)
|
||||||
{
|
{
|
||||||
*aReturn = ScheduleForInstall( ifop );
|
*aReturn = ScheduleForInstall( ifop );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
delete localFS;
|
||||||
|
|
||||||
SaveError(*aReturn);
|
SaveError(*aReturn);
|
||||||
|
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
PRInt32
|
PRInt32
|
||||||
nsInstall::FileOpDirRename(nsFileSpec& aSrc, nsString& aTarget, PRInt32* aReturn)
|
nsInstall::FileOpDirRename(nsInstallFolder& aSrc, nsString& aTarget, PRInt32* aReturn)
|
||||||
{
|
{
|
||||||
nsInstallFileOpItem* ifop = new nsInstallFileOpItem(this, NS_FOP_DIR_RENAME, aSrc, aTarget, aReturn);
|
nsFileSpec* localFS = new nsFileSpec(*aSrc.GetFileSpec());
|
||||||
|
if (localFS == nsnull)
|
||||||
|
{
|
||||||
|
*aReturn = SaveError(nsInstall::OUT_OF_MEMORY);
|
||||||
|
return NS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
nsInstallFileOpItem* ifop = new nsInstallFileOpItem(this, NS_FOP_DIR_RENAME, *localFS, aTarget, aReturn);
|
||||||
|
if (ifop == nsnull)
|
||||||
|
{
|
||||||
|
delete localFS;
|
||||||
|
*aReturn = SaveError(nsInstall::OUT_OF_MEMORY);
|
||||||
|
return NS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
PRInt32 result = SanityCheck();
|
PRInt32 result = SanityCheck();
|
||||||
if (result != nsInstall::SUCCESS)
|
if (result != nsInstall::SUCCESS)
|
||||||
{
|
{
|
||||||
|
delete localFS;
|
||||||
|
delete ifop;
|
||||||
*aReturn = SaveError( result );
|
*aReturn = SaveError( result );
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ifop == nsnull)
|
|
||||||
{
|
|
||||||
*aReturn = SaveError(nsInstall::OUT_OF_MEMORY);
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (*aReturn == nsInstall::SUCCESS)
|
if (*aReturn == nsInstall::SUCCESS)
|
||||||
{
|
{
|
||||||
*aReturn = ScheduleForInstall( ifop );
|
*aReturn = ScheduleForInstall( ifop );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
delete localFS;
|
||||||
|
|
||||||
SaveError(*aReturn);
|
SaveError(*aReturn);
|
||||||
|
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
PRInt32
|
PRInt32
|
||||||
nsInstall::FileOpFileCopy(nsFileSpec& aSrc, nsFileSpec& aTarget, PRInt32* aReturn)
|
nsInstall::FileOpFileCopy(nsInstallFolder& aSrc, nsInstallFolder& aTarget, PRInt32* aReturn)
|
||||||
{
|
{
|
||||||
nsInstallFileOpItem* ifop = new nsInstallFileOpItem(this, NS_FOP_FILE_COPY, aSrc, aTarget, aReturn);
|
nsFileSpec* localSrcFS = new nsFileSpec(*aSrc.GetFileSpec());
|
||||||
|
if (localSrcFS == nsnull)
|
||||||
|
{
|
||||||
|
*aReturn = SaveError(nsInstall::OUT_OF_MEMORY);
|
||||||
|
return NS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
nsFileSpec* localTargetFS = new nsFileSpec(*aTarget.GetFileSpec());
|
||||||
|
if (localTargetFS == nsnull)
|
||||||
|
{
|
||||||
|
*aReturn = SaveError(nsInstall::OUT_OF_MEMORY);
|
||||||
|
return NS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
nsInstallFileOpItem* ifop = new nsInstallFileOpItem(this, NS_FOP_FILE_COPY, *localSrcFS, *localTargetFS, aReturn);
|
||||||
|
if (ifop == nsnull)
|
||||||
|
{
|
||||||
|
delete localSrcFS;
|
||||||
|
delete localTargetFS;
|
||||||
|
*aReturn = SaveError(nsInstall::OUT_OF_MEMORY);
|
||||||
|
return NS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
PRInt32 result = SanityCheck();
|
PRInt32 result = SanityCheck();
|
||||||
if (result != nsInstall::SUCCESS)
|
if (result != nsInstall::SUCCESS)
|
||||||
{
|
{
|
||||||
|
delete localSrcFS;
|
||||||
|
delete localTargetFS;
|
||||||
|
delete ifop;
|
||||||
*aReturn = SaveError( result );
|
*aReturn = SaveError( result );
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ifop == nsnull)
|
|
||||||
{
|
|
||||||
*aReturn = SaveError(nsInstall::OUT_OF_MEMORY);
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (*aReturn == nsInstall::SUCCESS)
|
if (*aReturn == nsInstall::SUCCESS)
|
||||||
{
|
{
|
||||||
*aReturn = ScheduleForInstall( ifop );
|
*aReturn = ScheduleForInstall( ifop );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
delete localSrcFS;
|
||||||
|
delete localTargetFS;
|
||||||
|
|
||||||
SaveError(*aReturn);
|
SaveError(*aReturn);
|
||||||
|
|
||||||
|
@ -1583,167 +1636,234 @@ nsInstall::FileOpFileCopy(nsFileSpec& aSrc, nsFileSpec& aTarget, PRInt32* aRetur
|
||||||
}
|
}
|
||||||
|
|
||||||
PRInt32
|
PRInt32
|
||||||
nsInstall::FileOpFileDelete(nsFileSpec& aTarget, PRInt32 aFlags, PRInt32* aReturn)
|
nsInstall::FileOpFileDelete(nsInstallFolder& aTarget, PRInt32 aFlags, PRInt32* aReturn)
|
||||||
{
|
{
|
||||||
nsInstallFileOpItem* ifop = new nsInstallFileOpItem(this, NS_FOP_FILE_DELETE, aTarget, aFlags, aReturn);
|
nsFileSpec* localFS = new nsFileSpec(*aTarget.GetFileSpec());
|
||||||
|
if (localFS == nsnull)
|
||||||
|
{
|
||||||
|
*aReturn = SaveError(nsInstall::OUT_OF_MEMORY);
|
||||||
|
return NS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
nsInstallFileOpItem* ifop = new nsInstallFileOpItem(this, NS_FOP_FILE_DELETE, *localFS, aFlags, aReturn);
|
||||||
|
if (ifop == nsnull)
|
||||||
|
{
|
||||||
|
delete localFS;
|
||||||
|
*aReturn = SaveError(nsInstall::OUT_OF_MEMORY);
|
||||||
|
return NS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
PRInt32 result = SanityCheck();
|
PRInt32 result = SanityCheck();
|
||||||
if (result != nsInstall::SUCCESS)
|
if (result != nsInstall::SUCCESS)
|
||||||
{
|
{
|
||||||
|
delete localFS;
|
||||||
|
delete ifop;
|
||||||
*aReturn = SaveError( result );
|
*aReturn = SaveError( result );
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ifop == nsnull)
|
|
||||||
{
|
|
||||||
*aReturn = SaveError(nsInstall::OUT_OF_MEMORY);
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (*aReturn == nsInstall::SUCCESS)
|
if (*aReturn == nsInstall::SUCCESS)
|
||||||
{
|
{
|
||||||
*aReturn = ScheduleForInstall( ifop );
|
*aReturn = ScheduleForInstall( ifop );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
delete localFS;
|
||||||
|
|
||||||
SaveError(*aReturn);
|
SaveError(*aReturn);
|
||||||
|
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
PRInt32
|
PRInt32
|
||||||
nsInstall::FileOpFileExecute(nsFileSpec& aTarget, nsString& aParams, PRInt32* aReturn)
|
nsInstall::FileOpFileExecute(nsInstallFolder& aTarget, nsString& aParams, PRInt32* aReturn)
|
||||||
{
|
{
|
||||||
nsInstallFileOpItem* ifop = new nsInstallFileOpItem(this, NS_FOP_FILE_EXECUTE, aTarget, aParams, aReturn);
|
nsFileSpec* localFS = new nsFileSpec(*aTarget.GetFileSpec());
|
||||||
|
if (localFS == nsnull)
|
||||||
|
{
|
||||||
|
*aReturn = SaveError(nsInstall::OUT_OF_MEMORY);
|
||||||
|
return NS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
nsInstallFileOpItem* ifop = new nsInstallFileOpItem(this, NS_FOP_FILE_EXECUTE, *localFS, aParams, aReturn);
|
||||||
|
if (ifop == nsnull)
|
||||||
|
{
|
||||||
|
delete localFS;
|
||||||
|
*aReturn = SaveError(nsInstall::OUT_OF_MEMORY);
|
||||||
|
return NS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
PRInt32 result = SanityCheck();
|
PRInt32 result = SanityCheck();
|
||||||
if (result != nsInstall::SUCCESS)
|
if (result != nsInstall::SUCCESS)
|
||||||
{
|
{
|
||||||
|
delete localFS;
|
||||||
|
delete ifop;
|
||||||
*aReturn = SaveError( result );
|
*aReturn = SaveError( result );
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ifop == nsnull)
|
|
||||||
{
|
|
||||||
*aReturn = SaveError(nsInstall::OUT_OF_MEMORY);
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (*aReturn == nsInstall::SUCCESS)
|
if (*aReturn == nsInstall::SUCCESS)
|
||||||
{
|
{
|
||||||
*aReturn = ScheduleForInstall( ifop );
|
*aReturn = ScheduleForInstall( ifop );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
delete localFS;
|
||||||
|
|
||||||
SaveError(*aReturn);
|
SaveError(*aReturn);
|
||||||
|
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
PRInt32
|
PRInt32
|
||||||
nsInstall::FileOpFileExists(nsFileSpec& aTarget, PRBool* aReturn)
|
nsInstall::FileOpFileExists(nsInstallFolder& aTarget, PRBool* aReturn)
|
||||||
{
|
{
|
||||||
*aReturn = aTarget.Exists();
|
nsFileSpec* localFS = aTarget.GetFileSpec();
|
||||||
|
|
||||||
|
*aReturn = localFS->Exists();
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
PRInt32
|
PRInt32
|
||||||
nsInstall::FileOpFileGetNativeVersion(nsFileSpec& aTarget, nsString* aReturn)
|
nsInstall::FileOpFileGetNativeVersion(nsInstallFolder& aTarget, nsString* aReturn)
|
||||||
{
|
{
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
PRInt32
|
PRInt32
|
||||||
nsInstall::FileOpFileGetDiskSpaceAvailable(nsFileSpec& aTarget, PRInt64* aReturn)
|
nsInstall::FileOpFileGetDiskSpaceAvailable(nsInstallFolder& aTarget, PRInt64* aReturn)
|
||||||
{
|
{
|
||||||
*aReturn = aTarget.GetDiskSpaceAvailable();
|
nsFileSpec* localFS = aTarget.GetFileSpec();
|
||||||
|
|
||||||
|
*aReturn = localFS->GetDiskSpaceAvailable();
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
PRInt32
|
PRInt32
|
||||||
nsInstall::FileOpFileGetModDate(nsFileSpec& aTarget, nsFileSpec::TimeStamp* aReturn)
|
nsInstall::FileOpFileGetModDate(nsInstallFolder& aTarget, nsFileSpec::TimeStamp* aReturn)
|
||||||
{
|
{
|
||||||
aTarget.GetModDate(*aReturn);
|
nsFileSpec* localFS = aTarget.GetFileSpec();
|
||||||
|
|
||||||
|
localFS->GetModDate(*aReturn);
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
PRInt32
|
PRInt32
|
||||||
nsInstall::FileOpFileGetSize(nsFileSpec& aTarget, PRUint32* aReturn)
|
nsInstall::FileOpFileGetSize(nsInstallFolder& aTarget, PRUint32* aReturn)
|
||||||
{
|
{
|
||||||
*aReturn = aTarget.GetFileSize();
|
nsFileSpec* localFS = aTarget.GetFileSpec();
|
||||||
|
|
||||||
|
*aReturn = localFS->GetFileSize();
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
PRInt32
|
PRInt32
|
||||||
nsInstall::FileOpFileIsDirectory(nsFileSpec& aTarget, PRBool* aReturn)
|
nsInstall::FileOpFileIsDirectory(nsInstallFolder& aTarget, PRBool* aReturn)
|
||||||
{
|
{
|
||||||
*aReturn = aTarget.IsDirectory();
|
nsFileSpec* localFS = aTarget.GetFileSpec();
|
||||||
|
|
||||||
|
*aReturn = localFS->IsDirectory();
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
PRInt32
|
PRInt32
|
||||||
nsInstall::FileOpFileIsFile(nsFileSpec& aTarget, PRBool* aReturn)
|
nsInstall::FileOpFileIsFile(nsInstallFolder& aTarget, PRBool* aReturn)
|
||||||
{
|
{
|
||||||
*aReturn = aTarget.IsFile();
|
nsFileSpec* localFS = aTarget.GetFileSpec();
|
||||||
|
|
||||||
|
*aReturn = localFS->IsFile();
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
PRInt32
|
PRInt32
|
||||||
nsInstall::FileOpFileModDateChanged(nsFileSpec& aTarget, nsFileSpec::TimeStamp& aOldStamp, PRBool* aReturn)
|
nsInstall::FileOpFileModDateChanged(nsInstallFolder& aTarget, nsFileSpec::TimeStamp& aOldStamp, PRBool* aReturn)
|
||||||
{
|
{
|
||||||
*aReturn = aTarget.ModDateChanged(aOldStamp);
|
nsFileSpec* localFS = aTarget.GetFileSpec();
|
||||||
|
|
||||||
|
*aReturn = localFS->ModDateChanged(aOldStamp);
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
PRInt32
|
PRInt32
|
||||||
nsInstall::FileOpFileMove(nsFileSpec& aSrc, nsFileSpec& aTarget, PRInt32* aReturn)
|
nsInstall::FileOpFileMove(nsInstallFolder& aSrc, nsInstallFolder& aTarget, PRInt32* aReturn)
|
||||||
{
|
{
|
||||||
nsInstallFileOpItem* ifop = new nsInstallFileOpItem(this, NS_FOP_FILE_MOVE, aSrc, aTarget, aReturn);
|
nsFileSpec* localSrcFS = new nsFileSpec(*aSrc.GetFileSpec());
|
||||||
|
if (localSrcFS == nsnull)
|
||||||
|
{
|
||||||
|
*aReturn = SaveError(nsInstall::OUT_OF_MEMORY);
|
||||||
|
return NS_OK;
|
||||||
|
}
|
||||||
|
nsFileSpec* localTargetFS = new nsFileSpec(*aTarget.GetFileSpec());
|
||||||
|
if (localTargetFS == nsnull)
|
||||||
|
{
|
||||||
|
*aReturn = SaveError(nsInstall::OUT_OF_MEMORY);
|
||||||
|
return NS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
nsInstallFileOpItem* ifop = new nsInstallFileOpItem(this, NS_FOP_FILE_MOVE, *localSrcFS, *localTargetFS, aReturn);
|
||||||
|
if (ifop == nsnull)
|
||||||
|
{
|
||||||
|
delete localSrcFS;
|
||||||
|
delete localTargetFS;
|
||||||
|
*aReturn = SaveError(nsInstall::OUT_OF_MEMORY);
|
||||||
|
return NS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
PRInt32 result = SanityCheck();
|
PRInt32 result = SanityCheck();
|
||||||
if (result != nsInstall::SUCCESS)
|
if (result != nsInstall::SUCCESS)
|
||||||
{
|
{
|
||||||
|
delete localSrcFS;
|
||||||
|
delete localTargetFS;
|
||||||
|
delete ifop;
|
||||||
*aReturn = SaveError( result );
|
*aReturn = SaveError( result );
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ifop == nsnull)
|
|
||||||
{
|
|
||||||
*aReturn = SaveError(nsInstall::OUT_OF_MEMORY);
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (*aReturn == nsInstall::SUCCESS)
|
if (*aReturn == nsInstall::SUCCESS)
|
||||||
{
|
{
|
||||||
*aReturn = ScheduleForInstall( ifop );
|
*aReturn = ScheduleForInstall( ifop );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
delete localSrcFS;
|
||||||
|
delete localTargetFS;
|
||||||
|
|
||||||
SaveError(*aReturn);
|
SaveError(*aReturn);
|
||||||
|
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
PRInt32
|
PRInt32
|
||||||
nsInstall::FileOpFileRename(nsFileSpec& aSrc, nsString& aTarget, PRInt32* aReturn)
|
nsInstall::FileOpFileRename(nsInstallFolder& aSrc, nsString& aTarget, PRInt32* aReturn)
|
||||||
{
|
{
|
||||||
nsInstallFileOpItem* ifop = new nsInstallFileOpItem(this, NS_FOP_FILE_RENAME, aSrc, aTarget, aReturn);
|
nsFileSpec* localFS = new nsFileSpec(*aSrc.GetFileSpec());
|
||||||
|
if (localFS == nsnull)
|
||||||
|
{
|
||||||
|
*aReturn = SaveError(nsInstall::OUT_OF_MEMORY);
|
||||||
|
return NS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
nsInstallFileOpItem* ifop = new nsInstallFileOpItem(this, NS_FOP_FILE_RENAME,*localFS, aTarget, aReturn);
|
||||||
|
if (ifop == nsnull)
|
||||||
|
{
|
||||||
|
delete localFS;
|
||||||
|
*aReturn = SaveError(nsInstall::OUT_OF_MEMORY);
|
||||||
|
return NS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
PRInt32 result = SanityCheck();
|
PRInt32 result = SanityCheck();
|
||||||
if (result != nsInstall::SUCCESS)
|
if (result != nsInstall::SUCCESS)
|
||||||
{
|
{
|
||||||
|
delete localFS;
|
||||||
|
delete ifop;
|
||||||
*aReturn = SaveError( result );
|
*aReturn = SaveError( result );
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ifop == nsnull)
|
|
||||||
{
|
|
||||||
*aReturn = SaveError(nsInstall::OUT_OF_MEMORY);
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (*aReturn == nsInstall::SUCCESS)
|
if (*aReturn == nsInstall::SUCCESS)
|
||||||
{
|
{
|
||||||
*aReturn = ScheduleForInstall( ifop );
|
*aReturn = ScheduleForInstall( ifop );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
delete localFS;
|
||||||
|
|
||||||
SaveError(*aReturn);
|
SaveError(*aReturn);
|
||||||
|
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
|
@ -1752,21 +1872,22 @@ nsInstall::FileOpFileRename(nsFileSpec& aSrc, nsString& aTarget, PRInt32* aRetur
|
||||||
PRInt32
|
PRInt32
|
||||||
nsInstall::FileOpFileWindowsShortcut(nsFileSpec& aTarget, nsFileSpec& aShortcutPath, nsString& aDescription, nsFileSpec& aWorkingPath, nsString& aParams, nsFileSpec& aIcon, PRInt32 aIconId, PRInt32* aReturn)
|
nsInstall::FileOpFileWindowsShortcut(nsFileSpec& aTarget, nsFileSpec& aShortcutPath, nsString& aDescription, nsFileSpec& aWorkingPath, nsString& aParams, nsFileSpec& aIcon, PRInt32 aIconId, PRInt32* aReturn)
|
||||||
{
|
{
|
||||||
|
|
||||||
nsInstallFileOpItem* ifop = new nsInstallFileOpItem(this, NS_FOP_WIN_SHORTCUT, aTarget, aShortcutPath, aDescription, aWorkingPath, aParams, aIcon, aIconId, aReturn);
|
nsInstallFileOpItem* ifop = new nsInstallFileOpItem(this, NS_FOP_WIN_SHORTCUT, aTarget, aShortcutPath, aDescription, aWorkingPath, aParams, aIcon, aIconId, aReturn);
|
||||||
|
if (ifop == nsnull)
|
||||||
|
{
|
||||||
|
*aReturn = SaveError(nsInstall::OUT_OF_MEMORY);
|
||||||
|
return NS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
PRInt32 result = SanityCheck();
|
PRInt32 result = SanityCheck();
|
||||||
if (result != nsInstall::SUCCESS)
|
if (result != nsInstall::SUCCESS)
|
||||||
{
|
{
|
||||||
|
delete ifop;
|
||||||
*aReturn = SaveError( result );
|
*aReturn = SaveError( result );
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ifop == nsnull)
|
|
||||||
{
|
|
||||||
*aReturn = SaveError(nsInstall::OUT_OF_MEMORY);
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (*aReturn == nsInstall::SUCCESS)
|
if (*aReturn == nsInstall::SUCCESS)
|
||||||
{
|
{
|
||||||
*aReturn = ScheduleForInstall( ifop );
|
*aReturn = ScheduleForInstall( ifop );
|
||||||
|
@ -1780,6 +1901,7 @@ nsInstall::FileOpFileWindowsShortcut(nsFileSpec& aTarget, nsFileSpec& aShortcutP
|
||||||
PRInt32
|
PRInt32
|
||||||
nsInstall::FileOpFileMacAlias(nsString& aSourcePath, nsString& aAliasPath, PRInt32* aReturn)
|
nsInstall::FileOpFileMacAlias(nsString& aSourcePath, nsString& aAliasPath, PRInt32* aReturn)
|
||||||
{
|
{
|
||||||
|
|
||||||
*aReturn = nsInstall::SUCCESS;
|
*aReturn = nsInstall::SUCCESS;
|
||||||
|
|
||||||
#ifdef XP_MAC
|
#ifdef XP_MAC
|
||||||
|
@ -1813,7 +1935,7 @@ nsInstall::FileOpFileMacAlias(nsString& aSourcePath, nsString& aAliasPath, PRInt
|
||||||
}
|
}
|
||||||
|
|
||||||
PRInt32
|
PRInt32
|
||||||
nsInstall::FileOpFileUnixLink(nsFileSpec& aTarget, PRInt32 aFlags, PRInt32* aReturn)
|
nsInstall::FileOpFileUnixLink(nsInstallFolder& aTarget, PRInt32 aFlags, PRInt32* aReturn)
|
||||||
{
|
{
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
|
@ -221,26 +221,26 @@ class nsInstall
|
||||||
PRInt32 StartInstall(const nsString& aUserPackageName, const nsString& aPackageName, const nsString& aVersion, PRInt32* aReturn);
|
PRInt32 StartInstall(const nsString& aUserPackageName, const nsString& aPackageName, const nsString& aVersion, PRInt32* aReturn);
|
||||||
PRInt32 Uninstall(const nsString& aPackageName, PRInt32* aReturn);
|
PRInt32 Uninstall(const nsString& aPackageName, PRInt32* aReturn);
|
||||||
|
|
||||||
PRInt32 FileOpDirCreate(nsFileSpec& aTarget, PRInt32* aReturn);
|
PRInt32 FileOpDirCreate(nsInstallFolder& aTarget, PRInt32* aReturn);
|
||||||
PRInt32 FileOpDirGetParent(nsFileSpec& aTarget, nsFileSpec* aReturn);
|
PRInt32 FileOpDirGetParent(nsInstallFolder& aTarget, nsFileSpec* aReturn);
|
||||||
PRInt32 FileOpDirRemove(nsFileSpec& aTarget, PRInt32 aFlags, PRInt32* aReturn);
|
PRInt32 FileOpDirRemove(nsInstallFolder& aTarget, PRInt32 aFlags, PRInt32* aReturn);
|
||||||
PRInt32 FileOpDirRename(nsFileSpec& aSrc, nsString& aTarget, PRInt32* aReturn);
|
PRInt32 FileOpDirRename(nsInstallFolder& aSrc, nsString& aTarget, PRInt32* aReturn);
|
||||||
PRInt32 FileOpFileCopy(nsFileSpec& aSrc, nsFileSpec& aTarget, PRInt32* aReturn);
|
PRInt32 FileOpFileCopy(nsInstallFolder& aSrc, nsInstallFolder& aTarget, PRInt32* aReturn);
|
||||||
PRInt32 FileOpFileDelete(nsFileSpec& aTarget, PRInt32 aFlags, PRInt32* aReturn);
|
PRInt32 FileOpFileDelete(nsInstallFolder& aTarget, PRInt32 aFlags, PRInt32* aReturn);
|
||||||
PRInt32 FileOpFileExists(nsFileSpec& aTarget, PRBool* aReturn);
|
PRInt32 FileOpFileExists(nsInstallFolder& aTarget, PRBool* aReturn);
|
||||||
PRInt32 FileOpFileExecute(nsFileSpec& aTarget, nsString& aParams, PRInt32* aReturn);
|
PRInt32 FileOpFileExecute(nsInstallFolder& aTarget, nsString& aParams, PRInt32* aReturn);
|
||||||
PRInt32 FileOpFileGetNativeVersion(nsFileSpec& aTarget, nsString* aReturn);
|
PRInt32 FileOpFileGetNativeVersion(nsInstallFolder& aTarget, nsString* aReturn);
|
||||||
PRInt32 FileOpFileGetDiskSpaceAvailable(nsFileSpec& aTarget, PRInt64* aReturn);
|
PRInt32 FileOpFileGetDiskSpaceAvailable(nsInstallFolder& aTarget, PRInt64* aReturn);
|
||||||
PRInt32 FileOpFileGetModDate(nsFileSpec& aTarget, nsFileSpec::TimeStamp* aReturn);
|
PRInt32 FileOpFileGetModDate(nsInstallFolder& aTarget, nsFileSpec::TimeStamp* aReturn);
|
||||||
PRInt32 FileOpFileGetSize(nsFileSpec& aTarget, PRUint32* aReturn);
|
PRInt32 FileOpFileGetSize(nsInstallFolder& aTarget, PRUint32* aReturn);
|
||||||
PRInt32 FileOpFileIsDirectory(nsFileSpec& aTarget, PRBool* aReturn);
|
PRInt32 FileOpFileIsDirectory(nsInstallFolder& aTarget, PRBool* aReturn);
|
||||||
PRInt32 FileOpFileIsFile(nsFileSpec& aTarget, PRBool* aReturn);
|
PRInt32 FileOpFileIsFile(nsInstallFolder& aTarget, PRBool* aReturn);
|
||||||
PRInt32 FileOpFileModDateChanged(nsFileSpec& aTarget, nsFileSpec::TimeStamp& aOldStamp, PRBool* aReturn);
|
PRInt32 FileOpFileModDateChanged(nsInstallFolder& aTarget, nsFileSpec::TimeStamp& aOldStamp, PRBool* aReturn);
|
||||||
PRInt32 FileOpFileMove(nsFileSpec& aSrc, nsFileSpec& aTarget, PRInt32* aReturn);
|
PRInt32 FileOpFileMove(nsInstallFolder& aSrc, nsInstallFolder& aTarget, PRInt32* aReturn);
|
||||||
PRInt32 FileOpFileRename(nsFileSpec& aSrc, nsString& aTarget, PRInt32* aReturn);
|
PRInt32 FileOpFileRename(nsInstallFolder& aSrc, nsString& aTarget, PRInt32* aReturn);
|
||||||
PRInt32 FileOpFileWindowsShortcut(nsFileSpec& aTarget, nsFileSpec& aShortcutPath, nsString& aDescription, nsFileSpec& aWorkingPath, nsString& aParams, nsFileSpec& aIcon, PRInt32 aIconId, PRInt32* aReturn);
|
PRInt32 FileOpFileWindowsShortcut(nsFileSpec& aTarget, nsFileSpec& aShortcutPath, nsString& aDescription, nsFileSpec& aWorkingPath, nsString& aParams, nsFileSpec& aIcon, PRInt32 aIconId, PRInt32* aReturn);
|
||||||
PRInt32 FileOpFileMacAlias(nsString& aSourcePath, nsString& aAliasPath, PRInt32* aReturn);
|
PRInt32 FileOpFileMacAlias(nsString& aSourcePath, nsString& aAliasPath, PRInt32* aReturn);
|
||||||
PRInt32 FileOpFileUnixLink(nsFileSpec& aTarget, PRInt32 aFlags, PRInt32* aReturn);
|
PRInt32 FileOpFileUnixLink(nsInstallFolder& aTarget, PRInt32 aFlags, PRInt32* aReturn);
|
||||||
|
|
||||||
void LogComment(nsString& aComment);
|
void LogComment(nsString& aComment);
|
||||||
|
|
||||||
|
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -1749,7 +1749,7 @@ static JSPropertySpec InstallProperties[] =
|
||||||
{"url", INSTALL_URL, JSPROP_ENUMERATE | JSPROP_READONLY},
|
{"url", INSTALL_URL, JSPROP_ENUMERATE | JSPROP_READONLY},
|
||||||
{"_statusSent", INSTALL_STATUSSENT, JSPROP_READONLY},
|
{"_statusSent", INSTALL_STATUSSENT, JSPROP_READONLY},
|
||||||
{"Install", INSTALL_INSTALL, JSPROP_READONLY},
|
{"Install", INSTALL_INSTALL, JSPROP_READONLY},
|
||||||
{"FileOp", INSTALL_FILEOP, JSPROP_READONLY},
|
{"File", INSTALL_FILEOP, JSPROP_READONLY},
|
||||||
{"_installedFiles", INSTALL_INSTALLED_FILES, JSPROP_READONLY},
|
{"_installedFiles", INSTALL_INSTALLED_FILES, JSPROP_READONLY},
|
||||||
{0}
|
{0}
|
||||||
};
|
};
|
||||||
|
@ -1813,52 +1813,9 @@ static JSConstDoubleSpec install_constants[] =
|
||||||
//
|
//
|
||||||
static JSFunctionSpec InstallMethods[] =
|
static JSFunctionSpec InstallMethods[] =
|
||||||
{
|
{
|
||||||
{"AbortInstall", InstallAbortInstall, 1},
|
|
||||||
{"AddDirectory", InstallAddDirectory, 6},
|
|
||||||
{"AddSubcomponent", InstallAddSubcomponent, 6},
|
|
||||||
{"DeleteComponent", InstallDeleteComponent, 1},
|
|
||||||
{"DeleteFile", InstallDeleteFile, 2},
|
|
||||||
{"DiskSpaceAvailable", InstallDiskSpaceAvailable, 1},
|
|
||||||
{"Execute", InstallExecute, 2},
|
|
||||||
{"FinalizeInstall", InstallFinalizeInstall, 0},
|
|
||||||
{"Gestalt", InstallGestalt, 1},
|
|
||||||
{"GetComponentFolder", InstallGetComponentFolder, 2},
|
|
||||||
{"GetFolder", InstallGetFolder, 2},
|
|
||||||
{"GetLastError", InstallGetLastError, 0},
|
|
||||||
{"GetWinProfile", InstallGetWinProfile, 2},
|
|
||||||
{"GetWinRegistry", InstallGetWinRegistry, 0},
|
|
||||||
{"LoadResources", InstallLoadResources, 1},
|
|
||||||
{"Patch", InstallPatch, 5},
|
|
||||||
{"ResetError", InstallResetError, 0},
|
|
||||||
{"SetPackageFolder", InstallSetPackageFolder, 1},
|
|
||||||
{"StartInstall", InstallStartInstall, 4},
|
|
||||||
{"Uninstall", InstallUninstall, 1},
|
|
||||||
/*START HACK FOR DEBUGGING UNTIL ALERTS WORK*/
|
/*START HACK FOR DEBUGGING UNTIL ALERTS WORK*/
|
||||||
{"TRACE", InstallTRACE, 1},
|
{"TRACE", InstallTRACE, 1},
|
||||||
/*END HACK FOR DEBUGGING UNTIL ALERTS WORK*/
|
/*END HACK FOR DEBUGGING UNTIL ALERTS WORK*/
|
||||||
{"DirCreate", InstallFileOpDirCreate, 1},
|
|
||||||
{"DirGetParent", InstallFileOpDirGetParent, 1},
|
|
||||||
{"DirRemove", InstallFileOpDirRemove, 2},
|
|
||||||
{"DirRename", InstallFileOpDirRename, 2},
|
|
||||||
{"FileCopy", InstallFileOpFileCopy, 2},
|
|
||||||
{"FileDelete", InstallFileOpFileDelete, 2},
|
|
||||||
{"FileExists", InstallFileOpFileExists, 1},
|
|
||||||
{"FileExecute", InstallFileOpFileExecute, 2},
|
|
||||||
{"FileGetNativeVersion", InstallFileOpFileGetNativeVersion, 1},
|
|
||||||
{"FileGetDiskSpaceAvailable", InstallFileOpFileGetDiskSpaceAvailable,1},
|
|
||||||
{"FileGetModDate", InstallFileOpFileGetModDate, 1},
|
|
||||||
{"FileGetSize", InstallFileOpFileGetSize, 1},
|
|
||||||
{"FileIsDirectory", InstallFileOpFileIsDirectory, 1},
|
|
||||||
{"FileIsFile", InstallFileOpFileIsFile, 1},
|
|
||||||
{"FileModDateChanged", InstallFileOpFileModDateChanged, 2},
|
|
||||||
{"FileMove", InstallFileOpFileMove, 2},
|
|
||||||
{"FileRename", InstallFileOpFileRename, 2},
|
|
||||||
{"FileWindowsShortcut", InstallFileOpFileWindowsShortcut, 7},
|
|
||||||
{"FileMacAlias", InstallFileOpFileMacAlias, 2},
|
|
||||||
{"FileUnixLink", InstallFileOpFileUnixLink, 2},
|
|
||||||
{"LogComment", InstallLogComment, 1},
|
|
||||||
{"Alert", InstallAlert, 1},
|
|
||||||
{"Confirm", InstallConfirm, 2},
|
|
||||||
// -- new forms that match prevailing javascript style --
|
// -- new forms that match prevailing javascript style --
|
||||||
{"abortInstall", InstallAbortInstall, 1},
|
{"abortInstall", InstallAbortInstall, 1},
|
||||||
{"addDirectory", InstallAddDirectory, 6},
|
{"addDirectory", InstallAddDirectory, 6},
|
||||||
|
@ -1902,6 +1859,50 @@ static JSFunctionSpec InstallMethods[] =
|
||||||
{"fileWindowsShortcut", InstallFileOpFileWindowsShortcut, 7},
|
{"fileWindowsShortcut", InstallFileOpFileWindowsShortcut, 7},
|
||||||
{"fileMacAlias", InstallFileOpFileMacAlias, 2},
|
{"fileMacAlias", InstallFileOpFileMacAlias, 2},
|
||||||
{"fileUnixLink", InstallFileOpFileUnixLink, 2},
|
{"fileUnixLink", InstallFileOpFileUnixLink, 2},
|
||||||
|
// -- obsolete forms for temporary compatibility --
|
||||||
|
{"AbortInstall", InstallAbortInstall, 1},
|
||||||
|
{"AddDirectory", InstallAddDirectory, 6},
|
||||||
|
{"AddSubcomponent", InstallAddSubcomponent, 6},
|
||||||
|
{"DeleteComponent", InstallDeleteComponent, 1},
|
||||||
|
{"DeleteFile", InstallDeleteFile, 2},
|
||||||
|
{"DiskSpaceAvailable", InstallDiskSpaceAvailable, 1},
|
||||||
|
{"Execute", InstallExecute, 2},
|
||||||
|
{"FinalizeInstall", InstallFinalizeInstall, 0},
|
||||||
|
{"Gestalt", InstallGestalt, 1},
|
||||||
|
{"GetComponentFolder", InstallGetComponentFolder, 2},
|
||||||
|
{"GetFolder", InstallGetFolder, 2},
|
||||||
|
{"GetLastError", InstallGetLastError, 0},
|
||||||
|
{"GetWinProfile", InstallGetWinProfile, 2},
|
||||||
|
{"GetWinRegistry", InstallGetWinRegistry, 0},
|
||||||
|
{"LoadResources", InstallLoadResources, 1},
|
||||||
|
{"Patch", InstallPatch, 5},
|
||||||
|
{"ResetError", InstallResetError, 0},
|
||||||
|
{"SetPackageFolder", InstallSetPackageFolder, 1},
|
||||||
|
{"StartInstall", InstallStartInstall, 4},
|
||||||
|
{"Uninstall", InstallUninstall, 1},
|
||||||
|
{"DirCreate", InstallFileOpDirCreate, 1},
|
||||||
|
{"DirGetParent", InstallFileOpDirGetParent, 1},
|
||||||
|
{"DirRemove", InstallFileOpDirRemove, 2},
|
||||||
|
{"DirRename", InstallFileOpDirRename, 2},
|
||||||
|
{"FileCopy", InstallFileOpFileCopy, 2},
|
||||||
|
{"FileDelete", InstallFileOpFileDelete, 2},
|
||||||
|
{"FileExists", InstallFileOpFileExists, 1},
|
||||||
|
{"FileExecute", InstallFileOpFileExecute, 2},
|
||||||
|
{"FileGetNativeVersion", InstallFileOpFileGetNativeVersion, 1},
|
||||||
|
{"FileGetDiskSpaceAvailable", InstallFileOpFileGetDiskSpaceAvailable,1},
|
||||||
|
{"FileGetModDate", InstallFileOpFileGetModDate, 1},
|
||||||
|
{"FileGetSize", InstallFileOpFileGetSize, 1},
|
||||||
|
{"FileIsDirectory", InstallFileOpFileIsDirectory, 1},
|
||||||
|
{"FileIsFile", InstallFileOpFileIsFile, 1},
|
||||||
|
{"FileModDateChanged", InstallFileOpFileModDateChanged, 2},
|
||||||
|
{"FileMove", InstallFileOpFileMove, 2},
|
||||||
|
{"FileRename", InstallFileOpFileRename, 2},
|
||||||
|
{"FileWindowsShortcut", InstallFileOpFileWindowsShortcut, 7},
|
||||||
|
{"FileMacAlias", InstallFileOpFileMacAlias, 2},
|
||||||
|
{"FileUnixLink", InstallFileOpFileUnixLink, 2},
|
||||||
|
{"LogComment", InstallLogComment, 1},
|
||||||
|
{"Alert", InstallAlert, 1},
|
||||||
|
{"Confirm", InstallConfirm, 2},
|
||||||
{0}
|
{0}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче