mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-27 12:50:09 +00:00
Bug 1690326: Add mappings for ERROR_DEVICE_HARDWARE_ERROR, ERROR_DEVICE_NOT_CONNECTED, ERROR_DISK_FULL and remove error NS_ERROR_FILE_DISK_FULL in favor of existing NS_ERROR_FILE_NO_DEVICE_SPACE r=xpcom-reviewers,necko-reviewers,nika,valentin
Win32 errors ERROR_DEVICE_HARDWARE_ERROR, ERROR_DEVICE_NOT_CONNECTED, ERROR_DISK_FULL need a mapping. NS_ERROR_FILE_DISK_FULL is duplicate to NS_ERROR_FILE_NO_DEVICE_SPACE Drive by: RejectJSPromise lacked some NS_ERROR_* mappings Differential Revision: https://phabricator.services.mozilla.com/D113974
This commit is contained in:
parent
00fc8347ba
commit
f2f68509d3
@ -156,10 +156,17 @@ static void RejectJSPromise(Promise* aPromise, const IOUtils::IOError& aError) {
|
||||
const auto& errMsg = aError.Message();
|
||||
|
||||
switch (aError.Code()) {
|
||||
case NS_ERROR_FILE_UNRESOLVABLE_SYMLINK:
|
||||
[[fallthrough]]; // to NS_ERROR_FILE_INVALID_PATH
|
||||
case NS_ERROR_FILE_TARGET_DOES_NOT_EXIST:
|
||||
[[fallthrough]]; // to NS_ERROR_FILE_INVALID_PATH
|
||||
case NS_ERROR_FILE_NOT_FOUND:
|
||||
[[fallthrough]]; // to NS_ERROR_FILE_INVALID_PATH
|
||||
case NS_ERROR_FILE_INVALID_PATH:
|
||||
aPromise->MaybeRejectWithNotFoundError(errMsg.refOr("File not found"_ns));
|
||||
break;
|
||||
case NS_ERROR_FILE_IS_LOCKED:
|
||||
[[fallthrough]]; // to NS_ERROR_FILE_ACCESS_DENIED
|
||||
case NS_ERROR_FILE_ACCESS_DENIED:
|
||||
aPromise->MaybeRejectWithNotAllowedError(
|
||||
errMsg.refOr("Access was denied to the target file"_ns));
|
||||
@ -168,6 +175,10 @@ static void RejectJSPromise(Promise* aPromise, const IOUtils::IOError& aError) {
|
||||
aPromise->MaybeRejectWithNotReadableError(
|
||||
errMsg.refOr("Target file is too big"_ns));
|
||||
break;
|
||||
case NS_ERROR_FILE_NO_DEVICE_SPACE:
|
||||
aPromise->MaybeRejectWithNotReadableError(
|
||||
errMsg.refOr("Target device is full"_ns));
|
||||
break;
|
||||
case NS_ERROR_FILE_ALREADY_EXISTS:
|
||||
aPromise->MaybeRejectWithNoModificationAllowedError(
|
||||
errMsg.refOr("Target file already exists"_ns));
|
||||
@ -181,10 +192,23 @@ static void RejectJSPromise(Promise* aPromise, const IOUtils::IOError& aError) {
|
||||
errMsg.refOr("Target file is read only"_ns));
|
||||
break;
|
||||
case NS_ERROR_FILE_NOT_DIRECTORY:
|
||||
[[fallthrough]]; // to NS_ERROR_FILE_DESTINATION_NOT_DIR
|
||||
case NS_ERROR_FILE_DESTINATION_NOT_DIR:
|
||||
aPromise->MaybeRejectWithInvalidAccessError(
|
||||
errMsg.refOr("Target file is not a directory"_ns));
|
||||
break;
|
||||
case NS_ERROR_FILE_IS_DIRECTORY:
|
||||
aPromise->MaybeRejectWithInvalidAccessError(
|
||||
errMsg.refOr("Target file is a directory"_ns));
|
||||
break;
|
||||
case NS_ERROR_FILE_UNKNOWN_TYPE:
|
||||
aPromise->MaybeRejectWithInvalidAccessError(
|
||||
errMsg.refOr("Target file is of unknown type"_ns));
|
||||
break;
|
||||
case NS_ERROR_FILE_NAME_TOO_LONG:
|
||||
aPromise->MaybeRejectWithOperationError(
|
||||
errMsg.refOr("Target file path is too long"_ns));
|
||||
break;
|
||||
case NS_ERROR_FILE_UNRECOGNIZED_PATH:
|
||||
aPromise->MaybeRejectWithOperationError(
|
||||
errMsg.refOr("Target file path is not recognized"_ns));
|
||||
@ -193,11 +217,18 @@ static void RejectJSPromise(Promise* aPromise, const IOUtils::IOError& aError) {
|
||||
aPromise->MaybeRejectWithOperationError(
|
||||
errMsg.refOr("Target directory is not empty"_ns));
|
||||
break;
|
||||
case NS_ERROR_FILE_DEVICE_FAILURE:
|
||||
[[fallthrough]]; // to NS_ERROR_FILE_FS_CORRUPTED
|
||||
case NS_ERROR_FILE_FS_CORRUPTED:
|
||||
aPromise->MaybeRejectWithNotReadableError(
|
||||
errMsg.refOr("Target file system may be corrupt or unavailable"_ns));
|
||||
break;
|
||||
case NS_ERROR_FILE_CORRUPTED:
|
||||
aPromise->MaybeRejectWithNotReadableError(
|
||||
errMsg.refOr("Target file could not be read and may be corrupt"_ns));
|
||||
break;
|
||||
case NS_ERROR_ILLEGAL_INPUT:
|
||||
[[fallthrough]]; // NS_ERROR_ILLEGAL_VALUE
|
||||
case NS_ERROR_ILLEGAL_VALUE:
|
||||
aPromise->MaybeRejectWithDataError(
|
||||
errMsg.refOr("Argument is not allowed"_ns));
|
||||
|
@ -1217,7 +1217,6 @@ nsresult nsWebBrowserPersist::SendErrorStatusChange(bool aIsReadError,
|
||||
// File exists with same name as directory.
|
||||
msgId = "fileAlreadyExistsError";
|
||||
break;
|
||||
case NS_ERROR_FILE_DISK_FULL:
|
||||
case NS_ERROR_FILE_NO_DEVICE_SPACE:
|
||||
// Out of space on target volume.
|
||||
msgId = "diskFull";
|
||||
|
@ -105,7 +105,6 @@ XPC_MSG_DEF(NS_ERROR_FILE_TARGET_DOES_NOT_EXIST , "File error: Target does n
|
||||
XPC_MSG_DEF(NS_ERROR_FILE_COPY_OR_MOVE_FAILED , "File error: Copy or move failed")
|
||||
XPC_MSG_DEF(NS_ERROR_FILE_ALREADY_EXISTS , "File error: Already exists")
|
||||
XPC_MSG_DEF(NS_ERROR_FILE_INVALID_PATH , "File error: Invalid path")
|
||||
XPC_MSG_DEF(NS_ERROR_FILE_DISK_FULL , "File error: Disk full")
|
||||
XPC_MSG_DEF(NS_ERROR_FILE_CORRUPTED , "File error: Corrupted")
|
||||
XPC_MSG_DEF(NS_ERROR_FILE_NOT_DIRECTORY , "File error: Not directory")
|
||||
XPC_MSG_DEF(NS_ERROR_FILE_IS_DIRECTORY , "File error: Is directory")
|
||||
|
@ -533,7 +533,7 @@ nsresult nsZipArchive::ExtractFile(nsZipItem* item, nsIFile* outFile,
|
||||
}
|
||||
|
||||
if (aFd && PR_Write(aFd, buf, count) < (READTYPE)count) {
|
||||
rv = NS_ERROR_FILE_DISK_FULL;
|
||||
rv = NS_ERROR_FILE_NO_DEVICE_SPACE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -2053,7 +2053,7 @@ static uint32_t StatusToTelemetryEnum(nsresult aStatus) {
|
||||
return 0; // Log this as a success
|
||||
case NS_ERROR_OUT_OF_MEMORY:
|
||||
return 2;
|
||||
case NS_ERROR_FILE_DISK_FULL:
|
||||
case NS_ERROR_FILE_NO_DEVICE_SPACE:
|
||||
return 3;
|
||||
case NS_ERROR_FILE_CORRUPTED:
|
||||
return 4;
|
||||
|
@ -1989,7 +1989,7 @@ nsresult CacheFileIOManager::WriteInternal(CacheFileHandle* aHandle,
|
||||
LOG(
|
||||
("CacheFileIOManager::WriteInternal() - failing because cache size "
|
||||
"reached hard limit!"));
|
||||
return NS_ERROR_FILE_DISK_FULL;
|
||||
return NS_ERROR_FILE_NO_DEVICE_SPACE;
|
||||
}
|
||||
|
||||
int64_t freeSpace;
|
||||
@ -2008,7 +2008,7 @@ nsresult CacheFileIOManager::WriteInternal(CacheFileHandle* aHandle,
|
||||
("CacheFileIOManager::WriteInternal() - Low free space, refusing "
|
||||
"to write! [freeSpace=%" PRId64 "kB, limit=%ukB]",
|
||||
freeSpace, limit));
|
||||
return NS_ERROR_FILE_DISK_FULL;
|
||||
return NS_ERROR_FILE_NO_DEVICE_SPACE;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -2518,7 +2518,7 @@ nsresult CacheFileIOManager::TruncateSeekSetEOFInternal(
|
||||
LOG(
|
||||
("CacheFileIOManager::TruncateSeekSetEOFInternal() - failing because "
|
||||
"cache size reached hard limit!"));
|
||||
return NS_ERROR_FILE_DISK_FULL;
|
||||
return NS_ERROR_FILE_NO_DEVICE_SPACE;
|
||||
}
|
||||
|
||||
int64_t freeSpace;
|
||||
@ -2537,7 +2537,7 @@ nsresult CacheFileIOManager::TruncateSeekSetEOFInternal(
|
||||
("CacheFileIOManager::TruncateSeekSetEOFInternal() - Low free space"
|
||||
", refusing to write! [freeSpace=%" PRId64 "kB, limit=%ukB]",
|
||||
freeSpace, limit));
|
||||
return NS_ERROR_FILE_DISK_FULL;
|
||||
return NS_ERROR_FILE_NO_DEVICE_SPACE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -101,7 +101,8 @@ void nsFileCopyEvent::DoCopy() {
|
||||
rv = mSource->ReadSegments(NS_CopySegmentToStream, mDest, num, &result);
|
||||
if (NS_FAILED(rv)) break;
|
||||
if (result != (uint32_t)num) {
|
||||
rv = NS_ERROR_FILE_DISK_FULL; // stopped prematurely (out of disk space)
|
||||
// stopped prematurely (out of disk space)
|
||||
rv = NS_ERROR_FILE_NO_DEVICE_SPACE;
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -1931,7 +1931,6 @@ void nsExternalAppHandler::SendStatusChange(ErrorType type, nsresult rv,
|
||||
msgId = "noMemory";
|
||||
break;
|
||||
|
||||
case NS_ERROR_FILE_DISK_FULL:
|
||||
case NS_ERROR_FILE_NO_DEVICE_SPACE:
|
||||
// Out of space on target volume.
|
||||
msgId = "diskFull";
|
||||
|
@ -636,7 +636,6 @@ with modules["FILES"]:
|
||||
errors["NS_ERROR_FILE_COPY_OR_MOVE_FAILED"] = FAILURE(7)
|
||||
errors["NS_ERROR_FILE_ALREADY_EXISTS"] = FAILURE(8)
|
||||
errors["NS_ERROR_FILE_INVALID_PATH"] = FAILURE(9)
|
||||
errors["NS_ERROR_FILE_DISK_FULL"] = FAILURE(10)
|
||||
errors["NS_ERROR_FILE_CORRUPTED"] = FAILURE(11)
|
||||
errors["NS_ERROR_FILE_NOT_DIRECTORY"] = FAILURE(12)
|
||||
errors["NS_ERROR_FILE_IS_DIRECTORY"] = FAILURE(13)
|
||||
|
@ -53,11 +53,11 @@ inline nsresult nsresultForErrno(int aErr) {
|
||||
case 0:
|
||||
return NS_OK;
|
||||
#ifdef EDQUOT
|
||||
case EDQUOT: /* Quota exceeded */
|
||||
// FALLTHROUGH to return NS_ERROR_FILE_DISK_FULL
|
||||
case EDQUOT: /* Quota exceeded */
|
||||
[[fallthrough]]; // to NS_ERROR_FILE_NO_DEVICE_SPACE
|
||||
#endif
|
||||
case ENOSPC:
|
||||
return NS_ERROR_FILE_DISK_FULL;
|
||||
return NS_ERROR_FILE_NO_DEVICE_SPACE;
|
||||
#ifdef EISDIR
|
||||
case EISDIR: /* Is a directory. */
|
||||
return NS_ERROR_FILE_IS_DIRECTORY;
|
||||
|
@ -2248,7 +2248,7 @@ static nsresult MacErrorMapper(OSErr inErr) {
|
||||
|
||||
case dskFulErr:
|
||||
case afpDiskFull:
|
||||
outErr = NS_ERROR_FILE_DISK_FULL;
|
||||
outErr = NS_ERROR_FILE_NO_DEVICE_SPACE;
|
||||
break;
|
||||
|
||||
case fLckdErr:
|
||||
|
@ -248,26 +248,35 @@ static nsresult ConvertWinError(DWORD aWinErr) {
|
||||
|
||||
switch (aWinErr) {
|
||||
case ERROR_FILE_NOT_FOUND:
|
||||
[[fallthrough]]; // to NS_ERROR_FILE_NOT_FOUND
|
||||
case ERROR_PATH_NOT_FOUND:
|
||||
[[fallthrough]]; // to NS_ERROR_FILE_NOT_FOUND
|
||||
case ERROR_INVALID_DRIVE:
|
||||
[[fallthrough]]; // to NS_ERROR_FILE_NOT_FOUND
|
||||
case ERROR_NOT_READY:
|
||||
rv = NS_ERROR_FILE_NOT_FOUND;
|
||||
break;
|
||||
case ERROR_ACCESS_DENIED:
|
||||
[[fallthrough]]; // to NS_ERROR_FILE_ACCESS_DENIED
|
||||
case ERROR_NOT_SAME_DEVICE:
|
||||
rv = NS_ERROR_FILE_ACCESS_DENIED;
|
||||
break;
|
||||
case ERROR_SHARING_VIOLATION: // CreateFile without sharing flags
|
||||
[[fallthrough]]; // to NS_ERROR_FILE_IS_LOCKED
|
||||
case ERROR_LOCK_VIOLATION: // LockFile, LockFileEx
|
||||
rv = NS_ERROR_FILE_IS_LOCKED;
|
||||
break;
|
||||
case ERROR_NOT_ENOUGH_MEMORY:
|
||||
[[fallthrough]]; // to NS_ERROR_OUT_OF_MEMORY
|
||||
case ERROR_INVALID_BLOCK:
|
||||
[[fallthrough]]; // to NS_ERROR_OUT_OF_MEMORY
|
||||
case ERROR_INVALID_HANDLE:
|
||||
[[fallthrough]]; // to NS_ERROR_OUT_OF_MEMORY
|
||||
case ERROR_ARENA_TRASHED:
|
||||
rv = NS_ERROR_OUT_OF_MEMORY;
|
||||
break;
|
||||
case ERROR_DIR_NOT_EMPTY:
|
||||
[[fallthrough]]; // to NS_ERROR_FILE_DIR_NOT_EMPTY
|
||||
case ERROR_CURRENT_DIRECTORY:
|
||||
rv = NS_ERROR_FILE_DIR_NOT_EMPTY;
|
||||
break;
|
||||
@ -275,10 +284,14 @@ static nsresult ConvertWinError(DWORD aWinErr) {
|
||||
rv = NS_ERROR_FILE_READ_ONLY;
|
||||
break;
|
||||
case ERROR_HANDLE_DISK_FULL:
|
||||
rv = NS_ERROR_FILE_TOO_BIG;
|
||||
[[fallthrough]]; // to NS_ERROR_FILE_NO_DEVICE_SPACE
|
||||
case ERROR_DISK_FULL:
|
||||
rv = NS_ERROR_FILE_NO_DEVICE_SPACE;
|
||||
break;
|
||||
case ERROR_FILE_EXISTS:
|
||||
[[fallthrough]]; // to NS_ERROR_FILE_ALREADY_EXISTS
|
||||
case ERROR_ALREADY_EXISTS:
|
||||
[[fallthrough]]; // to NS_ERROR_FILE_ALREADY_EXISTS
|
||||
case ERROR_CANNOT_MAKE:
|
||||
rv = NS_ERROR_FILE_ALREADY_EXISTS;
|
||||
break;
|
||||
@ -291,6 +304,10 @@ static nsresult ConvertWinError(DWORD aWinErr) {
|
||||
case ERROR_FILE_CORRUPT:
|
||||
rv = NS_ERROR_FILE_FS_CORRUPTED;
|
||||
break;
|
||||
case ERROR_DEVICE_HARDWARE_ERROR:
|
||||
[[fallthrough]]; // to NS_ERROR_FILE_DEVICE_FAILURE
|
||||
case ERROR_DEVICE_NOT_CONNECTED:
|
||||
[[fallthrough]]; // to NS_ERROR_FILE_DEVICE_FAILURE
|
||||
case ERROR_IO_DEVICE:
|
||||
rv = NS_ERROR_FILE_DEVICE_FAILURE;
|
||||
break;
|
||||
|
Loading…
x
Reference in New Issue
Block a user