| Index: webkit/fileapi/quota_file_util.cc
|
| diff --git a/webkit/fileapi/quota_file_util.cc b/webkit/fileapi/quota_file_util.cc
|
| index 2ab4f79b934c7f4560349a8bf6cef3b33f712970..c6979c5141c76d88783c0080688503ee6dfdf8d5 100644
|
| --- a/webkit/fileapi/quota_file_util.cc
|
| +++ b/webkit/fileapi/quota_file_util.cc
|
| @@ -10,6 +10,7 @@
|
| #include "webkit/fileapi/file_system_operation_context.h"
|
| #include "webkit/fileapi/file_system_path_manager.h"
|
| #include "webkit/fileapi/file_system_quota_util.h"
|
| +#include "webkit/fileapi/native_file_util.h"
|
| #include "webkit/quota/quota_manager.h"
|
|
|
| using quota::QuotaManagerProxy;
|
| @@ -91,7 +92,7 @@ class ScopedOriginUpdateHelper {
|
| } // namespace (anonymous)
|
|
|
| QuotaFileUtil::QuotaFileUtil(FileSystemFileUtil* underlying_file_util)
|
| - : underlying_file_util_(underlying_file_util) {
|
| + : FileSystemFileUtil(underlying_file_util) {
|
| }
|
|
|
| QuotaFileUtil::~QuotaFileUtil() {
|
| @@ -99,7 +100,36 @@ QuotaFileUtil::~QuotaFileUtil() {
|
|
|
| // static
|
| QuotaFileUtil* QuotaFileUtil::CreateDefault() {
|
| - return new QuotaFileUtil(new FileSystemFileUtil());
|
| + return new QuotaFileUtil(new NativeFileUtil());
|
| +}
|
| +
|
| +base::PlatformFileError QuotaFileUtil::Truncate(
|
| + FileSystemOperationContext* fs_context,
|
| + const FilePath& path,
|
| + int64 length) {
|
| + int64 allowed_bytes_growth = fs_context->allowed_bytes_growth();
|
| + ScopedOriginUpdateHelper helper(
|
| + fs_context,
|
| + fs_context->src_origin_url(),
|
| + fs_context->src_type());
|
| +
|
| + int64 growth = 0;
|
| + base::PlatformFileInfo file_info;
|
| + if (!file_util::GetFileInfo(path, &file_info))
|
| + return base::PLATFORM_FILE_ERROR_FAILED;
|
| +
|
| + growth = length - file_info.size;
|
| + if (allowed_bytes_growth != kNoLimit &&
|
| + growth > 0 && growth > allowed_bytes_growth)
|
| + return base::PLATFORM_FILE_ERROR_NO_SPACE;
|
| +
|
| + base::PlatformFileError error = underlying_file_util()->Truncate(
|
| + fs_context, path, length);
|
| +
|
| + if (error == base::PLATFORM_FILE_OK)
|
| + helper.NotifyUpdate(growth);
|
| +
|
| + return error;
|
| }
|
|
|
| base::PlatformFileError QuotaFileUtil::CopyOrMoveFile(
|
| @@ -132,7 +162,7 @@ base::PlatformFileError QuotaFileUtil::CopyOrMoveFile(
|
| growth = -dest_file_info.size;
|
| }
|
|
|
| - base::PlatformFileError error = underlying_file_util_->CopyOrMoveFile(
|
| + base::PlatformFileError error = underlying_file_util()->CopyOrMoveFile(
|
| fs_context, src_file_path, dest_file_path, copy);
|
|
|
| if (error == base::PLATFORM_FILE_OK) {
|
| @@ -159,7 +189,7 @@ base::PlatformFileError QuotaFileUtil::DeleteFile(
|
| file_info.size = 0;
|
| growth = -file_info.size;
|
|
|
| - base::PlatformFileError error = underlying_file_util_->DeleteFile(
|
| + base::PlatformFileError error = underlying_file_util()->DeleteFile(
|
| fs_context, file_path);
|
|
|
| if (error == base::PLATFORM_FILE_OK)
|
| @@ -168,33 +198,4 @@ base::PlatformFileError QuotaFileUtil::DeleteFile(
|
| return error;
|
| }
|
|
|
| -base::PlatformFileError QuotaFileUtil::Truncate(
|
| - FileSystemOperationContext* fs_context,
|
| - const FilePath& path,
|
| - int64 length) {
|
| - int64 allowed_bytes_growth = fs_context->allowed_bytes_growth();
|
| - ScopedOriginUpdateHelper helper(
|
| - fs_context,
|
| - fs_context->src_origin_url(),
|
| - fs_context->src_type());
|
| -
|
| - int64 growth = 0;
|
| - base::PlatformFileInfo file_info;
|
| - if (!file_util::GetFileInfo(path, &file_info))
|
| - return base::PLATFORM_FILE_ERROR_FAILED;
|
| -
|
| - growth = length - file_info.size;
|
| - if (allowed_bytes_growth != kNoLimit &&
|
| - growth > 0 && growth > allowed_bytes_growth)
|
| - return base::PLATFORM_FILE_ERROR_NO_SPACE;
|
| -
|
| - base::PlatformFileError error = underlying_file_util_->Truncate(
|
| - fs_context, path, length);
|
| -
|
| - if (error == base::PLATFORM_FILE_OK)
|
| - helper.NotifyUpdate(growth);
|
| -
|
| - return error;
|
| -}
|
| -
|
| } // namespace fileapi
|
|
|