Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(142)

Unified Diff: webkit/fileapi/obfuscated_file_system_file_util.cc

Issue 7355013: Adding size and last modified time support to FileEnumerator and FileUtilProxy::Entry. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: '' Created 9 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webkit/fileapi/obfuscated_file_system_file_util.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webkit/fileapi/obfuscated_file_system_file_util.cc
diff --git a/webkit/fileapi/obfuscated_file_system_file_util.cc b/webkit/fileapi/obfuscated_file_system_file_util.cc
index b28dc92ce200025c9ed23403b2f27f5f8856728c..cd3268aa66e63721701e70e3a33e6de0f04ced7d 100644
--- a/webkit/fileapi/obfuscated_file_system_file_util.cc
+++ b/webkit/fileapi/obfuscated_file_system_file_util.cc
@@ -174,24 +174,8 @@ PlatformFileError ObfuscatedFileSystemFileUtil::GetFileInfo(
if (!db->GetFileWithPath(virtual_path, &file_id))
return base::PLATFORM_FILE_ERROR_NOT_FOUND;
FileInfo local_info;
- if (!db->GetFileInfo(file_id, &local_info)) {
- NOTREACHED();
- return base::PLATFORM_FILE_ERROR_FAILED;
- }
- if (local_info.is_directory()) {
- file_info->is_directory = true;
- file_info->is_symbolic_link = false;
- file_info->last_modified = local_info.modification_time;
- *platform_file_path = FilePath();
- // We don't fill in ctime or atime.
- return base::PLATFORM_FILE_OK;
- }
- if (local_info.data_path.empty())
- return base::PLATFORM_FILE_ERROR_INVALID_OPERATION;
- FilePath data_path = DataPathToLocalPath(context->src_origin_url(),
- context->src_type(), local_info.data_path);
- return underlying_file_util_->GetFileInfo(
- context, data_path, file_info, platform_file_path);
+ return GetFileInfoInternal(db, context, file_id,
+ &local_info, file_info, platform_file_path);
}
PlatformFileError ObfuscatedFileSystemFileUtil::ReadDirectory(
@@ -232,9 +216,21 @@ PlatformFileError ObfuscatedFileSystemFileUtil::ReadDirectory(
NOTREACHED();
return base::PLATFORM_FILE_ERROR_FAILED;
}
+
+ base::PlatformFileInfo platform_file_info;
+ FilePath file_path;
+ if (GetFileInfoInternal(db, context, file_id,
+ &file_info, &platform_file_info, &file_path) !=
+ base::PLATFORM_FILE_OK) {
+ NOTREACHED();
+ return base::PLATFORM_FILE_ERROR_FAILED;
+ }
+
base::FileUtilProxy::Entry entry;
entry.name = file_info.name;
entry.is_directory = file_info.is_directory();
+ entry.size = entry.is_directory ? 0 : platform_file_info.size;
+ entry.last_modified_time = platform_file_info.last_modified;
entries->push_back(entry);
}
return base::PLATFORM_FILE_OK;
@@ -721,6 +717,39 @@ ObfuscatedFileSystemFileUtil::CreateFileEnumerator(
return new ObfuscatedFileSystemFileEnumerator(db, root_path);
}
+PlatformFileError ObfuscatedFileSystemFileUtil::GetFileInfoInternal(
+ FileSystemDirectoryDatabase* db,
+ FileSystemOperationContext* context,
+ FileId file_id,
+ FileInfo* local_info,
+ base::PlatformFileInfo* file_info,
+ FilePath* platform_file_path) {
+ DCHECK(db);
+ DCHECK(context);
+ DCHECK(file_info);
+ DCHECK(platform_file_path);
+
+ if (!db->GetFileInfo(file_id, local_info)) {
+ NOTREACHED();
+ return base::PLATFORM_FILE_ERROR_FAILED;
+ }
+
+ if (local_info->is_directory()) {
+ file_info->is_directory = true;
+ file_info->is_symbolic_link = false;
+ file_info->last_modified = local_info->modification_time;
+ *platform_file_path = FilePath();
+ // We don't fill in ctime or atime.
+ return base::PLATFORM_FILE_OK;
+ }
+ if (local_info->data_path.empty())
+ return base::PLATFORM_FILE_ERROR_INVALID_OPERATION;
+ FilePath data_path = DataPathToLocalPath(context->src_origin_url(),
+ context->src_type(), local_info->data_path);
+ return underlying_file_util_->GetFileInfo(
+ context, data_path, file_info, platform_file_path);
+}
+
PlatformFileError ObfuscatedFileSystemFileUtil::CreateFile(
FileSystemOperationContext* context,
const GURL& origin_url, FileSystemType type, const FilePath& source_path,
« no previous file with comments | « webkit/fileapi/obfuscated_file_system_file_util.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698