| Index: base/file_util_proxy.cc
|
| diff --git a/base/file_util_proxy.cc b/base/file_util_proxy.cc
|
| index c63c75f505314e81dc5ca1560c7d1c1b2d45e3de..3cd899fc1ea16a4b58232a1feb5030b697a2fdcf 100644
|
| --- a/base/file_util_proxy.cc
|
| +++ b/base/file_util_proxy.cc
|
| @@ -176,19 +176,6 @@ class CreateTemporaryHelper {
|
| DISALLOW_COPY_AND_ASSIGN(CreateTemporaryHelper);
|
| };
|
|
|
| -PlatformFileError DeleteHelper(const FilePath& file_path, bool recursive) {
|
| - if (!file_util::PathExists(file_path)) {
|
| - return PLATFORM_FILE_ERROR_NOT_FOUND;
|
| - }
|
| - if (!file_util::Delete(file_path, recursive)) {
|
| - if (!recursive && !file_util::IsDirectoryEmpty(file_path)) {
|
| - return PLATFORM_FILE_ERROR_NOT_EMPTY;
|
| - }
|
| - return PLATFORM_FILE_ERROR_FAILED;
|
| - }
|
| - return PLATFORM_FILE_OK;
|
| -}
|
| -
|
| class GetFileInfoHelper {
|
| public:
|
| GetFileInfoHelper()
|
| @@ -297,6 +284,19 @@ PlatformFileError CloseAdapter(PlatformFile file_handle) {
|
| return PLATFORM_FILE_OK;
|
| }
|
|
|
| +PlatformFileError DeleteAdapter(const FilePath& file_path, bool recursive) {
|
| + if (!file_util::PathExists(file_path)) {
|
| + return PLATFORM_FILE_ERROR_NOT_FOUND;
|
| + }
|
| + if (!file_util::Delete(file_path, recursive)) {
|
| + if (!recursive && !file_util::IsDirectoryEmpty(file_path)) {
|
| + return PLATFORM_FILE_ERROR_NOT_EMPTY;
|
| + }
|
| + return PLATFORM_FILE_ERROR_FAILED;
|
| + }
|
| + return PLATFORM_FILE_OK;
|
| +}
|
| +
|
| } // namespace
|
|
|
| // static
|
| @@ -367,10 +367,10 @@ bool FileUtilProxy::Delete(scoped_refptr<MessageLoopProxy> message_loop_proxy,
|
| const FilePath& file_path,
|
| bool recursive,
|
| const StatusCallback& callback) {
|
| - return PostTaskAndReplyWithStatus<PlatformFileError>(
|
| + return RelayFileTask(
|
| message_loop_proxy, FROM_HERE,
|
| - Bind(&DeleteHelper, file_path, recursive), callback,
|
| - new PlatformFileError);
|
| + Bind(&DeleteAdapter, file_path, recursive),
|
| + callback);
|
| }
|
|
|
| // static
|
| @@ -378,10 +378,10 @@ bool FileUtilProxy::RecursiveDelete(
|
| scoped_refptr<MessageLoopProxy> message_loop_proxy,
|
| const FilePath& file_path,
|
| const StatusCallback& callback) {
|
| - return PostTaskAndReplyWithStatus<PlatformFileError>(
|
| + return RelayFileTask(
|
| message_loop_proxy, FROM_HERE,
|
| - Bind(&DeleteHelper, file_path, true /* recursive */), callback,
|
| - new PlatformFileError);
|
| + Bind(&DeleteAdapter, file_path, true /* recursive */),
|
| + callback);
|
| }
|
|
|
| // static
|
| @@ -472,6 +472,19 @@ bool FileUtilProxy::Flush(
|
| }
|
|
|
| // static
|
| +bool FileUtilProxy::RelayFileTask(
|
| + scoped_refptr<MessageLoopProxy> message_loop_proxy,
|
| + const tracked_objects::Location& from_here,
|
| + const FileTask& file_task,
|
| + const StatusCallback& callback) {
|
| + PlatformFileError* result = new PlatformFileError;
|
| + return message_loop_proxy->PostTaskAndReply(
|
| + from_here,
|
| + ReturnAsParam(file_task, result),
|
| + ReplyHelper(callback, Owned(result)));
|
| +}
|
| +
|
| +// static
|
| bool FileUtilProxy::RelayCreateOrOpen(
|
| scoped_refptr<MessageLoopProxy> message_loop_proxy,
|
| const CreateOrOpenTask& open_task,
|
|
|