--- a/browser/components/migration/FirefoxProfileMigrator.js
+++ b/browser/components/migration/FirefoxProfileMigrator.js
@@ -243,17 +243,17 @@ FirefoxProfileMigrator.prototype._getRes
let dataReportingDir = this._getFileObject(sourceProfileDir, "datareporting");
if (dataReportingDir && dataReportingDir.isDirectory()) {
// Copy only specific files.
let toCopy = ["state.json", "session-state.json"];
let dest = createSubDir("datareporting");
let enumerator = dataReportingDir.directoryEntries;
while (enumerator.hasMoreElements()) {
- let file = enumerator.getNext().QueryInterface(Ci.nsIFile);
+ let file = enumerator.nextFile;
if (file.isDirectory() || !toCopy.includes(file.leafName)) {
continue;
}
file.copyTo(dest, "");
}
}
aCallback(true);
--- a/browser/components/migration/MSMigrationUtils.jsm
+++ b/browser/components/migration/MSMigrationUtils.jsm
@@ -286,18 +286,17 @@ function getEdgeLocalDataFolder() {
if (edgeDir.exists() && edgeDir.isReadable() && edgeDir.isDirectory()) {
gEdgeDir = edgeDir;
return edgeDir.clone();
}
// Let's try the long way:
let dirEntries = packages.directoryEntries;
while (dirEntries.hasMoreElements()) {
- let subDir = dirEntries.getNext();
- subDir.QueryInterface(Ci.nsIFile);
+ let subDir = dirEntries.nextFile;
if (subDir.leafName.startsWith("Microsoft.MicrosoftEdge") && subDir.isReadable() &&
subDir.isDirectory()) {
gEdgeDir = subDir;
return subDir.clone();
}
}
} catch (ex) {
Cu.reportError("Exception trying to find the Edge favorites directory: " + ex);
@@ -383,17 +382,17 @@ Bookmarks.prototype = {
async _getBookmarksInFolder(aSourceFolder) {
// TODO (bug 741993): the favorites order is stored in the Registry, at
// HCU\Software\Microsoft\Windows\CurrentVersion\Explorer\MenuOrder\Favorites
// for IE, and in a similar location for Edge.
// Until we support it, bookmarks are imported in alphabetical order.
let entries = aSourceFolder.directoryEntries;
let rv = [];
while (entries.hasMoreElements()) {
- let entry = entries.getNext().QueryInterface(Ci.nsIFile);
+ let entry = entries.nextFile;
try {
// Make sure that entry.path == entry.target to not follow .lnk folder
// shortcuts which could lead to infinite cycles.
// Don't use isSymlink(), since it would throw for invalid
// lnk files pointing to URLs or to unresolvable paths.
if (entry.path == entry.target && entry.isDirectory()) {
let isBookmarksFolder = entry.leafName == this._toolbarFolderName &&
entry.parent.equals(this._favoritesFolder);
@@ -504,17 +503,17 @@ Cookies.prototype = {
let cookiesGenerator = (function* genCookie() {
let success = false;
let folders = this._migrationType == MSMigrationUtils.MIGRATION_TYPE_EDGE ?
this.__cookiesFolders : [this.__cookiesFolder];
for (let folder of folders) {
let entries = folder.directoryEntries;
while (entries.hasMoreElements()) {
- let entry = entries.getNext().QueryInterface(Ci.nsIFile);
+ let entry = entries.nextFile;
// Skip eventual bogus entries.
if (!entry.isFile() || !/\.(cookie|txt)$/.test(entry.leafName))
continue;
this._readCookieFile(entry, function(aSuccess) {
// Importing even a single cookie file is considered a success.
if (aSuccess)
success = true;
--- a/browser/extensions/mortar/host/common/ppapi-runtime.jsm
+++ b/browser/extensions/mortar/host/common/ppapi-runtime.jsm
@@ -2843,17 +2843,17 @@ dump(`callFromJSON: < ${JSON.stringify(c
json.path.split("/").forEach((pathItem) => directory.appendRelativePath(pathItem));
if (!directory.exists() || !directory.isDirectory()) {
return [PP_ERROR_FILENOTFOUND, { contents: null }];
}
let entries = [];
let enumerator = directory.directoryEntries;
while (enumerator.hasMoreElements()) {
- let file = enumerator.getNext().QueryInterface(Ci.nsIFile);
+ let file = enumerator.nextFile;
entries.push({ name: file.leafName, is_dir: file.isDirectory() });
}
return [PP_OK, { contents: { count: entries.length, entries } }];
},
/**
* int32_t CreateTemporaryFile(
* [in] PP_Instance instance,
--- a/browser/modules/test/browser/browser_UnsubmittedCrashHandler.js
+++ b/browser/modules/test/browser/browser_UnsubmittedCrashHandler.js
@@ -37,17 +37,17 @@ function getPendingCrashReportDir() {
* Synchronously deletes all entries inside the pending
* crash report directory.
*/
function clearPendingCrashReports() {
let dir = getPendingCrashReportDir();
let entries = dir.directoryEntries;
while (entries.hasMoreElements()) {
- let entry = entries.getNext().QueryInterface(Ci.nsIFile);
+ let entry = entries.nextFile;
if (entry.isFile()) {
entry.remove(false);
}
}
}
/**
* Randomly generates howMany crash report .dmp and .extra files
--- a/dom/asmjscache/AsmJSCache.cpp
+++ b/dom/asmjscache/AsmJSCache.cpp
@@ -1869,36 +1869,25 @@ Client::GetUsageForOrigin(PersistenceTyp
rv = directory->Append(NS_LITERAL_STRING(ASMJSCACHE_DIRECTORY_NAME));
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
}
DebugOnly<bool> exists;
MOZ_ASSERT(NS_SUCCEEDED(directory->Exists(&exists)) && exists);
- nsCOMPtr<nsISimpleEnumerator> entries;
+ nsCOMPtr<nsIDirectoryEnumerator> entries;
rv = directory->GetDirectoryEntries(getter_AddRefs(entries));
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
}
- bool hasMore;
- while (NS_SUCCEEDED((rv = entries->HasMoreElements(&hasMore))) &&
- hasMore && !aCanceled) {
- nsCOMPtr<nsISupports> entry;
- rv = entries->GetNext(getter_AddRefs(entry));
- if (NS_WARN_IF(NS_FAILED(rv))) {
- return rv;
- }
-
- nsCOMPtr<nsIFile> file = do_QueryInterface(entry);
- if (NS_WARN_IF(!file)) {
- return NS_NOINTERFACE;
- }
-
+ nsCOMPtr<nsIFile> file;
+ while (NS_SUCCEEDED((rv = entries->GetNextFile(getter_AddRefs(file)))) &&
+ file && !aCanceled) {
int64_t fileSize;
rv = file->GetFileSize(&fileSize);
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
}
MOZ_ASSERT(fileSize >= 0, "Negative size?!");
--- a/dom/cache/FileUtils.cpp
+++ b/dom/cache/FileUtils.cpp
@@ -445,54 +445,42 @@ BodyDeleteOrphanedFiles(const QuotaInfo&
nsCOMPtr<nsIFile> dir;
nsresult rv = aBaseDir->Clone(getter_AddRefs(dir));
if (NS_WARN_IF(NS_FAILED(rv))) { return rv; }
// Add the root morgue directory
rv = dir->Append(NS_LITERAL_STRING("morgue"));
if (NS_WARN_IF(NS_FAILED(rv))) { return rv; }
- nsCOMPtr<nsISimpleEnumerator> entries;
+ nsCOMPtr<nsIDirectoryEnumerator> entries;
rv = dir->GetDirectoryEntries(getter_AddRefs(entries));
if (NS_WARN_IF(NS_FAILED(rv))) { return rv; }
// Iterate over all the intermediate morgue subdirs
- bool hasMore = false;
- while (NS_SUCCEEDED(rv = entries->HasMoreElements(&hasMore)) && hasMore) {
- nsCOMPtr<nsISupports> entry;
- rv = entries->GetNext(getter_AddRefs(entry));
- if (NS_WARN_IF(NS_FAILED(rv))) { return rv; }
-
- nsCOMPtr<nsIFile> subdir = do_QueryInterface(entry);
-
+ nsCOMPtr<nsIFile> subdir;
+ while (NS_SUCCEEDED(rv = entries->GetNextFile(getter_AddRefs(subdir))) && subdir) {
bool isDir = false;
rv = subdir->IsDirectory(&isDir);
if (NS_WARN_IF(NS_FAILED(rv))) { return rv; }
// If a file got in here somehow, try to remove it and move on
if (NS_WARN_IF(!isDir)) {
rv = RemoveNsIFile(aQuotaInfo, subdir);
MOZ_ASSERT(NS_SUCCEEDED(rv));
continue;
}
- nsCOMPtr<nsISimpleEnumerator> subEntries;
+ nsCOMPtr<nsIDirectoryEnumerator> subEntries;
rv = subdir->GetDirectoryEntries(getter_AddRefs(subEntries));
if (NS_WARN_IF(NS_FAILED(rv))) { return rv; }
// Now iterate over all the files in the subdir
- bool subHasMore = false;
- while(NS_SUCCEEDED(rv = subEntries->HasMoreElements(&subHasMore)) &&
- subHasMore) {
- nsCOMPtr<nsISupports> subEntry;
- rv = subEntries->GetNext(getter_AddRefs(subEntry));
- if (NS_WARN_IF(NS_FAILED(rv))) { return rv; }
-
- nsCOMPtr<nsIFile> file = do_QueryInterface(subEntry);
-
+ nsCOMPtr<nsIFile> file;
+ while(NS_SUCCEEDED(rv = subEntries->GetNextFile(getter_AddRefs(file))) &&
+ file) {
nsAutoCString leafName;
rv = file->GetNativeLeafName(leafName);
if (NS_WARN_IF(NS_FAILED(rv))) { return rv; }
// Delete all tmp files regardless of known bodies. These are
// all considered orphans.
if (StringEndsWith(leafName, NS_LITERAL_CSTRING(".tmp"))) {
// remove recursively in case its somehow a directory
@@ -620,29 +608,22 @@ RemoveNsIFileRecursively(const QuotaInfo
if (NS_WARN_IF(NS_FAILED(rv))) { return rv; }
if (!isDirectory) {
return RemoveNsIFile(aQuotaInfo, aFile);
}
// Unfortunately, we need to traverse all the entries and delete files one by
// one to update their usages to the QuotaManager.
- nsCOMPtr<nsISimpleEnumerator> entries;
+ nsCOMPtr<nsIDirectoryEnumerator> entries;
rv = aFile->GetDirectoryEntries(getter_AddRefs(entries));
if (NS_WARN_IF(NS_FAILED(rv))) { return rv; }
- bool hasMore = false;
- while (NS_SUCCEEDED((rv = entries->HasMoreElements(&hasMore))) && hasMore) {
- nsCOMPtr<nsISupports> entry;
- rv = entries->GetNext(getter_AddRefs(entry));
- if (NS_WARN_IF(NS_FAILED(rv))) { return rv; }
-
- nsCOMPtr<nsIFile> file = do_QueryInterface(entry);
- MOZ_ASSERT(file);
-
+ nsCOMPtr<nsIFile> file;
+ while (NS_SUCCEEDED((rv = entries->GetNextFile(getter_AddRefs(file)))) && file) {
rv = RemoveNsIFileRecursively(aQuotaInfo, file);
if (NS_WARN_IF(NS_FAILED(rv))) { return rv; }
}
if (NS_WARN_IF(NS_FAILED(rv))) { return rv; }
// In the end, remove the folder
rv = aFile->Remove(/* recursive */ false);
if (NS_WARN_IF(NS_FAILED(rv))) { return rv; }
--- a/dom/cache/QuotaClient.cpp
+++ b/dom/cache/QuotaClient.cpp
@@ -34,29 +34,23 @@ using mozilla::MutexAutoLock;
using mozilla::Unused;
static nsresult
GetBodyUsage(nsIFile* aDir, const Atomic<bool>& aCanceled,
UsageInfo* aUsageInfo)
{
AssertIsOnIOThread();
- nsCOMPtr<nsISimpleEnumerator> entries;
+ nsCOMPtr<nsIDirectoryEnumerator> entries;
nsresult rv = aDir->GetDirectoryEntries(getter_AddRefs(entries));
if (NS_WARN_IF(NS_FAILED(rv))) { return rv; }
- bool hasMore;
- while (NS_SUCCEEDED(rv = entries->HasMoreElements(&hasMore)) && hasMore &&
- !aCanceled) {
- nsCOMPtr<nsISupports> entry;
- rv = entries->GetNext(getter_AddRefs(entry));
- if (NS_WARN_IF(NS_FAILED(rv))) { return rv; }
-
- nsCOMPtr<nsIFile> file = do_QueryInterface(entry);
-
+ nsCOMPtr<nsIFile> file;
+ while (NS_SUCCEEDED(rv = entries->GetNextFile(getter_AddRefs(file))) &&
+ file && !aCanceled) {
bool isDir;
rv = file->IsDirectory(&isDir);
if (NS_WARN_IF(NS_FAILED(rv))) { return rv; }
if (isDir) {
rv = GetBodyUsage(file, aCanceled, aUsageInfo);
if (NS_WARN_IF(NS_FAILED(rv))) { return rv; }
continue;
@@ -182,29 +176,23 @@ public:
&paddingSize)))) {
rv = LockedGetPaddingSizeFromDB(dir, aGroup, aOrigin, &paddingSize);
if (NS_WARN_IF(NS_FAILED(rv))) { return rv; }
}
}
aUsageInfo->AppendToFileUsage(paddingSize);
- nsCOMPtr<nsISimpleEnumerator> entries;
+ nsCOMPtr<nsIDirectoryEnumerator> entries;
rv = dir->GetDirectoryEntries(getter_AddRefs(entries));
if (NS_WARN_IF(NS_FAILED(rv))) { return rv; }
- bool hasMore;
- while (NS_SUCCEEDED(rv = entries->HasMoreElements(&hasMore)) && hasMore &&
- !aCanceled) {
- nsCOMPtr<nsISupports> entry;
- rv = entries->GetNext(getter_AddRefs(entry));
- if (NS_WARN_IF(NS_FAILED(rv))) { return rv; }
-
- nsCOMPtr<nsIFile> file = do_QueryInterface(entry);
-
+ nsCOMPtr<nsIFile> file;
+ while (NS_SUCCEEDED(rv = entries->GetNextFile(getter_AddRefs(file))) &&
+ file && !aCanceled) {
nsAutoString leafName;
rv = file->GetLeafName(leafName);
if (NS_WARN_IF(NS_FAILED(rv))) { return rv; }
bool isDir;
rv = file->IsDirectory(&isDir);
if (NS_WARN_IF(NS_FAILED(rv))) { return rv; }
--- a/dom/cache/test/xpcshell/make_profile.js
+++ b/dom/cache/test/xpcshell/make_profile.js
@@ -14,17 +14,17 @@
function enumerate_tree(entryList) {
for (var index = 0; index < entryList.length; ++index) {
var path = entryList[index].path;
var file = entryList[index].file;
if (file.isDirectory()) {
var dirList = file.directoryEntries;
while (dirList.hasMoreElements()) {
- var dirFile = dirList.getNext().QueryInterface(Ci.nsIFile);
+ var dirFile = dirList.nextFile;
entryList.push({ path: path + '/' + dirFile.leafName, file: dirFile });
}
}
}
}
function zip_profile(zipFile, profileDir) {
var zipWriter = Cc['@mozilla.org/zipwriter;1']
--- a/dom/filesystem/GetDirectoryListingTask.cpp
+++ b/dom/filesystem/GetDirectoryListingTask.cpp
@@ -303,17 +303,17 @@ GetDirectoryListingTaskParent::IOWork()
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
}
if (!isDir) {
return NS_ERROR_DOM_FILESYSTEM_TYPE_MISMATCH_ERR;
}
- nsCOMPtr<nsISimpleEnumerator> entries;
+ nsCOMPtr<nsIDirectoryEnumerator> entries;
rv = mTargetPath->GetDirectoryEntries(getter_AddRefs(entries));
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
}
bool filterOutSensitive = false;
{
HTMLSplitOnSpacesTokenizer tokenizer(mFilters, ';');
@@ -324,28 +324,20 @@ GetDirectoryListingTaskParent::IOWork()
filterOutSensitive = true;
} else {
MOZ_CRASH("Unrecognized filter");
}
}
}
for (;;) {
- bool hasMore = false;
- if (NS_WARN_IF(NS_FAILED(entries->HasMoreElements(&hasMore))) || !hasMore) {
+ nsCOMPtr<nsIFile> currFile;
+ if (NS_WARN_IF(NS_FAILED(entries->GetNextFile(getter_AddRefs(currFile)))) || !currFile) {
break;
}
- nsCOMPtr<nsISupports> supp;
- if (NS_WARN_IF(NS_FAILED(entries->GetNext(getter_AddRefs(supp))))) {
- break;
- }
-
- nsCOMPtr<nsIFile> currFile = do_QueryInterface(supp);
- MOZ_ASSERT(currFile);
-
bool isSpecial, isFile;
if (NS_WARN_IF(NS_FAILED(currFile->IsSpecial(&isSpecial))) ||
isSpecial) {
continue;
}
if (NS_WARN_IF(NS_FAILED(currFile->IsFile(&isFile)) ||
NS_FAILED(currFile->IsDirectory(&isDir))) ||
!(isFile || isDir)) {
--- a/dom/filesystem/GetFilesHelper.cpp
+++ b/dom/filesystem/GetFilesHelper.cpp
@@ -333,36 +333,27 @@ GetFilesHelperBase::ExploreDirectory(con
return NS_OK;
}
nsresult rv = AddExploredDirectory(aFile);
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
}
- nsCOMPtr<nsISimpleEnumerator> entries;
+ nsCOMPtr<nsIDirectoryEnumerator> entries;
rv = aFile->GetDirectoryEntries(getter_AddRefs(entries));
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
}
for (;;) {
- bool hasMore = false;
- if (NS_WARN_IF(NS_FAILED(entries->HasMoreElements(&hasMore))) || !hasMore) {
+ nsCOMPtr<nsIFile> currFile;
+ if (NS_WARN_IF(NS_FAILED(entries->GetNextFile(getter_AddRefs(currFile)))) || !currFile) {
break;
}
-
- nsCOMPtr<nsISupports> supp;
- if (NS_WARN_IF(NS_FAILED(entries->GetNext(getter_AddRefs(supp))))) {
- break;
- }
-
- nsCOMPtr<nsIFile> currFile = do_QueryInterface(supp);
- MOZ_ASSERT(currFile);
-
bool isLink, isSpecial, isFile, isDir;
if (NS_WARN_IF(NS_FAILED(currFile->IsSymlink(&isLink)) ||
NS_FAILED(currFile->IsSpecial(&isSpecial))) ||
isSpecial) {
continue;
}
if (NS_WARN_IF(NS_FAILED(currFile->IsFile(&isFile)) ||
--- a/dom/indexedDB/ActorsParent.cpp
+++ b/dom/indexedDB/ActorsParent.cpp
@@ -17399,35 +17399,26 @@ FileManager::GetUsage(nsIFile* aDirector
return rv;
}
if (!exists) {
*aUsage = 0;
return NS_OK;
}
- nsCOMPtr<nsISimpleEnumerator> entries;
+ nsCOMPtr<nsIDirectoryEnumerator> entries;
rv = aDirectory->GetDirectoryEntries(getter_AddRefs(entries));
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
}
uint64_t usage = 0;
- bool hasMore;
- while (NS_SUCCEEDED((rv = entries->HasMoreElements(&hasMore))) && hasMore) {
- nsCOMPtr<nsISupports> entry;
- rv = entries->GetNext(getter_AddRefs(entry));
- if (NS_WARN_IF(NS_FAILED(rv))) {
- return rv;
- }
-
- nsCOMPtr<nsIFile> file = do_QueryInterface(entry);
- MOZ_ASSERT(file);
-
+ nsCOMPtr<nsIFile> file;
+ while (NS_SUCCEEDED((rv = entries->GetNextFile(getter_AddRefs(file)))) && file) {
nsString leafName;
rv = file->GetLeafName(leafName);
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
}
if (leafName.EqualsLiteral(JOURNAL_DIRECTORY_NAME)) {
continue;
@@ -17979,45 +17970,36 @@ QuotaClient::GetDatabaseFilenames(
const AtomicBool& aCanceled,
bool aForUpgrade,
nsTArray<nsString>& aSubdirsToProcess,
nsTHashtable<nsStringHashKey>& aDatabaseFilenames)
{
AssertIsOnIOThread();
MOZ_ASSERT(aDirectory);
- nsCOMPtr<nsISimpleEnumerator> entries;
+ nsCOMPtr<nsIDirectoryEnumerator> entries;
nsresult rv = aDirectory->GetDirectoryEntries(getter_AddRefs(entries));
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
}
const NS_ConvertASCIItoUTF16 sqliteSuffix(kSQLiteSuffix,
LiteralStringLength(kSQLiteSuffix));
const NS_ConvertASCIItoUTF16 journalSuffix(
kSQLiteJournalSuffix,
LiteralStringLength(kSQLiteJournalSuffix));
const NS_ConvertASCIItoUTF16 shmSuffix(kSQLiteSHMSuffix,
LiteralStringLength(kSQLiteSHMSuffix));
const NS_ConvertASCIItoUTF16 walSuffix(kSQLiteWALSuffix,
LiteralStringLength(kSQLiteWALSuffix));
- bool hasMore;
- while (NS_SUCCEEDED((rv = entries->HasMoreElements(&hasMore))) &&
- hasMore &&
+ nsCOMPtr<nsIFile> file;
+ while (NS_SUCCEEDED((rv = entries->GetNextFile(getter_AddRefs(file)))) &&
+ file &&
!aCanceled) {
- nsCOMPtr<nsISupports> entry;
- rv = entries->GetNext(getter_AddRefs(entry));
- if (NS_WARN_IF(NS_FAILED(rv))) {
- return rv;
- }
-
- nsCOMPtr<nsIFile> file = do_QueryInterface(entry);
- MOZ_ASSERT(file);
-
nsString leafName;
rv = file->GetLeafName(leafName);
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
}
bool isDirectory;
rv = file->IsDirectory(&isDirectory);
@@ -18082,45 +18064,36 @@ QuotaClient::GetUsageForDirectoryInterna
const AtomicBool& aCanceled,
UsageInfo* aUsageInfo,
bool aDatabaseFiles)
{
AssertIsOnIOThread();
MOZ_ASSERT(aDirectory);
MOZ_ASSERT(aUsageInfo);
- nsCOMPtr<nsISimpleEnumerator> entries;
+ nsCOMPtr<nsIDirectoryEnumerator> entries;
nsresult rv = aDirectory->GetDirectoryEntries(getter_AddRefs(entries));
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
}
if (!entries) {
return NS_OK;
}
const NS_ConvertASCIItoUTF16 journalSuffix(
kSQLiteJournalSuffix,
LiteralStringLength(kSQLiteJournalSuffix));
const NS_ConvertASCIItoUTF16 shmSuffix(kSQLiteSHMSuffix,
LiteralStringLength(kSQLiteSHMSuffix));
- bool hasMore;
- while (NS_SUCCEEDED((rv = entries->HasMoreElements(&hasMore))) &&
- hasMore &&
+ nsCOMPtr<nsIFile> file;
+ while (NS_SUCCEEDED((rv = entries->GetNextFile(getter_AddRefs(file)))) &&
+ file &&
!aCanceled) {
- nsCOMPtr<nsISupports> entry;
- rv = entries->GetNext(getter_AddRefs(entry));
- if (NS_WARN_IF(NS_FAILED(rv))) {
- return rv;
- }
-
- nsCOMPtr<nsIFile> file = do_QueryInterface(entry);
- MOZ_ASSERT(file);
-
nsString leafName;
rv = file->GetLeafName(leafName);
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
}
// Journal files and sqlite-shm files don't count towards usage.
if (StringEndsWith(leafName, journalSuffix) ||
@@ -18433,53 +18406,43 @@ Maintenance::DirectoryWork()
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
}
if (NS_WARN_IF(!isDirectory)) {
continue;
}
- nsCOMPtr<nsISimpleEnumerator> persistenceDirEntries;
+ nsCOMPtr<nsIDirectoryEnumerator> persistenceDirEntries;
rv = persistenceDir->GetDirectoryEntries(
getter_AddRefs(persistenceDirEntries));
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
}
if (!persistenceDirEntries) {
continue;
}
while (true) {
// Loop over "<origin>/idb" directories.
if (IsAborted()) {
return NS_ERROR_ABORT;
}
- bool persistenceDirHasMoreEntries;
- rv = persistenceDirEntries->HasMoreElements(
- &persistenceDirHasMoreEntries);
- if (NS_WARN_IF(NS_FAILED(rv))) {
- return rv;
- }
-
- if (!persistenceDirHasMoreEntries) {
+ nsCOMPtr<nsIFile> originDir;
+ rv = persistenceDirEntries->GetNextFile(getter_AddRefs(originDir));
+ if (NS_WARN_IF(NS_FAILED(rv))) {
+ return rv;
+ }
+
+ if (!originDir) {
break;
}
- nsCOMPtr<nsISupports> persistenceDirEntry;
- rv = persistenceDirEntries->GetNext(getter_AddRefs(persistenceDirEntry));
- if (NS_WARN_IF(NS_FAILED(rv))) {
- return rv;
- }
-
- nsCOMPtr<nsIFile> originDir = do_QueryInterface(persistenceDirEntry);
- MOZ_ASSERT(originDir);
-
rv = originDir->Exists(&exists);
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
}
MOZ_ASSERT(exists);
rv = originDir->IsDirectory(&isDirectory);
@@ -18515,17 +18478,17 @@ Maintenance::DirectoryWork()
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
}
if (NS_WARN_IF(!isDirectory)) {
continue;
}
- nsCOMPtr<nsISimpleEnumerator> idbDirEntries;
+ nsCOMPtr<nsIDirectoryEnumerator> idbDirEntries;
rv = idbDir->GetDirectoryEntries(getter_AddRefs(idbDirEntries));
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
}
if (!idbDirEntries) {
continue;
}
@@ -18536,35 +18499,26 @@ Maintenance::DirectoryWork()
nsTArray<nsString> databasePaths;
while (true) {
// Loop over files in the "idb" directory.
if (IsAborted()) {
return NS_ERROR_ABORT;
}
- bool idbDirHasMoreEntries;
- rv = idbDirEntries->HasMoreElements(&idbDirHasMoreEntries);
+ nsCOMPtr<nsIFile> idbDirFile;
+ rv = idbDirEntries->GetNextFile(getter_AddRefs(idbDirFile));
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
}
- if (!idbDirHasMoreEntries) {
+ if (!idbDirFile) {
break;
}
- nsCOMPtr<nsISupports> idbDirEntry;
- rv = idbDirEntries->GetNext(getter_AddRefs(idbDirEntry));
- if (NS_WARN_IF(NS_FAILED(rv))) {
- return rv;
- }
-
- nsCOMPtr<nsIFile> idbDirFile = do_QueryInterface(idbDirEntry);
- MOZ_ASSERT(idbDirFile);
-
nsString idbFilePath;
rv = idbDirFile->GetPath(idbFilePath);
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
}
if (!StringEndsWith(idbFilePath, sqliteExtension)) {
continue;
--- a/dom/indexedDB/test/unit/xpcshell-head-parent-process.js
+++ b/dom/indexedDB/test/unit/xpcshell-head-parent-process.js
@@ -335,18 +335,17 @@ function getChromeFilesDir()
let idbDir = profileDir.clone();
idbDir.append("storage");
idbDir.append("permanent");
idbDir.append("chrome");
idbDir.append("idb");
let idbEntries = idbDir.directoryEntries;
while (idbEntries.hasMoreElements()) {
- let entry = idbEntries.getNext();
- let file = entry.QueryInterface(Ci.nsIFile);
+ let file = idbEntries.nextFile;
if (file.isDirectory()) {
return file;
}
}
throw new Error("files directory doesn't exist!");
}
--- a/dom/media/gtest/TestCDMStorage.cpp
+++ b/dom/media/gtest/TestCDMStorage.cpp
@@ -39,35 +39,24 @@ GetAbstractGMPThread()
}
/**
* Enumerate files under |aPath| (non-recursive).
*/
template<typename T>
static nsresult
EnumerateDir(nsIFile* aPath, T&& aDirIter)
{
- nsCOMPtr<nsISimpleEnumerator> iter;
+ nsCOMPtr<nsIDirectoryEnumerator> iter;
nsresult rv = aPath->GetDirectoryEntries(getter_AddRefs(iter));
if (NS_FAILED(rv)) {
return rv;
}
- bool hasMore = false;
- while (NS_SUCCEEDED(iter->HasMoreElements(&hasMore)) && hasMore) {
- nsCOMPtr<nsISupports> supports;
- rv = iter->GetNext(getter_AddRefs(supports));
- if (NS_FAILED(rv)) {
- continue;
- }
-
- nsCOMPtr<nsIFile> entry(do_QueryInterface(supports, &rv));
- if (NS_FAILED(rv)) {
- continue;
- }
-
+ nsCOMPtr<nsIFile> entry;
+ while (NS_SUCCEEDED(iter->GetNextFile(getter_AddRefs(entry))) && entry) {
aDirIter(entry);
}
return NS_OK;
}
/**
* Enumerate files under $profileDir/gmp/$platform/gmp-fake/$aDir/ (non-recursive).
*/
--- a/dom/plugins/base/nsPluginHost.cpp
+++ b/dom/plugins/base/nsPluginHost.cpp
@@ -2089,33 +2089,25 @@ nsresult nsPluginHost::ScanPluginsDirect
nsAutoCString dirPath;
pluginsDir->GetNativePath(dirPath);
PLUGIN_LOG(PLUGIN_LOG_BASIC,
("nsPluginHost::ScanPluginsDirectory dir=%s\n", dirPath.get()));
#endif
bool flashOnly = Preferences::GetBool("plugin.load_flash_only", true);
- nsCOMPtr<nsISimpleEnumerator> iter;
+ nsCOMPtr<nsIDirectoryEnumerator> iter;
rv = pluginsDir->GetDirectoryEntries(getter_AddRefs(iter));
if (NS_FAILED(rv))
return rv;
AutoTArray<nsCOMPtr<nsIFile>, 6> pluginFiles;
- bool hasMore;
- while (NS_SUCCEEDED(iter->HasMoreElements(&hasMore)) && hasMore) {
- nsCOMPtr<nsISupports> supports;
- rv = iter->GetNext(getter_AddRefs(supports));
- if (NS_FAILED(rv))
- continue;
- nsCOMPtr<nsIFile> dirEntry(do_QueryInterface(supports, &rv));
- if (NS_FAILED(rv))
- continue;
-
+ nsCOMPtr<nsIFile> dirEntry;
+ while (NS_SUCCEEDED(iter->GetNextFile(getter_AddRefs(dirEntry))) && dirEntry) {
// Sun's JRE 1.3.1 plugin must have symbolic links resolved or else it'll crash.
// See bug 197855.
dirEntry->Normalize();
if (nsPluginsDir::IsPluginFile(dirEntry)) {
pluginFiles.AppendElement(dirEntry);
}
}
--- a/dom/quota/ActorsParent.cpp
+++ b/dom/quota/ActorsParent.cpp
@@ -1966,33 +1966,24 @@ GetLastModifiedTime(nsIFile* aFile, bool
timestamp *= int64_t(PR_USEC_PER_MSEC);
if (timestamp > *aTimestamp) {
*aTimestamp = timestamp;
}
return NS_OK;
}
- nsCOMPtr<nsISimpleEnumerator> entries;
+ nsCOMPtr<nsIDirectoryEnumerator> entries;
rv = aFile->GetDirectoryEntries(getter_AddRefs(entries));
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
}
- bool hasMore;
- while (NS_SUCCEEDED((rv = entries->HasMoreElements(&hasMore))) && hasMore) {
- nsCOMPtr<nsISupports> entry;
- rv = entries->GetNext(getter_AddRefs(entry));
- if (NS_WARN_IF(NS_FAILED(rv))) {
- return rv;
- }
-
- nsCOMPtr<nsIFile> file = do_QueryInterface(entry);
- MOZ_ASSERT(file);
-
+ nsCOMPtr<nsIFile> file;
+ while (NS_SUCCEEDED((rv = entries->GetNextFile(getter_AddRefs(file)))) && file) {
rv = GetLastModifiedTime(file, aTimestamp);
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
}
}
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
}
@@ -4223,33 +4214,24 @@ QuotaManager::InitializeRepository(Persi
}
bool created;
rv = EnsureDirectory(directory, &created);
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
}
- nsCOMPtr<nsISimpleEnumerator> entries;
+ nsCOMPtr<nsIDirectoryEnumerator> entries;
rv = directory->GetDirectoryEntries(getter_AddRefs(entries));
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
}
- bool hasMore;
- while (NS_SUCCEEDED((rv = entries->HasMoreElements(&hasMore))) && hasMore) {
- nsCOMPtr<nsISupports> entry;
- rv = entries->GetNext(getter_AddRefs(entry));
- if (NS_WARN_IF(NS_FAILED(rv))) {
- return rv;
- }
-
- nsCOMPtr<nsIFile> childDirectory = do_QueryInterface(entry);
- MOZ_ASSERT(childDirectory);
-
+ nsCOMPtr<nsIFile> childDirectory;
+ while (NS_SUCCEEDED((rv = entries->GetNextFile(getter_AddRefs(childDirectory)))) && childDirectory) {
bool isDirectory;
rv = childDirectory->IsDirectory(&isDirectory);
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
}
if (!isDirectory) {
nsString leafName;
@@ -4311,29 +4293,22 @@ QuotaManager::InitializeOrigin(Persisten
// We need to initialize directories of all clients if they exists and also
// get the total usage to initialize the quota.
nsAutoPtr<UsageInfo> usageInfo;
if (trackQuota) {
usageInfo = new UsageInfo();
}
- nsCOMPtr<nsISimpleEnumerator> entries;
+ nsCOMPtr<nsIDirectoryEnumerator> entries;
rv = aDirectory->GetDirectoryEntries(getter_AddRefs(entries));
NS_ENSURE_SUCCESS(rv, rv);
- bool hasMore;
- while (NS_SUCCEEDED((rv = entries->HasMoreElements(&hasMore))) && hasMore) {
- nsCOMPtr<nsISupports> entry;
- rv = entries->GetNext(getter_AddRefs(entry));
- NS_ENSURE_SUCCESS(rv, rv);
-
- nsCOMPtr<nsIFile> file = do_QueryInterface(entry);
- NS_ENSURE_TRUE(file, NS_NOINTERFACE);
-
+ nsCOMPtr<nsIFile> file;
+ while (NS_SUCCEEDED((rv = entries->GetNextFile(getter_AddRefs(file)))) && file) {
bool isDirectory;
rv = file->IsDirectory(&isDirectory);
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
}
nsString leafName;
rv = file->GetLeafName(leafName);
@@ -6733,30 +6708,23 @@ QuotaUsageRequestBase::GetUsageForOrigin
bool initialized;
if (aPersistenceType == PERSISTENCE_TYPE_PERSISTENT) {
initialized = aQuotaManager->IsOriginInitialized(aOrigin);
} else {
initialized = aQuotaManager->IsTemporaryStorageInitialized();
}
- nsCOMPtr<nsISimpleEnumerator> entries;
+ nsCOMPtr<nsIDirectoryEnumerator> entries;
rv = directory->GetDirectoryEntries(getter_AddRefs(entries));
NS_ENSURE_SUCCESS(rv, rv);
- bool hasMore;
- while (NS_SUCCEEDED((rv = entries->HasMoreElements(&hasMore))) &&
- hasMore && !mCanceled) {
- nsCOMPtr<nsISupports> entry;
- rv = entries->GetNext(getter_AddRefs(entry));
- NS_ENSURE_SUCCESS(rv, rv);
-
- nsCOMPtr<nsIFile> file = do_QueryInterface(entry);
- NS_ENSURE_TRUE(file, NS_NOINTERFACE);
-
+ nsCOMPtr<nsIFile> file;
+ while (NS_SUCCEEDED((rv = entries->GetNextFile(getter_AddRefs(file)))) &&
+ file && !mCanceled) {
bool isDirectory;
rv = file->IsDirectory(&isDirectory);
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
}
nsString leafName;
rv = file->GetLeafName(leafName);
@@ -6899,36 +6867,27 @@ GetUsageOp::TraverseRepository(QuotaMana
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
}
if (!exists) {
return NS_OK;
}
- nsCOMPtr<nsISimpleEnumerator> entries;
+ nsCOMPtr<nsIDirectoryEnumerator> entries;
rv = directory->GetDirectoryEntries(getter_AddRefs(entries));
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
}
bool persistent = aPersistenceType == PERSISTENCE_TYPE_PERSISTENT;
- bool hasMore;
- while (NS_SUCCEEDED((rv = entries->HasMoreElements(&hasMore))) &&
- hasMore && !mCanceled) {
- nsCOMPtr<nsISupports> entry;
- rv = entries->GetNext(getter_AddRefs(entry));
- if (NS_WARN_IF(NS_FAILED(rv))) {
- return rv;
- }
-
- nsCOMPtr<nsIFile> originDir = do_QueryInterface(entry);
- MOZ_ASSERT(originDir);
-
+ nsCOMPtr<nsIFile> originDir;
+ while (NS_SUCCEEDED((rv = entries->GetNextFile(getter_AddRefs(originDir)))) &&
+ originDir && !mCanceled) {
bool isDirectory;
rv = originDir->IsDirectory(&isDirectory);
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
}
if (!isDirectory) {
nsString leafName;
@@ -7401,44 +7360,35 @@ ClearRequestBase::DeleteFiles(QuotaManag
nsCOMPtr<nsIFile> directory;
nsresult rv = NS_NewLocalFile(aQuotaManager->GetStoragePath(aPersistenceType),
false, getter_AddRefs(directory));
if (NS_WARN_IF(NS_FAILED(rv))) {
return;
}
- nsCOMPtr<nsISimpleEnumerator> entries;
+ nsCOMPtr<nsIDirectoryEnumerator> entries;
if (NS_WARN_IF(NS_FAILED(
directory->GetDirectoryEntries(getter_AddRefs(entries)))) || !entries) {
return;
}
OriginScope originScope = mOriginScope.Clone();
if (originScope.IsOrigin()) {
nsCString originSanitized(originScope.GetOrigin());
SanitizeOriginString(originSanitized);
originScope.SetOrigin(originSanitized);
} else if (originScope.IsPrefix()) {
nsCString prefixSanitized(originScope.GetPrefix());
SanitizeOriginString(prefixSanitized);
originScope.SetPrefix(prefixSanitized);
}
- bool hasMore;
- while (NS_SUCCEEDED((rv = entries->HasMoreElements(&hasMore))) && hasMore) {
- nsCOMPtr<nsISupports> entry;
- rv = entries->GetNext(getter_AddRefs(entry));
- if (NS_WARN_IF(NS_FAILED(rv))) {
- return;
- }
-
- nsCOMPtr<nsIFile> file = do_QueryInterface(entry);
- MOZ_ASSERT(file);
-
+ nsCOMPtr<nsIFile> file;
+ while (NS_SUCCEEDED((rv = entries->GetNextFile(getter_AddRefs(file)))) && file) {
bool isDirectory;
rv = file->IsDirectory(&isDirectory);
if (NS_WARN_IF(NS_FAILED(rv))) {
return;
}
nsString leafName;
rv = file->GetLeafName(leafName);
@@ -8571,33 +8521,25 @@ CreateOrUpgradeDirectoryMetadataHelper::
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
}
if (!exists) {
return NS_OK;
}
- nsCOMPtr<nsISimpleEnumerator> entries;
+ nsCOMPtr<nsIDirectoryEnumerator> entries;
rv = mDirectory->GetDirectoryEntries(getter_AddRefs(entries));
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
}
- bool hasMore;
- while (NS_SUCCEEDED((rv = entries->HasMoreElements(&hasMore))) && hasMore) {
- nsCOMPtr<nsISupports> entry;
- rv = entries->GetNext(getter_AddRefs(entry));
- if (NS_WARN_IF(NS_FAILED(rv))) {
- return rv;
- }
-
- nsCOMPtr<nsIFile> originDir = do_QueryInterface(entry);
- MOZ_ASSERT(originDir);
-
+ nsCOMPtr<nsIFile> originDir;
+ while (NS_SUCCEEDED((rv = entries->GetNextFile(getter_AddRefs(originDir)))) &&
+ originDir) {
nsString leafName;
rv = originDir->GetLeafName(leafName);
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
}
bool isDirectory;
rv = originDir->IsDirectory(&isDirectory);
@@ -8737,35 +8679,25 @@ CreateOrUpgradeDirectoryMetadataHelper::
}
}
else {
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
}
}
- nsCOMPtr<nsISimpleEnumerator> entries;
+ nsCOMPtr<nsIDirectoryEnumerator> entries;
rv = aDirectory->GetDirectoryEntries(getter_AddRefs(entries));
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
}
- bool hasMore;
- while (NS_SUCCEEDED((rv = entries->HasMoreElements(&hasMore))) && hasMore) {
- nsCOMPtr<nsISupports> entry;
- rv = entries->GetNext(getter_AddRefs(entry));
- if (NS_WARN_IF(NS_FAILED(rv))) {
- return rv;
- }
-
- nsCOMPtr<nsIFile> file = do_QueryInterface(entry);
- if (NS_WARN_IF(!file)) {
- return rv;
- }
-
+ nsCOMPtr<nsIFile> file;
+ while (NS_SUCCEEDED((rv = entries->GetNextFile(getter_AddRefs(file)))) &&
+ file) {
nsString leafName;
rv = file->GetLeafName(leafName);
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
}
if (!leafName.Equals(idbDirectoryName)) {
rv = file->MoveTo(idbDirectory, EmptyString());
@@ -8903,33 +8835,25 @@ UpgradeStorageFrom0_0To1_0Helper::DoUpgr
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
}
if (!exists) {
return NS_OK;
}
- nsCOMPtr<nsISimpleEnumerator> entries;
+ nsCOMPtr<nsIDirectoryEnumerator> entries;
rv = mDirectory->GetDirectoryEntries(getter_AddRefs(entries));
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
}
- bool hasMore;
- while (NS_SUCCEEDED((rv = entries->HasMoreElements(&hasMore))) && hasMore) {
- nsCOMPtr<nsISupports> entry;
- rv = entries->GetNext(getter_AddRefs(entry));
- if (NS_WARN_IF(NS_FAILED(rv))) {
- return rv;
- }
-
- nsCOMPtr<nsIFile> originDir = do_QueryInterface(entry);
- MOZ_ASSERT(originDir);
-
+ nsCOMPtr<nsIFile> originDir;
+ while (NS_SUCCEEDED((rv = entries->GetNextFile(getter_AddRefs(originDir)))) &&
+ originDir) {
bool isDirectory;
rv = originDir->IsDirectory(&isDirectory);
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
}
if (!isDirectory) {
nsString leafName;
@@ -9036,33 +8960,24 @@ nsresult
UpgradeStorageFrom1_0To2_0Helper::DoUpgrade()
{
AssertIsOnIOThread();
DebugOnly<bool> exists;
MOZ_ASSERT(NS_SUCCEEDED(mDirectory->Exists(&exists)));
MOZ_ASSERT(exists);
- nsCOMPtr<nsISimpleEnumerator> entries;
+ nsCOMPtr<nsIDirectoryEnumerator> entries;
nsresult rv = mDirectory->GetDirectoryEntries(getter_AddRefs(entries));
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
}
- bool hasMore;
- while (NS_SUCCEEDED((rv = entries->HasMoreElements(&hasMore))) && hasMore) {
- nsCOMPtr<nsISupports> entry;
- rv = entries->GetNext(getter_AddRefs(entry));
- if (NS_WARN_IF(NS_FAILED(rv))) {
- return rv;
- }
-
- nsCOMPtr<nsIFile> originDir = do_QueryInterface(entry);
- MOZ_ASSERT(originDir);
-
+ nsCOMPtr<nsIFile> originDir;
+ while (NS_SUCCEEDED((rv = entries->GetNextFile(getter_AddRefs(originDir)))) && originDir) {
bool isDirectory;
rv = originDir->IsDirectory(&isDirectory);
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
}
if (!isDirectory) {
nsString leafName;
@@ -9148,36 +9063,25 @@ UpgradeStorageFrom1_0To2_0Helper::MaybeU
const OriginProps& aOriginProps)
{
AssertIsOnIOThread();
MOZ_ASSERT(aOriginProps.mDirectory);
QuotaManager* quotaManager = QuotaManager::Get();
MOZ_ASSERT(quotaManager);
- nsCOMPtr<nsISimpleEnumerator> entries;
+ nsCOMPtr<nsIDirectoryEnumerator> entries;
nsresult rv =
aOriginProps.mDirectory->GetDirectoryEntries(getter_AddRefs(entries));
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
}
- bool hasMore;
- while (NS_SUCCEEDED((rv = entries->HasMoreElements(&hasMore))) && hasMore) {
- nsCOMPtr<nsISupports> entry;
- rv = entries->GetNext(getter_AddRefs(entry));
- if (NS_WARN_IF(NS_FAILED(rv))) {
- return rv;
- }
-
- nsCOMPtr<nsIFile> file = do_QueryInterface(entry);
- if (NS_WARN_IF(!file)) {
- return rv;
- }
-
+ nsCOMPtr<nsIFile> file;
+ while (NS_SUCCEEDED((rv = entries->GetNextFile(getter_AddRefs(file)))) && file) {
bool isDirectory;
rv = file->IsDirectory(&isDirectory);
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
}
nsString leafName;
rv = file->GetLeafName(leafName);
@@ -9374,33 +9278,24 @@ nsresult
UpgradeStorageFrom2_0To2_1Helper::DoUpgrade()
{
AssertIsOnIOThread();
DebugOnly<bool> exists;
MOZ_ASSERT(NS_SUCCEEDED(mDirectory->Exists(&exists)));
MOZ_ASSERT(exists);
- nsCOMPtr<nsISimpleEnumerator> entries;
+ nsCOMPtr<nsIDirectoryEnumerator> entries;
nsresult rv = mDirectory->GetDirectoryEntries(getter_AddRefs(entries));
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
}
- bool hasMore;
- while (NS_SUCCEEDED((rv = entries->HasMoreElements(&hasMore))) && hasMore) {
- nsCOMPtr<nsISupports> entry;
- rv = entries->GetNext(getter_AddRefs(entry));
- if (NS_WARN_IF(NS_FAILED(rv))) {
- return rv;
- }
-
- nsCOMPtr<nsIFile> originDir = do_QueryInterface(entry);
- MOZ_ASSERT(originDir);
-
+ nsCOMPtr<nsIFile> originDir;
+ while (NS_SUCCEEDED((rv = entries->GetNextFile(getter_AddRefs(originDir)))) && originDir) {
bool isDirectory;
rv = originDir->IsDirectory(&isDirectory);
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
}
if (!isDirectory) {
nsString leafName;
@@ -9478,36 +9373,25 @@ UpgradeStorageFrom2_0To2_1Helper::MaybeU
const OriginProps& aOriginProps)
{
AssertIsOnIOThread();
MOZ_ASSERT(aOriginProps.mDirectory);
QuotaManager* quotaManager = QuotaManager::Get();
MOZ_ASSERT(quotaManager);
- nsCOMPtr<nsISimpleEnumerator> entries;
+ nsCOMPtr<nsIDirectoryEnumerator> entries;
nsresult rv =
aOriginProps.mDirectory->GetDirectoryEntries(getter_AddRefs(entries));
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
}
- bool hasMore;
- while (NS_SUCCEEDED((rv = entries->HasMoreElements(&hasMore))) && hasMore) {
- nsCOMPtr<nsISupports> entry;
- rv = entries->GetNext(getter_AddRefs(entry));
- if (NS_WARN_IF(NS_FAILED(rv))) {
- return rv;
- }
-
- nsCOMPtr<nsIFile> file = do_QueryInterface(entry);
- if (NS_WARN_IF(!file)) {
- return rv;
- }
-
+ nsCOMPtr<nsIFile> file;
+ while (NS_SUCCEEDED((rv = entries->GetNextFile(getter_AddRefs(file)))) && file) {
bool isDirectory;
rv = file->IsDirectory(&isDirectory);
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
}
nsString leafName;
rv = file->GetLeafName(leafName);
--- a/dom/webbrowserpersist/nsWebBrowserPersist.cpp
+++ b/dom/webbrowserpersist/nsWebBrowserPersist.cpp
@@ -1881,63 +1881,51 @@ void nsWebBrowserPersist::CleanupLocalFi
// children looking for files. Any files created by the
// persist object would have been deleted by the first
// pass so if there are any there at this stage, the dir
// cannot be deleted because it has someone else's files
// in it. Empty child dirs are deleted but they must be
// recursed through to ensure they are actually empty.
bool isEmptyDirectory = true;
- nsCOMArray<nsISimpleEnumerator> dirStack;
+ nsCOMArray<nsIDirectoryEnumerator> dirStack;
int32_t stackSize = 0;
// Push the top level enum onto the stack
- nsCOMPtr<nsISimpleEnumerator> pos;
+ nsCOMPtr<nsIDirectoryEnumerator> pos;
if (NS_SUCCEEDED(file->GetDirectoryEntries(getter_AddRefs(pos))))
dirStack.AppendObject(pos);
while (isEmptyDirectory && (stackSize = dirStack.Count()))
{
// Pop the last element
- nsCOMPtr<nsISimpleEnumerator> curPos;
+ nsCOMPtr<nsIDirectoryEnumerator> curPos;
curPos = dirStack[stackSize-1];
dirStack.RemoveObjectAt(stackSize - 1);
- // Test if the enumerator has any more files in it
- bool hasMoreElements = false;
- curPos->HasMoreElements(&hasMoreElements);
- if (!hasMoreElements)
+ nsCOMPtr<nsIFile> child;
+ if (NS_FAILED(curPos->GetNextFile(getter_AddRefs(child))) || !child)
{
continue;
}
- // Child files automatically make this code drop out,
- // while child dirs keep the loop going.
- nsCOMPtr<nsISupports> child;
- curPos->GetNext(getter_AddRefs(child));
- NS_ASSERTION(child, "No child element, but hasMoreElements says otherwise");
- if (!child)
- continue;
- nsCOMPtr<nsIFile> childAsFile = do_QueryInterface(child);
- NS_ASSERTION(childAsFile, "This should be a file but isn't");
-
bool childIsSymlink = false;
- childAsFile->IsSymlink(&childIsSymlink);
+ child->IsSymlink(&childIsSymlink);
bool childIsDir = false;
- childAsFile->IsDirectory(&childIsDir);
+ child->IsDirectory(&childIsDir);
if (!childIsDir || childIsSymlink)
{
// Some kind of file or symlink which means dir
// is not empty so just drop out.
isEmptyDirectory = false;
break;
}
// Push parent enumerator followed by child enumerator
- nsCOMPtr<nsISimpleEnumerator> childPos;
- childAsFile->GetDirectoryEntries(getter_AddRefs(childPos));
+ nsCOMPtr<nsIDirectoryEnumerator> childPos;
+ child->GetDirectoryEntries(getter_AddRefs(childPos));
dirStack.AppendObject(curPos);
if (childPos)
dirStack.AppendObject(childPos);
}
dirStack.Clear();
// If after all that walking the dir is deemed empty, delete it
--- a/extensions/spellcheck/hunspell/glue/mozHunspell.cpp
+++ b/extensions/spellcheck/hunspell/glue/mozHunspell.cpp
@@ -416,25 +416,21 @@ mozHunspell::LoadDictionariesFromDir(nsI
rv = aDir->Exists(&check);
if (NS_FAILED(rv) || !check)
return NS_ERROR_UNEXPECTED;
rv = aDir->IsDirectory(&check);
if (NS_FAILED(rv) || !check)
return NS_ERROR_UNEXPECTED;
- nsCOMPtr<nsISimpleEnumerator> e;
- rv = aDir->GetDirectoryEntries(getter_AddRefs(e));
+ nsCOMPtr<nsIDirectoryEnumerator> files;
+ rv = aDir->GetDirectoryEntries(getter_AddRefs(files));
if (NS_FAILED(rv))
return NS_ERROR_UNEXPECTED;
- nsCOMPtr<nsIDirectoryEnumerator> files(do_QueryInterface(e));
- if (!files)
- return NS_ERROR_UNEXPECTED;
-
nsCOMPtr<nsIFile> file;
while (NS_SUCCEEDED(files->GetNextFile(getter_AddRefs(file))) && file) {
nsAutoString leafName;
file->GetLeafName(leafName);
if (!StringEndsWith(leafName, NS_LITERAL_STRING(".dic")))
continue;
nsAutoString dict(leafName);
--- a/gfx/thebes/gfxGDIFontList.cpp
+++ b/gfx/thebes/gfxGDIFontList.cpp
@@ -1157,32 +1157,24 @@ gfxGDIFontList::ActivateBundledFonts()
if (NS_FAILED(localDir->Append(NS_LITERAL_STRING("fonts")))) {
return;
}
bool isDir;
if (NS_FAILED(localDir->IsDirectory(&isDir)) || !isDir) {
return;
}
- nsCOMPtr<nsISimpleEnumerator> e;
+ nsCOMPtr<nsIDirectoryEnumerator> e;
rv = localDir->GetDirectoryEntries(getter_AddRefs(e));
if (NS_FAILED(rv)) {
return;
}
- bool hasMore;
- while (NS_SUCCEEDED(e->HasMoreElements(&hasMore)) && hasMore) {
- nsCOMPtr<nsISupports> entry;
- if (NS_FAILED(e->GetNext(getter_AddRefs(entry)))) {
- break;
- }
- nsCOMPtr<nsIFile> file = do_QueryInterface(entry);
- if (!file) {
- continue;
- }
+ nsCOMPtr<nsIFile> file;
+ while (NS_SUCCEEDED(e->GetNextFile(getter_AddRefs(file))) && file) {
nsAutoString path;
if (NS_FAILED(file->GetPath(path))) {
continue;
}
AddFontResourceExW(path.get(), FR_PRIVATE, nullptr);
}
}
--- a/intl/hyphenation/glue/nsHyphenationManager.cpp
+++ b/intl/hyphenation/glue/nsHyphenationManager.cpp
@@ -246,27 +246,22 @@ nsHyphenationManager::LoadPatternListFro
return;
}
rv = aDir->IsDirectory(&check);
if (NS_FAILED(rv) || !check) {
return;
}
- nsCOMPtr<nsISimpleEnumerator> e;
- rv = aDir->GetDirectoryEntries(getter_AddRefs(e));
+ nsCOMPtr<nsIDirectoryEnumerator> files;
+ rv = aDir->GetDirectoryEntries(getter_AddRefs(files));
if (NS_FAILED(rv)) {
return;
}
- nsCOMPtr<nsIDirectoryEnumerator> files(do_QueryInterface(e));
- if (!files) {
- return;
- }
-
nsCOMPtr<nsIFile> file;
while (NS_SUCCEEDED(files->GetNextFile(getter_AddRefs(file))) && file){
nsAutoString dictName;
file->GetLeafName(dictName);
NS_ConvertUTF16toUTF8 locale(dictName);
ToLowerCase(locale);
if (!StringEndsWith(locale, NS_LITERAL_CSTRING(".dic"))) {
continue;
--- a/layout/style/nsLayoutStylesheetCache.cpp
+++ b/layout/style/nsLayoutStylesheetCache.cpp
@@ -506,42 +506,32 @@ ListInterestingFiles(nsString& aAnnotati
bool isDir = false;
aFile->IsDirectory(&isDir);
if (!isDir) {
return;
}
- nsCOMPtr<nsISimpleEnumerator> entries;
+ nsCOMPtr<nsIDirectoryEnumerator> entries;
if (NS_FAILED(aFile->GetDirectoryEntries(getter_AddRefs(entries)))) {
aAnnotation.AppendLiteral(" (failed to enumerated directory)\n");
return;
}
for (;;) {
- bool hasMore = false;
- if (NS_FAILED(entries->HasMoreElements(&hasMore))) {
+ nsCOMPtr<nsIFile> file;
+ if (NS_FAILED(entries->GetNextFile(getter_AddRefs(file)))) {
aAnnotation.AppendLiteral(" (failed during directory enumeration)\n");
return;
}
- if (!hasMore) {
+ if (!file) {
break;
}
-
- nsCOMPtr<nsISupports> entry;
- if (NS_FAILED(entries->GetNext(getter_AddRefs(entry)))) {
- aAnnotation.AppendLiteral(" (failed during directory enumeration)\n");
- return;
- }
-
- nsCOMPtr<nsIFile> file = do_QueryInterface(entry);
- if (file) {
- ListInterestingFiles(aAnnotation, file, aInterestingFilenames);
- }
+ ListInterestingFiles(aAnnotation, file, aInterestingFilenames);
}
}
// Generate a crash report annotation to help debug issues with style
// sheets failing to load (bug 1194856).
static void
AnnotateCrashReport(nsIURI* aURI)
{
--- a/layout/tools/reftest/reftest.jsm
+++ b/layout/tools/reftest/reftest.jsm
@@ -1251,17 +1251,17 @@ function FindUnexpectedCrashDumpFiles()
let entries = g.crashDumpDir.directoryEntries;
if (!entries) {
return;
}
let foundCrashDumpFile = false;
while (entries.hasMoreElements()) {
- let file = entries.getNext().QueryInterface(Ci.nsIFile);
+ let file = entries.nextFile;
let path = String(file.path);
if (path.match(/\.(dmp|extra)$/) && !g.unexpectedCrashDumpFiles[path]) {
if (!foundCrashDumpFile) {
++g.testResults.UnexpectedFail;
foundCrashDumpFile = true;
if (g.currentURL) {
logger.testStatus(g.urls[0].identifier, "crash-check", "FAIL", "PASS", "This test left crash dumps behind, but we weren't expecting it to!");
} else {
@@ -1277,17 +1277,17 @@ function FindUnexpectedCrashDumpFiles()
function RemovePendingCrashDumpFiles()
{
if (!g.pendingCrashDumpDir.exists()) {
return;
}
let entries = g.pendingCrashDumpDir.directoryEntries;
while (entries.hasMoreElements()) {
- let file = entries.getNext().QueryInterface(Ci.nsIFile);
+ let file = entries.nextFile;
if (file.isFile()) {
file.remove(false);
logger.info("This test left pending crash dumps; deleted "+file.path);
}
}
}
function CleanUpCrashDumpFiles()
--- a/modules/libjar/zipwriter/test/unit/test_bug446708.js
+++ b/modules/libjar/zipwriter/test/unit/test_bug446708.js
@@ -15,17 +15,17 @@ function AddToZip(zipWriter, path, file)
// THIS IS WHERE THE ERROR OCCURS, FOR THE FILE "st14-1.tiff" IN "test_bug446708"
zipWriter.addEntryFile(currentPath, Ci.nsIZipWriter.COMPRESSION_DEFAULT, file, false);
// if it's a dir, continue adding its contents recursively...
if (file.isDirectory()) {
var entries = file.QueryInterface(Ci.nsIFile).directoryEntries;
while (entries.hasMoreElements()) {
- var entry = entries.getNext().QueryInterface(Ci.nsIFile);
+ var entry = entries.nextFile;
AddToZip(zipWriter, currentPath, entry);
}
}
// ...otherwise, we're done
}
function RecursivelyZipDirectory(bundle)
--- a/modules/libpref/Preferences.cpp
+++ b/modules/libpref/Preferences.cpp
@@ -3982,48 +3982,38 @@ pref_CompareFileNames(nsIFile* aFile1, n
// sorted reverse-alphabetically; a set of "special file names" may be
// specified which are loaded after all the others.
static nsresult
pref_LoadPrefsInDir(nsIFile* aDir,
char const* const* aSpecialFiles,
uint32_t aSpecialFilesCount)
{
nsresult rv, rv2;
- bool hasMoreElements;
-
- nsCOMPtr<nsISimpleEnumerator> dirIterator;
+
+ nsCOMPtr<nsIDirectoryEnumerator> dirIterator;
// This may fail in some normal cases, such as embedders who do not use a
// GRE.
rv = aDir->GetDirectoryEntries(getter_AddRefs(dirIterator));
if (NS_FAILED(rv)) {
// If the directory doesn't exist, then we have no reason to complain. We
// loaded everything (and nothing) successfully.
if (rv == NS_ERROR_FILE_NOT_FOUND ||
rv == NS_ERROR_FILE_TARGET_DOES_NOT_EXIST) {
rv = NS_OK;
}
return rv;
}
- rv = dirIterator->HasMoreElements(&hasMoreElements);
- NS_ENSURE_SUCCESS(rv, rv);
-
nsCOMArray<nsIFile> prefFiles(INITIAL_PREF_FILES);
nsCOMArray<nsIFile> specialFiles(aSpecialFilesCount);
nsCOMPtr<nsIFile> prefFile;
- while (hasMoreElements && NS_SUCCEEDED(rv)) {
- nsCOMPtr<nsISupports> supports;
- rv = dirIterator->GetNext(getter_AddRefs(supports));
- prefFile = do_QueryInterface(supports);
- if (NS_FAILED(rv)) {
- break;
- }
-
+ while (NS_SUCCEEDED(dirIterator->GetNextFile(getter_AddRefs(prefFile))) &&
+ prefFile) {
nsAutoCString leafName;
prefFile->GetNativeLeafName(leafName);
MOZ_ASSERT(
!leafName.IsEmpty(),
"Failure in default prefs: directory enumerator returned empty file?");
// Skip non-js files.
if (StringEndsWith(leafName,
@@ -4040,18 +4030,16 @@ pref_LoadPrefsInDir(nsIFile* aDir,
specialFiles.ReplaceObjectAt(prefFile, i);
}
}
if (shouldParse) {
prefFiles.AppendObject(prefFile);
}
}
-
- rv = dirIterator->HasMoreElements(&hasMoreElements);
}
if (prefFiles.Count() + specialFiles.Count() == 0) {
NS_WARNING("No default pref files found.");
if (NS_SUCCEEDED(rv)) {
rv = NS_SUCCESS_FILE_DIRECTORY_EMPTY;
}
return rv;
--- a/netwerk/base/nsDirectoryIndexStream.cpp
+++ b/netwerk/base/nsDirectoryIndexStream.cpp
@@ -91,33 +91,27 @@ nsDirectoryIndexStream::Init(nsIFile* aD
if (MOZ_LOG_TEST(gLog, LogLevel::Debug)) {
MOZ_LOG(gLog, LogLevel::Debug,
("nsDirectoryIndexStream[%p]: initialized on %s",
this, aDir->HumanReadablePath().get()));
}
// Sigh. We have to allocate on the heap because there are no
// assignment operators defined.
- nsCOMPtr<nsISimpleEnumerator> iter;
+ nsCOMPtr<nsIDirectoryEnumerator> iter;
rv = aDir->GetDirectoryEntries(getter_AddRefs(iter));
if (NS_FAILED(rv)) return rv;
// Now lets sort, because clients expect it that way
// XXX - should we do so here, or when the first item is requested?
// XXX - use insertion sort instead?
- bool more;
- nsCOMPtr<nsISupports> elem;
- while (NS_SUCCEEDED(iter->HasMoreElements(&more)) && more) {
- rv = iter->GetNext(getter_AddRefs(elem));
- if (NS_SUCCEEDED(rv)) {
- nsCOMPtr<nsIFile> file = do_QueryInterface(elem);
- if (file)
- mArray.AppendObject(file); // addrefs
- }
+ nsCOMPtr<nsIFile> file;
+ while (NS_SUCCEEDED(iter->GetNextFile(getter_AddRefs(file))) && file) {
+ mArray.AppendObject(file); // addrefs
}
#ifdef THREADSAFE_I18N
nsCOMPtr<nsICollationFactory> cf = do_CreateInstance(NS_COLLATIONFACTORY_CONTRACTID,
&rv);
if (NS_FAILED(rv)) return rv;
nsCOMPtr<nsICollation> coll;
--- a/netwerk/cache/nsDeleteDir.cpp
+++ b/netwerk/cache/nsDeleteDir.cpp
@@ -327,34 +327,25 @@ nsDeleteDir::RemoveOldTrashes(nsIFile *c
#if defined(MOZ_WIDGET_ANDROID)
rv = trash->GetParent(getter_AddRefs(parent));
#else
rv = cacheDir->GetParent(getter_AddRefs(parent));
#endif
if (NS_FAILED(rv))
return rv;
- nsCOMPtr<nsISimpleEnumerator> iter;
+ nsCOMPtr<nsIDirectoryEnumerator> iter;
rv = parent->GetDirectoryEntries(getter_AddRefs(iter));
if (NS_FAILED(rv))
return rv;
- bool more;
- nsCOMPtr<nsISupports> elem;
nsAutoPtr<nsCOMArray<nsIFile> > dirList;
- while (NS_SUCCEEDED(iter->HasMoreElements(&more)) && more) {
- rv = iter->GetNext(getter_AddRefs(elem));
- if (NS_FAILED(rv))
- continue;
-
- nsCOMPtr<nsIFile> file = do_QueryInterface(elem);
- if (!file)
- continue;
-
+ nsCOMPtr<nsIFile> file;
+ while (NS_SUCCEEDED(iter->GetNextFile(getter_AddRefs(file))) && file) {
nsAutoString leafName;
rv = file->GetLeafName(leafName);
if (NS_FAILED(rv))
continue;
// match all names that begin with the trash name (i.e. "Cache.Trash")
if (Substring(leafName, 0, trashName.Length()).Equals(trashName)) {
if (!dirList)
@@ -411,36 +402,23 @@ nsDeleteDir::RemoveDir(nsIFile *file, bo
return NS_ERROR_UNEXPECTED;
bool isDir;
rv = file->IsDirectory(&isDir);
if (NS_FAILED(rv))
return rv;
if (isDir) {
- nsCOMPtr<nsISimpleEnumerator> iter;
+ nsCOMPtr<nsIDirectoryEnumerator> iter;
rv = file->GetDirectoryEntries(getter_AddRefs(iter));
if (NS_FAILED(rv))
return rv;
- bool more;
- nsCOMPtr<nsISupports> elem;
- while (NS_SUCCEEDED(iter->HasMoreElements(&more)) && more) {
- rv = iter->GetNext(getter_AddRefs(elem));
- if (NS_FAILED(rv)) {
- NS_WARNING("Unexpected failure in nsDeleteDir::RemoveDir");
- continue;
- }
-
- nsCOMPtr<nsIFile> file2 = do_QueryInterface(elem);
- if (!file2) {
- NS_WARNING("Unexpected failure in nsDeleteDir::RemoveDir");
- continue;
- }
-
+ nsCOMPtr<nsIFile> file2;
+ while (NS_SUCCEEDED(iter->GetNextFile(getter_AddRefs(file2))) && file2) {
RemoveDir(file2, stopDeleting);
// No check for errors to remove as much as possible
if (*stopDeleting)
return NS_OK;
}
}
--- a/netwerk/cache2/CacheFileContextEvictor.cpp
+++ b/netwerk/cache2/CacheFileContextEvictor.cpp
@@ -335,23 +335,18 @@ CacheFileContextEvictor::LoadEvictInfoFr
LOG(("CacheFileContextEvictor::LoadEvictInfoFromDisk() [this=%p]", this));
nsresult rv;
MOZ_ASSERT(CacheFileIOManager::IsOnIOThread());
sDiskAlreadySearched = true;
- nsCOMPtr<nsISimpleEnumerator> enumerator;
- rv = mCacheDirectory->GetDirectoryEntries(getter_AddRefs(enumerator));
- if (NS_WARN_IF(NS_FAILED(rv))) {
- return rv;
- }
-
- nsCOMPtr<nsIDirectoryEnumerator> dirEnum = do_QueryInterface(enumerator, &rv);
+ nsCOMPtr<nsIDirectoryEnumerator> dirEnum;
+ rv = mCacheDirectory->GetDirectoryEntries(getter_AddRefs(dirEnum));
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
}
while (true) {
nsCOMPtr<nsIFile> file;
rv = dirEnum->GetNextFile(getter_AddRefs(file));
if (!file) {
--- a/netwerk/cache2/CacheFileIOManager.cpp
+++ b/netwerk/cache2/CacheFileIOManager.cpp
@@ -3491,22 +3491,18 @@ CacheFileIOManager::RemoveTrashInternal(
rv = FindTrashDirToRemove();
if (rv == NS_ERROR_NOT_AVAILABLE) {
LOG(("CacheFileIOManager::RemoveTrashInternal() - No trash directory "
"found."));
return NS_OK;
}
NS_ENSURE_SUCCESS(rv, rv);
- nsCOMPtr<nsISimpleEnumerator> enumerator;
- rv = mTrashDir->GetDirectoryEntries(getter_AddRefs(enumerator));
- if (NS_SUCCEEDED(rv)) {
- mTrashDirEnumerator = do_QueryInterface(enumerator, &rv);
- NS_ENSURE_SUCCESS(rv, rv);
- }
+ rv = mTrashDir->GetDirectoryEntries(getter_AddRefs(mTrashDirEnumerator));
+ NS_ENSURE_SUCCESS(rv, rv);
continue; // check elapsed time
}
// We null out mTrashDirEnumerator once we remove all files in the
// directory, so remove the trash directory if we don't have enumerator.
if (!mTrashDirEnumerator) {
rv = mTrashDir->Remove(false);
@@ -3556,34 +3552,22 @@ CacheFileIOManager::FindTrashDirToRemove
LOG(("CacheFileIOManager::FindTrashDirToRemove()"));
nsresult rv;
// We call this method on the main thread during shutdown when user wants to
// remove all cache files.
MOZ_ASSERT(mIOThread->IsCurrentThread() || mShuttingDown);
- nsCOMPtr<nsISimpleEnumerator> iter;
+ nsCOMPtr<nsIDirectoryEnumerator> iter;
rv = mCacheDirectory->GetDirectoryEntries(getter_AddRefs(iter));
NS_ENSURE_SUCCESS(rv, rv);
- bool more;
- nsCOMPtr<nsISupports> elem;
-
- while (NS_SUCCEEDED(iter->HasMoreElements(&more)) && more) {
- rv = iter->GetNext(getter_AddRefs(elem));
- if (NS_FAILED(rv)) {
- continue;
- }
-
- nsCOMPtr<nsIFile> file = do_QueryInterface(elem);
- if (!file) {
- continue;
- }
-
+ nsCOMPtr<nsIFile> file;
+ while (NS_SUCCEEDED(iter->GetNextFile(getter_AddRefs(file))) && file) {
bool isDir = false;
file->IsDirectory(&isDir);
if (!isDir) {
continue;
}
nsAutoCString leafName;
rv = file->GetNativeLeafName(leafName);
--- a/netwerk/cache2/CacheIndex.cpp
+++ b/netwerk/cache2/CacheIndex.cpp
@@ -2683,21 +2683,17 @@ CacheIndex::SetupDirectoryEnumerator()
if (!exists) {
NS_WARNING("CacheIndex::SetupDirectoryEnumerator() - Entries directory "
"doesn't exist!");
LOG(("CacheIndex::SetupDirectoryEnumerator() - Entries directory doesn't "
"exist!" ));
return NS_ERROR_UNEXPECTED;
}
- nsCOMPtr<nsISimpleEnumerator> enumerator;
- rv = file->GetDirectoryEntries(getter_AddRefs(enumerator));
- NS_ENSURE_SUCCESS(rv, rv);
-
- mDirEnumerator = do_QueryInterface(enumerator, &rv);
+ rv = file->GetDirectoryEntries(getter_AddRefs(mDirEnumerator));
NS_ENSURE_SUCCESS(rv, rv);
return NS_OK;
}
nsresult
CacheIndex::InitEntryFromDiskData(CacheIndexEntry *aEntry,
CacheFileMetadata *aMetaData,
--- a/netwerk/test/httpserver/httpd.js
+++ b/netwerk/test/httpserver/httpd.js
@@ -2096,17 +2096,17 @@ function defaultIndexHandler(metadata, r
var directory = metadata.getProperty("directory");
NS_ASSERT(directory && directory.isDirectory());
var fileList = [];
var files = directory.directoryEntries;
while (files.hasMoreElements())
{
- var f = files.getNext().QueryInterface(Ci.nsIFile);
+ var f = files.nextFile;
var name = f.leafName;
if (!f.isHidden() &&
(name.charAt(name.length - 1) != HIDDEN_CHAR ||
name.charAt(name.length - 2) == HIDDEN_CHAR))
fileList.push(f);
}
fileList.sort(fileSort);
--- a/testing/mochitest/browser-test.js
+++ b/testing/mochitest/browser-test.js
@@ -754,17 +754,17 @@ Tester.prototype = {
if (gConfig.cleanupCrashes) {
let gdir = Services.dirsvc.get("UAppData", Ci.nsIFile);
gdir.append("Crash Reports");
gdir.append("pending");
if (gdir.exists()) {
let entries = gdir.directoryEntries;
while (entries.hasMoreElements()) {
- let entry = entries.getNext().QueryInterface(Ci.nsIFile);
+ let entry = entries.nextFile;
if (entry.isFile()) {
let msg = "this test left a pending crash report; ";
try {
entry.remove(false);
msg += "deleted " + entry.path;
} catch (e) {
msg += "could not delete " + entry.path;
}
--- a/testing/mochitest/server.js
+++ b/testing/mochitest/server.js
@@ -376,18 +376,17 @@ function serverDebug(metadata, response)
/**
* Creates a generator that iterates over the contents of
* an nsIFile directory.
*/
function* dirIter(dir) {
var en = dir.directoryEntries;
while (en.hasMoreElements()) {
- var file = en.getNext();
- yield file.QueryInterface(Ci.nsIFile);
+ yield en.nextFile;
}
}
/**
* Builds an optionally nested object containing links to the
* files and directories within dir.
*/
function list(requestPath, directory, recurse) {
--- a/testing/specialpowers/content/SpecialPowersObserverAPI.js
+++ b/testing/specialpowers/content/SpecialPowersObserverAPI.js
@@ -175,32 +175,32 @@ SpecialPowersObserverAPI.prototype = {
var crashDumpDir = this._getCrashDumpDir();
var entries = crashDumpDir.exists() && crashDumpDir.directoryEntries;
if (!entries) {
return [];
}
var crashDumpFiles = [];
while (entries.hasMoreElements()) {
- var file = entries.getNext().QueryInterface(Ci.nsIFile);
+ var file = entries.nextFile;
var path = String(file.path);
if (path.match(/\.(dmp|extra)$/) && !aToIgnore[path]) {
crashDumpFiles.push(path);
}
}
return crashDumpFiles.concat();
},
_deletePendingCrashDumpFiles() {
var crashDumpDir = this._getPendingCrashDumpDir();
var removed = false;
if (crashDumpDir.exists()) {
let entries = crashDumpDir.directoryEntries;
while (entries.hasMoreElements()) {
- let file = entries.getNext().QueryInterface(Ci.nsIFile);
+ let file = entries.nextFile;
if (file.isFile()) {
file.remove(false);
removed = true;
}
}
}
return removed;
},
--- a/toolkit/components/extensions/test/xpcshell/test_ext_downloads_download.js
+++ b/toolkit/components/extensions/test/xpcshell/test_ext_downloads_download.js
@@ -29,17 +29,17 @@ function setup() {
Services.prefs.setComplexValue("browser.download.dir", Ci.nsIFile, downloadDir);
registerCleanupFunction(() => {
Services.prefs.clearUserPref("browser.download.folderList");
Services.prefs.clearUserPref("browser.download.dir");
let entries = downloadDir.directoryEntries;
while (entries.hasMoreElements()) {
- let entry = entries.getNext().QueryInterface(Ci.nsIFile);
+ let entry = entries.nextFile;
ok(false, `Leftover file ${entry.path} in download directory`);
entry.remove(false);
}
downloadDir.remove(false);
});
}
--- a/toolkit/components/extensions/test/xpcshell/test_ext_downloads_private.js
+++ b/toolkit/components/extensions/test/xpcshell/test_ext_downloads_private.js
@@ -20,17 +20,17 @@ function setup() {
Services.prefs.setComplexValue("browser.download.dir", Ci.nsIFile, downloadDir);
registerCleanupFunction(() => {
Services.prefs.clearUserPref("browser.download.folderList");
Services.prefs.clearUserPref("browser.download.dir");
let entries = downloadDir.directoryEntries;
while (entries.hasMoreElements()) {
- let entry = entries.getNext().QueryInterface(Ci.nsIFile);
+ let entry = entries.nextFile;
ok(false, `Leftover file ${entry.path} in download directory`);
entry.remove(false);
}
downloadDir.remove(false);
});
}
--- a/toolkit/components/feeds/test/head.js
+++ b/toolkit/components/feeds/test/head.js
@@ -47,18 +47,17 @@ function readTestData(testFile) {
}
function iterateDir(dir, recurse, callback) {
info("Iterate " + dir.leafName);
let entries = dir.directoryEntries;
// Loop over everything in this dir. If its a dir
while (entries.hasMoreElements()) {
- let entry = entries.getNext();
- entry.QueryInterface(Ci.nsIFile);
+ let entry = entries.nextFile;
if (entry.isDirectory()) {
if (recurse) {
iterateDir(entry, recurse, callback);
}
} else {
callback(entry);
}
--- a/toolkit/components/osfile/tests/mochi/main_test_osfile_async.js
+++ b/toolkit/components/osfile/tests/mochi/main_test_osfile_async.js
@@ -111,17 +111,17 @@ var reference_fetch_file = function refe
});
};
var reference_dir_contents = function reference_dir_contents(path) {
let result = [];
let entries = new FileUtils.File(path).directoryEntries;
while (entries.hasMoreElements()) {
- let entry = entries.getNext().QueryInterface(Ci.nsIFile);
+ let entry = entries.nextFile;
result.push(entry.path);
}
return result;
};
// Set/Unset OS.Shared.DEBUG, OS.Shared.TEST and a console listener.
function toggleDebugTest(pref, consoleListener) {
Services.prefs.setBoolPref("toolkit.osfile.log", pref);
--- a/toolkit/components/places/tests/bookmarks/test_477583_json-backup-in-future.js
+++ b/toolkit/components/places/tests/bookmarks/test_477583_json-backup-in-future.js
@@ -5,28 +5,28 @@
"use strict";
add_task(async function test_json_backup_in_future() {
let backupFolder = await PlacesBackups.getBackupFolder();
let bookmarksBackupDir = new FileUtils.File(backupFolder);
// Remove all files from backups folder.
let files = bookmarksBackupDir.directoryEntries;
while (files.hasMoreElements()) {
- let entry = files.getNext().QueryInterface(Ci.nsIFile);
+ let entry = files.nextFile;
entry.remove(false);
}
// Create a json dummy backup in the future.
let dateObj = new Date();
dateObj.setYear(dateObj.getFullYear() + 1);
let name = PlacesBackups.getFilenameForDate(dateObj);
Assert.equal(name, "bookmarks-" + PlacesBackups.toISODateString(dateObj) + ".json");
files = bookmarksBackupDir.directoryEntries;
while (files.hasMoreElements()) {
- let entry = files.getNext().QueryInterface(Ci.nsIFile);
+ let entry = files.nextFile;
if (PlacesBackups.filenamesRegex.test(entry.leafName))
entry.remove(false);
}
let futureBackupFile = bookmarksBackupDir.clone();
futureBackupFile.append(name);
futureBackupFile.create(Ci.nsIFile.NORMAL_FILE_TYPE, 0o600);
Assert.ok(futureBackupFile.exists());
--- a/toolkit/components/places/tests/head_common.js
+++ b/toolkit/components/places/tests/head_common.js
@@ -496,17 +496,17 @@ function remove_all_JSON_backups() {
*/
function check_JSON_backup(aIsAutomaticBackup) {
let profileBookmarksJSONFile;
if (aIsAutomaticBackup) {
let bookmarksBackupDir = gProfD.clone();
bookmarksBackupDir.append("bookmarkbackups");
let files = bookmarksBackupDir.directoryEntries;
while (files.hasMoreElements()) {
- let entry = files.getNext().QueryInterface(Ci.nsIFile);
+ let entry = files.nextFile;
if (PlacesBackups.filenamesRegex.test(entry.leafName)) {
profileBookmarksJSONFile = entry;
break;
}
}
} else {
profileBookmarksJSONFile = gProfD.clone();
profileBookmarksJSONFile.append("bookmarkbackups");
--- a/toolkit/components/places/tests/unit/test_utils_backups_create.js
+++ b/toolkit/components/places/tests/unit/test_utils_backups_create.js
@@ -50,17 +50,17 @@ add_task(async function() {
// oldest backup should have been removed.
for (let i = 0; i < dates.length; i++) {
let backupFilename;
let shouldExist;
let backupFile;
if (i > 0) {
let files = bookmarksBackupDir.directoryEntries;
while (files.hasMoreElements()) {
- let entry = files.getNext().QueryInterface(Ci.nsIFile);
+ let entry = files.nextFile;
if (PlacesBackups.filenamesRegex.test(entry.leafName)) {
backupFilename = entry.leafName;
backupFile = entry;
break;
}
}
shouldExist = true;
} else {
@@ -73,13 +73,13 @@ add_task(async function() {
do_throw("Backup should " + (shouldExist ? "" : "not") + " exist: " + backupFilename);
}
// Cleanup backups folder.
// XXX: Can't use bookmarksBackupDir.remove(true) because file lock happens
// on WIN XP.
let files = bookmarksBackupDir.directoryEntries;
while (files.hasMoreElements()) {
- let entry = files.getNext().QueryInterface(Ci.nsIFile);
+ let entry = files.nextFile;
entry.remove(false);
}
Assert.ok(!bookmarksBackupDir.directoryEntries.hasMoreElements());
});
--- a/toolkit/components/search/nsSearchService.js
+++ b/toolkit/components/search/nsSearchService.js
@@ -2846,17 +2846,17 @@ SearchService.prototype = {
locations = getDir(NS_APP_DISTRIBUTION_SEARCH_DIR_LIST,
Ci.nsISimpleEnumerator);
} catch (e) {
// NS_APP_DISTRIBUTION_SEARCH_DIR_LIST is defined by each app
// so this throws during unit tests (but not xpcshell tests).
locations = {hasMoreElements: () => false};
}
while (locations.hasMoreElements()) {
- let dir = locations.getNext().QueryInterface(Ci.nsIFile);
+ let dir = locations.nextFile;
if (dir.directoryEntries.hasMoreElements())
distDirs.push(dir);
}
function notInCacheVisibleEngines(aEngineName) {
return !cache.visibleDefaultEngines.includes(aEngineName);
}
@@ -3202,19 +3202,17 @@ SearchService.prototype = {
LOG("Failed to load " + json._name + " from cache: " + ex);
LOG("Engine JSON: " + json.toSource());
}
},
_loadEnginesFromDir: function SRCH_SVC__loadEnginesFromDir(aDir) {
LOG("_loadEnginesFromDir: Searching in " + aDir.path + " for search engines.");
- var files = aDir.directoryEntries
- .QueryInterface(Ci.nsIDirectoryEnumerator);
-
+ var files = aDir.directoryEntries;
while (files.hasMoreElements()) {
var file = files.nextFile;
// Ignore hidden and empty files, and directories
if (!file.isFile() || file.fileSize == 0 || file.isHidden())
continue;
var fileURL = Services.io.newFileURI(file).QueryInterface(Ci.nsIURL);
--- a/toolkit/components/telemetry/Telemetry.cpp
+++ b/toolkit/components/telemetry/Telemetry.cpp
@@ -1095,22 +1095,18 @@ ReadStack(PathCharPtr aFileName, Telemet
}
aStack = stack;
}
void
TelemetryImpl::ReadLateWritesStacks(nsIFile* aProfileDir)
{
- nsCOMPtr<nsISimpleEnumerator> e;
- if (NS_FAILED(aProfileDir->GetDirectoryEntries(getter_AddRefs(e)))) {
- return;
- }
- nsCOMPtr<nsIDirectoryEnumerator> files(do_QueryInterface(e));
- if (!files) {
+ nsCOMPtr<nsIDirectoryEnumerator> files;
+ if (NS_FAILED(aProfileDir->GetDirectoryEntries(getter_AddRefs(files)))) {
return;
}
NS_NAMED_LITERAL_STRING(prefix, "Telemetry.LateWriteFinal-");
nsCOMPtr<nsIFile> file;
while (NS_SUCCEEDED(files->GetNextFile(getter_AddRefs(file))) && file) {
nsAutoString leafName;
if (NS_FAILED(file->GetLeafName(leafName)) ||
--- a/toolkit/components/url-classifier/Classifier.cpp
+++ b/toolkit/components/url-classifier/Classifier.cpp
@@ -328,29 +328,22 @@ Classifier::ResetTables(ClearType aType,
RegenActiveTables();
}
}
void
Classifier::DeleteTables(nsIFile* aDirectory, const nsTArray<nsCString>& aTables)
{
- nsCOMPtr<nsISimpleEnumerator> entries;
+ nsCOMPtr<nsIDirectoryEnumerator> entries;
nsresult rv = aDirectory->GetDirectoryEntries(getter_AddRefs(entries));
NS_ENSURE_SUCCESS_VOID(rv);
- bool hasMore;
- while (NS_SUCCEEDED(rv = entries->HasMoreElements(&hasMore)) && hasMore) {
- nsCOMPtr<nsISupports> supports;
- rv = entries->GetNext(getter_AddRefs(supports));
- NS_ENSURE_SUCCESS_VOID(rv);
-
- nsCOMPtr<nsIFile> file = do_QueryInterface(supports);
- NS_ENSURE_TRUE_VOID(file);
-
+ nsCOMPtr<nsIFile> file;
+ while (NS_SUCCEEDED(rv = entries->GetNextFile(getter_AddRefs(file))) && file) {
// If |file| is a directory, recurse to find its entries as well.
bool isDirectory;
if (NS_FAILED(file->IsDirectory(&isDirectory))) {
continue;
}
if (isDirectory) {
DeleteTables(file, aTables);
continue;
@@ -965,28 +958,22 @@ Classifier::RegenActiveTables()
}
return NS_OK;
}
nsresult
Classifier::ScanStoreDir(nsIFile* aDirectory, nsTArray<nsCString>& aTables)
{
- nsCOMPtr<nsISimpleEnumerator> entries;
+ nsCOMPtr<nsIDirectoryEnumerator> entries;
nsresult rv = aDirectory->GetDirectoryEntries(getter_AddRefs(entries));
NS_ENSURE_SUCCESS(rv, rv);
- bool hasMore;
- while (NS_SUCCEEDED(rv = entries->HasMoreElements(&hasMore)) && hasMore) {
- nsCOMPtr<nsISupports> supports;
- rv = entries->GetNext(getter_AddRefs(supports));
- NS_ENSURE_SUCCESS(rv, rv);
-
- nsCOMPtr<nsIFile> file = do_QueryInterface(supports);
-
+ nsCOMPtr<nsIFile> file;
+ while (NS_SUCCEEDED(rv = entries->GetNextFile(getter_AddRefs(file))) && file) {
// If |file| is a directory, recurse to find its entries as well.
bool isDirectory;
if (NS_FAILED(file->IsDirectory(&isDirectory))) {
continue;
}
if (isDirectory) {
ScanStoreDir(file, aTables);
continue;
@@ -1559,29 +1546,23 @@ Classifier::ReadNoiseEntries(const Prefi
}
return NS_OK;
}
nsresult
Classifier::LoadMetadata(nsIFile* aDirectory, nsACString& aResult)
{
- nsCOMPtr<nsISimpleEnumerator> entries;
+ nsCOMPtr<nsIDirectoryEnumerator> entries;
nsresult rv = aDirectory->GetDirectoryEntries(getter_AddRefs(entries));
NS_ENSURE_SUCCESS(rv, rv);
NS_ENSURE_ARG_POINTER(entries);
- bool hasMore;
- while (NS_SUCCEEDED(rv = entries->HasMoreElements(&hasMore)) && hasMore) {
- nsCOMPtr<nsISupports> supports;
- rv = entries->GetNext(getter_AddRefs(supports));
- NS_ENSURE_SUCCESS(rv, rv);
-
- nsCOMPtr<nsIFile> file = do_QueryInterface(supports);
-
+ nsCOMPtr<nsIFile> file;
+ while (NS_SUCCEEDED(rv = entries->GetNextFile(getter_AddRefs(file))) && file) {
// If |file| is a directory, recurse to find its entries as well.
bool isDirectory;
if (NS_FAILED(file->IsDirectory(&isDirectory))) {
continue;
}
if (isDirectory) {
LoadMetadata(file, aResult);
continue;
--- a/toolkit/content/tests/chrome/RegisterUnregisterChrome.js
+++ b/toolkit/content/tests/chrome/RegisterUnregisterChrome.js
@@ -21,18 +21,17 @@ function copyToTemporaryFile(f) {
}
function* dirIter(directory) {
var testsDir = Services.io.newURI(directory)
.QueryInterface(Ci.nsIFileURL).file;
let en = testsDir.directoryEntries;
while (en.hasMoreElements()) {
- let file = en.getNext();
- yield file.QueryInterface(Ci.nsIFile);
+ yield en.nextFile;
}
}
function getParent(path) {
let lastSlash = path.lastIndexOf("/");
if (lastSlash == -1) {
lastSlash = path.lastIndexOf("\\");
if (lastSlash == -1) {
--- a/toolkit/crashreporter/CrashReports.jsm
+++ b/toolkit/crashreporter/CrashReports.jsm
@@ -19,17 +19,17 @@ var CrashReports = {
// Ignore any non http/https urls
if (!/^https?:/i.test(Services.prefs.getCharPref("breakpad.reportURL")))
return reports;
} catch (e) { }
if (this.submittedDir.exists() && this.submittedDir.isDirectory()) {
let entries = this.submittedDir.directoryEntries;
while (entries.hasMoreElements()) {
- let file = entries.getNext().QueryInterface(Ci.nsIFile);
+ let file = entries.nextFile;
let leaf = file.leafName;
if (leaf.startsWith("bp-") &&
leaf.endsWith(".txt")) {
let entry = {
id: leaf.slice(0, -4),
date: file.lastModifiedTime,
pending: false
};
@@ -37,17 +37,17 @@ var CrashReports = {
}
}
}
if (this.pendingDir.exists() && this.pendingDir.isDirectory()) {
let uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
let entries = this.pendingDir.directoryEntries;
while (entries.hasMoreElements()) {
- let file = entries.getNext().QueryInterface(Ci.nsIFile);
+ let file = entries.nextFile;
let leaf = file.leafName;
let id = leaf.slice(0, -4);
if (leaf.endsWith(".dmp") && uuidRegex.test(id)) {
let entry = {
id,
date: file.lastModifiedTime,
pending: true
};
--- a/toolkit/crashreporter/test/browser/browser_clearReports.js
+++ b/toolkit/crashreporter/test/browser/browser_clearReports.js
@@ -103,17 +103,17 @@ add_task(async function test() {
let existing = [ file1.path, file2.path, report1.path, report2.path,
report3.path, submitdir.path, pendingdir.path ];
await ContentTask.spawn(browser, null, clickClearReports);
for (let dir of dirs) {
let entries = dir.directoryEntries;
while (entries.hasMoreElements()) {
- let file = entries.getNext().QueryInterface(Ci.nsIFile);
+ let file = entries.nextFile;
let index = existing.indexOf(file.path);
isnot(index, -1, file.leafName + " exists");
if (index != -1) {
existing.splice(index, 1);
}
}
}
--- a/toolkit/crashreporter/test/unit/head_crashreporter.js
+++ b/toolkit/crashreporter/test/unit/head_crashreporter.js
@@ -85,17 +85,17 @@ function do_crash(setup, callback, canRe
}
handleMinidump(callback);
}
function getMinidump() {
let en = do_get_tempdir().directoryEntries;
while (en.hasMoreElements()) {
- let f = en.getNext().QueryInterface(Ci.nsIFile);
+ let f = en.nextFile;
if (f.leafName.substr(-4) == ".dmp") {
return f;
}
}
return null;
}
--- a/toolkit/mozapps/installer/precompile_cache.js
+++ b/toolkit/mozapps/installer/precompile_cache.js
@@ -28,17 +28,17 @@ function dir_entries(baseDir, subpath, e
var dir = baseDir.clone();
dir.append(subpath);
var enumerator = dir.directoryEntries;
} catch (e) {
return [];
}
var entries = [];
while (enumerator.hasMoreElements()) {
- var file = enumerator.getNext().QueryInterface(Ci.nsIFile);
+ var file = enumerator.nextFile;
if (file.isDirectory()) {
entries = entries.concat(dir_entries(dir, file.leafName, ext).map(p => subpath + "/" + p));
} else if (endsWith(file.leafName, ext)) {
entries.push(subpath + "/" + file.leafName);
}
}
return entries;
}
--- a/toolkit/mozapps/update/nsUpdateService.js
+++ b/toolkit/mozapps/update/nsUpdateService.js
@@ -333,17 +333,17 @@ function hasUpdateMutex() {
* Determines whether or not all descendants of a directory are writeable.
* Note: Does not check the root directory itself for writeability.
*
* @return true if all descendants are writeable, false otherwise
*/
function areDirectoryEntriesWriteable(aDir) {
let items = aDir.directoryEntries;
while (items.hasMoreElements()) {
- let item = items.getNext().QueryInterface(Ci.nsIFile);
+ let item = items.nextFile;
if (!item.isWritable()) {
LOG("areDirectoryEntriesWriteable - unable to write to " + item.path);
return false;
}
if (item.isDirectory() && !areDirectoryEntriesWriteable(item)) {
return false;
}
}
@@ -810,17 +810,17 @@ function cleanUpUpdatesDir(aRemovePatchF
LOG("cleanUpUpdatesDir - failed to rename file " + updateLogFile.path +
" to " + FILE_LAST_UPDATE_LOG);
}
}
if (aRemovePatchFiles) {
let dirEntries = updateDir.directoryEntries;
while (dirEntries.hasMoreElements()) {
- let file = dirEntries.getNext().QueryInterface(Ci.nsIFile);
+ let file = dirEntries.nextFile;
// Now, recursively remove this file. The recursive removal is needed for
// Mac OSX because this directory will contain a copy of updater.app,
// which is itself a directory and the MozUpdater directory on platforms
// other than Windows.
try {
file.remove(true);
} catch (e) {
LOG("cleanUpUpdatesDir - failed to remove file " + file.path);
--- a/toolkit/mozapps/update/tests/data/shared.js
+++ b/toolkit/mozapps/update/tests/data/shared.js
@@ -447,17 +447,17 @@ function removeUpdateDirsAndFiles() {
*/
function cleanUpdatesDir(aDir) {
if (!aDir.exists()) {
return;
}
let dirEntries = aDir.directoryEntries;
while (dirEntries.hasMoreElements()) {
- let entry = dirEntries.getNext().QueryInterface(Ci.nsIFile);
+ let entry = dirEntries.nextFile;
if (entry.isDirectory()) {
if (entry.leafName == DIR_PATCH && entry.parent.leafName == DIR_UPDATES) {
cleanUpdatesDir(entry);
entry.permissions = PERMS_DIRECTORY;
} else {
try {
entry.remove(true);
@@ -505,17 +505,17 @@ function removeDirRecursive(aDir) {
aDir.remove(true);
return;
} catch (e) {
logTestInfo("non-fatal error removing directory. Exception: " + e);
}
let dirEntries = aDir.directoryEntries;
while (dirEntries.hasMoreElements()) {
- let entry = dirEntries.getNext().QueryInterface(Ci.nsIFile);
+ let entry = dirEntries.nextFile;
if (entry.isDirectory()) {
removeDirRecursive(entry);
} else {
entry.permissions = PERMS_FILE;
try {
debugDump("attempting to remove file. Path: " + entry.path);
entry.remove(false);
--- a/toolkit/mozapps/update/tests/data/xpcshellUtilsAUS.js
+++ b/toolkit/mozapps/update/tests/data/xpcshellUtilsAUS.js
@@ -3668,17 +3668,17 @@ function checkForBackupFiles(aFile) {
*/
function checkFilesInDirRecursive(aDir, aCallback) {
if (!aDir.exists()) {
do_throw("Directory must exist!");
}
let dirEntries = aDir.directoryEntries;
while (dirEntries.hasMoreElements()) {
- let entry = dirEntries.getNext().QueryInterface(Ci.nsIFile);
+ let entry = dirEntries.nextFile;
if (entry.exists()) {
if (entry.isDirectory()) {
checkFilesInDirRecursive(entry, aCallback);
} else {
aCallback(entry);
}
}
--- a/widget/tests/test_bug1123480.xul
+++ b/widget/tests/test_bug1123480.xul
@@ -50,17 +50,17 @@ https://bugzilla.mozilla.org/show_bug.cg
// Path from nsAnonymousTemporaryFile.cpp, GetTempDir.
dir = FileUtils.getFile("TmpD", ["mozilla-temp-files"]);
} else {
dir = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile);
dir.initWithPath("/dev/fd");
}
var count = 0;
for (var de = dir.directoryEntries; de.hasMoreElements(); ) {
- var fdFile = de.getNext().QueryInterface(Ci.nsIFile);
+ var fdFile = de.nextFile;
var fileSize;
try {
fileSize = fdFile.fileSize;
} catch (e) {
// This can happen on macOS.
continue;
}
if (fileSize === IpsumByteLength) {
--- a/widget/tests/test_transferable_overflow.xul
+++ b/widget/tests/test_transferable_overflow.xul
@@ -55,17 +55,17 @@
return AppConstants.platform !== 'win';
}
function getClipboardCacheFDCount() {
var dir = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile);
dir.initWithPath("/dev/fd");
var count = 0;
for (var de = dir.directoryEntries; de.hasMoreElements(); ) {
- var fdFile = de.getNext().QueryInterface(Ci.nsIFile);
+ var fdFile = de.nextFile;
var fileSize;
try {
fileSize = fdFile.fileSize;
} catch (e) {
// This can happen on macOS.
continue;
}
if (fileSize === BIG_STRING.length * 2 ||
--- a/widget/windows/JumpListBuilder.cpp
+++ b/widget/windows/JumpListBuilder.cpp
@@ -270,31 +270,27 @@ nsresult JumpListBuilder::RemoveIconCach
// Construct the path of our jump list cache
nsCOMPtr<nsIFile> jumpListCacheDir;
nsresult rv = NS_GetSpecialDirectory("ProfLDS",
getter_AddRefs(jumpListCacheDir));
NS_ENSURE_SUCCESS(rv, rv);
rv = jumpListCacheDir->AppendNative(nsDependentCString(
mozilla::widget::FaviconHelper::kJumpListCacheDir));
NS_ENSURE_SUCCESS(rv, rv);
- nsCOMPtr<nsISimpleEnumerator> entries;
+
+ nsCOMPtr<nsIDirectoryEnumerator> entries;
rv = jumpListCacheDir->GetDirectoryEntries(getter_AddRefs(entries));
NS_ENSURE_SUCCESS(rv, rv);
// Loop through each directory entry and remove all ICO files found
do {
- bool hasMore = false;
- if (NS_FAILED(entries->HasMoreElements(&hasMore)) || !hasMore)
+ nsCOMPtr<nsIFile> currFile;
+ if (NS_FAILED(entries->GetNextFile(getter_AddRefs(currFile))) || !currFile)
break;
- nsCOMPtr<nsISupports> supp;
- if (NS_FAILED(entries->GetNext(getter_AddRefs(supp))))
- break;
-
- nsCOMPtr<nsIFile> currFile(do_QueryInterface(supp));
nsAutoString path;
if (NS_FAILED(currFile->GetPath(path)))
continue;
if (StringTail(path, 4).LowerCaseEqualsASCII(".ico")) {
// Check if the cached ICO file exists
bool exists;
if (NS_FAILED(currFile->Exists(&exists)) || !exists)
--- a/widget/windows/WinUtils.cpp
+++ b/widget/windows/WinUtils.cpp
@@ -1459,31 +1459,28 @@ NS_IMETHODIMP AsyncDeleteAllFaviconsFrom
{
if (!mJumpListCacheDir) {
return NS_ERROR_FAILURE;
}
// Construct the path of our jump list cache
nsresult rv = mJumpListCacheDir->AppendNative(
nsDependentCString(FaviconHelper::kJumpListCacheDir));
NS_ENSURE_SUCCESS(rv, rv);
- nsCOMPtr<nsISimpleEnumerator> entries;
+
+ nsCOMPtr<nsIDirectoryEnumerator> entries;
rv = mJumpListCacheDir->GetDirectoryEntries(getter_AddRefs(entries));
NS_ENSURE_SUCCESS(rv, rv);
// Loop through each directory entry and remove all ICO files found
do {
- bool hasMore = false;
- if (NS_FAILED(entries->HasMoreElements(&hasMore)) || !hasMore)
+ nsCOMPtr<nsIFile> currFile;
+ if (NS_FAILED(entries->GetNextFile(getter_AddRefs(currFile))) ||
+ !currFile)
break;
- nsCOMPtr<nsISupports> supp;
- if (NS_FAILED(entries->GetNext(getter_AddRefs(supp))))
- break;
-
- nsCOMPtr<nsIFile> currFile(do_QueryInterface(supp));
nsAutoString path;
if (NS_FAILED(currFile->GetPath(path)))
continue;
if (StringTail(path, 4).LowerCaseEqualsASCII(".ico")) {
// Check if the cached ICO file exists
bool exists;
if (NS_FAILED(currFile->Exists(&exists)) || !exists)
--- a/xpcom/io/nsLocalFileUnix.cpp
+++ b/xpcom/io/nsLocalFileUnix.cpp
@@ -724,30 +724,23 @@ nsLocalFile::CopyDirectoryTo(nsIFile* aN
if (dirCheck) {
return NS_ERROR_FILE_ALREADY_EXISTS; // dest exists
}
if (NS_FAILED(rv = aNewParent->Create(DIRECTORY_TYPE, oldPerms))) {
return rv;
}
}
- nsCOMPtr<nsISimpleEnumerator> dirIterator;
+ nsCOMPtr<nsIDirectoryEnumerator> dirIterator;
if (NS_FAILED(rv = GetDirectoryEntries(getter_AddRefs(dirIterator)))) {
return rv;
}
- bool hasMore = false;
- while (NS_SUCCEEDED(dirIterator->HasMoreElements(&hasMore)) && hasMore) {
- nsCOMPtr<nsISupports> supports;
- nsCOMPtr<nsIFile> entry;
- rv = dirIterator->GetNext(getter_AddRefs(supports));
- entry = do_QueryInterface(supports);
- if (NS_FAILED(rv) || !entry) {
- continue;
- }
+ nsCOMPtr<nsIFile> entry;
+ while (NS_SUCCEEDED(dirIterator->GetNextFile(getter_AddRefs(entry))) && entry) {
if (NS_FAILED(rv = entry->IsSymlink(&isSymlink))) {
return rv;
}
if (NS_FAILED(rv = entry->IsDirectory(&dirCheck))) {
return rv;
}
if (dirCheck && !isSymlink) {
nsCOMPtr<nsIFile> destClone;
--- a/xpcom/io/nsLocalFileWin.cpp
+++ b/xpcom/io/nsLocalFileWin.cpp
@@ -2005,46 +2005,40 @@ nsLocalFile::CopyMove(nsIFile* aParentDi
RefPtr<nsDirEnumerator> dirEnum = new nsDirEnumerator();
rv = dirEnum->Init(this);
if (NS_FAILED(rv)) {
NS_WARNING("dirEnum initialization failed");
return rv;
}
- bool more = false;
- while (NS_SUCCEEDED(dirEnum->HasMoreElements(&more)) && more) {
- nsCOMPtr<nsISupports> item;
- nsCOMPtr<nsIFile> file;
- dirEnum->GetNext(getter_AddRefs(item));
- file = do_QueryInterface(item);
- if (file) {
- bool isDir, isLink;
-
- file->IsDirectory(&isDir);
- file->IsSymlink(&isLink);
-
- if (move) {
- if (followSymlinks) {
- return NS_ERROR_FAILURE;
- }
-
- rv = file->MoveTo(target, EmptyString());
- if (NS_FAILED(rv)) {
- return rv;
- }
+ nsCOMPtr<nsIFile> file;
+ while (NS_SUCCEEDED(dirEnum->GetNextFile(getter_AddRefs(file))) && file) {
+ bool isDir, isLink;
+
+ file->IsDirectory(&isDir);
+ file->IsSymlink(&isLink);
+
+ if (move) {
+ if (followSymlinks) {
+ return NS_ERROR_FAILURE;
+ }
+
+ rv = file->MoveTo(target, EmptyString());
+ if (NS_FAILED(rv)) {
+ return rv;
+ }
+ } else {
+ if (followSymlinks) {
+ rv = file->CopyToFollowingLinks(target, EmptyString());
} else {
- if (followSymlinks) {
- rv = file->CopyToFollowingLinks(target, EmptyString());
- } else {
- rv = file->CopyTo(target, EmptyString());
- }
- if (NS_FAILED(rv)) {
- return rv;
- }
+ rv = file->CopyTo(target, EmptyString());
+ }
+ if (NS_FAILED(rv)) {
+ return rv;
}
}
}
// we've finished moving all the children of this directory
// in the new directory. so now delete the directory
// note, we don't need to do a recursive delete.
// MoveTo() is recursive. At this point,
// we've already moved the children of the current folder
--- a/xpcom/tests/unit/test_bug478086.js
+++ b/xpcom/tests/unit/test_bug478086.js
@@ -13,12 +13,12 @@ function run_test() {
root.initWithPath("\\\\.");
} else {
return; // XXX disabled, since this causes intermittent failures on Mac (bug 481369).
// root.initWithPath("/");
}
var drives = root.directoryEntries;
Assert.ok(drives.hasMoreElements());
while (drives.hasMoreElements()) {
- var newPath = drives.getNext().QueryInterface(nsIFile).path;
+ var newPath = drives.nextFile.path;
Assert.equal(newPath.indexOf("\0"), -1);
}
}
--- a/xpcom/tests/unit/test_symlinks.js
+++ b/xpcom/tests/unit/test_symlinks.js
@@ -113,17 +113,17 @@ function testSymLinks(testDir, relative)
const files = [FILE_TARGET].concat(fileLinks);
const links = otherLinks.concat(dirLinks, fileLinks);
const spaces = createSpaces(dirs, files, links);
const bools = {false: " false", true: " true "};
print(spaces + " dir file symlink");
var dirEntries = testDir.directoryEntries;
while (dirEntries.hasMoreElements()) {
- const file = dirEntries.getNext().QueryInterface(nsIFile);
+ const file = dirEntries.nextFile;
const name = file.leafName;
print(name + spaces.substring(name.length) + bools[file.isDirectory()] +
bools[file.isFile()] + bools[file.isSymlink()]);
Assert.equal(file.isDirectory(), dirs.includes(name));
Assert.equal(file.isFile(), files.includes(name));
Assert.equal(file.isSymlink(), links.includes(name));
}
}