| Index: webkit/fileapi/file_system_operation.cc
|
| diff --git a/webkit/fileapi/file_system_operation.cc b/webkit/fileapi/file_system_operation.cc
|
| index 6a88b6f3bd19d0c228a295260cdc3b675475a442..0e2e823603ffadaf6ca2635d1102a75e739711be 100644
|
| --- a/webkit/fileapi/file_system_operation.cc
|
| +++ b/webkit/fileapi/file_system_operation.cc
|
| @@ -36,11 +36,10 @@ void FileSystemOperation::CreateFile(const FilePath& path,
|
| pending_operation_ = kOperationCreateFile;
|
| #endif
|
|
|
| - base::FileUtilProxy::Create(
|
| - proxy_, path, base::PLATFORM_FILE_CREATE | base::PLATFORM_FILE_READ,
|
| - callback_factory_.NewCallback(
|
| - exclusive ? &FileSystemOperation::DidCreateFileExclusive
|
| - : &FileSystemOperation::DidCreateFileNonExclusive));
|
| + base::FileUtilProxy::EnsureFileExists(
|
| + proxy_, path, callback_factory_.NewCallback(
|
| + exclusive ? &FileSystemOperation::DidEnsureFileExistsExclusive
|
| + : &FileSystemOperation::DidEnsureFileExistsNonExclusive));
|
| }
|
|
|
| void FileSystemOperation::CreateDirectory(const FilePath& path,
|
| @@ -219,23 +218,17 @@ void FileSystemOperation::Cancel(FileSystemOperation* cancel_operation) {
|
| }
|
| }
|
|
|
| -void FileSystemOperation::DidCreateFileExclusive(
|
| - base::PlatformFileError rv,
|
| - base::PassPlatformFile file,
|
| - bool created) {
|
| - DidFinishFileOperation(rv);
|
| +void FileSystemOperation::DidEnsureFileExistsExclusive(
|
| + base::PlatformFileError rv, bool created) {
|
| + if (rv == base::PLATFORM_FILE_OK && !created)
|
| + dispatcher_->DidFail(base::PLATFORM_FILE_ERROR_EXISTS);
|
| + else
|
| + DidFinishFileOperation(rv);
|
| }
|
|
|
| -void FileSystemOperation::DidCreateFileNonExclusive(
|
| - base::PlatformFileError rv,
|
| - base::PassPlatformFile file,
|
| - bool created) {
|
| - // Suppress the already exists error and report success.
|
| - if (rv == base::PLATFORM_FILE_OK ||
|
| - rv == base::PLATFORM_FILE_ERROR_EXISTS)
|
| - dispatcher_->DidSucceed();
|
| - else
|
| - dispatcher_->DidFail(rv);
|
| +void FileSystemOperation::DidEnsureFileExistsNonExclusive(
|
| + base::PlatformFileError rv, bool /* created */) {
|
| + DidFinishFileOperation(rv);
|
| }
|
|
|
| void FileSystemOperation::DidFinishFileOperation(
|
|
|