Chromium Code Reviews| Index: webkit/browser/fileapi/local_file_stream_writer.cc |
| diff --git a/webkit/browser/fileapi/local_file_stream_writer.cc b/webkit/browser/fileapi/local_file_stream_writer.cc |
| index 1796de5f4e894afd0dd8ad97cd63b339980b44d0..a5d2d32a8499914b62237852f4a742ca11680b2c 100644 |
| --- a/webkit/browser/fileapi/local_file_stream_writer.cc |
| +++ b/webkit/browser/fileapi/local_file_stream_writer.cc |
| @@ -17,14 +17,19 @@ namespace { |
| const int kOpenFlagsForWrite = base::PLATFORM_FILE_OPEN | |
| base::PLATFORM_FILE_WRITE | |
| base::PLATFORM_FILE_ASYNC; |
| +const int kCreateFlagsForWrite = base::PLATFORM_FILE_CREATE | |
| + base::PLATFORM_FILE_WRITE | |
| + base::PLATFORM_FILE_ASYNC; |
| } // namespace |
| FileStreamWriter* FileStreamWriter::CreateForLocalFile( |
| base::TaskRunner* task_runner, |
| const base::FilePath& file_path, |
| - int64 initial_offset) { |
| - return new LocalFileStreamWriter(task_runner, file_path, initial_offset); |
| + int64 initial_offset, |
| + OpenOrCreate open_or_create) { |
| + return new LocalFileStreamWriter( |
| + task_runner, file_path, initial_offset, open_or_create); |
| } |
| LocalFileStreamWriter::~LocalFileStreamWriter() { |
| @@ -81,8 +86,10 @@ int LocalFileStreamWriter::Flush(const net::CompletionCallback& callback) { |
| LocalFileStreamWriter::LocalFileStreamWriter(base::TaskRunner* task_runner, |
| const base::FilePath& file_path, |
| - int64 initial_offset) |
| + int64 initial_offset, |
| + OpenOrCreate open_or_create) |
| : file_path_(file_path), |
| + open_or_create_(open_or_create), |
| initial_offset_(initial_offset), |
| task_runner_(task_runner), |
| has_pending_operation_(false), |
| @@ -97,7 +104,9 @@ int LocalFileStreamWriter::InitiateOpen( |
| stream_impl_.reset(new net::FileStream(NULL, task_runner_)); |
|
tzik
2014/03/19 03:34:55
Could you add DCHECK if open_or_create_ == OPEN_EX
ericu
2014/03/19 17:49:27
Good point; I'll use a switch. I prefer a compile
|
| return stream_impl_->Open(file_path_, |
| - kOpenFlagsForWrite, |
| + open_or_create_ == OPEN_EXISTING_FILE |
| + ? kOpenFlagsForWrite |
| + : kCreateFlagsForWrite, |
| base::Bind(&LocalFileStreamWriter::DidOpen, |
| weak_factory_.GetWeakPtr(), |
| error_callback, |