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, |