Chromium Code Reviews| Index: storage/browser/blob/upload_blob_element_reader.cc |
| diff --git a/storage/browser/blob/upload_blob_element_reader.cc b/storage/browser/blob/upload_blob_element_reader.cc |
| index dd0058f3617e68b6330791469118980c03e71d0c..5c131f7a57c213d6a0076addb35ed9d09c47e9bf 100644 |
| --- a/storage/browser/blob/upload_blob_element_reader.cc |
| +++ b/storage/browser/blob/upload_blob_element_reader.cc |
| @@ -7,17 +7,25 @@ |
| #include "net/base/net_errors.h" |
| #include "storage/browser/blob/blob_data_handle.h" |
| #include "storage/browser/blob/blob_reader.h" |
| +#include "storage/browser/fileapi/file_system_context.h" |
| namespace storage { |
| UploadBlobElementReader::UploadBlobElementReader( |
| - scoped_ptr<storage::BlobReader> reader, |
| - scoped_ptr<BlobDataHandle> handle) |
| - : reader_(reader.Pass()), handle_(handle.Pass()) {} |
| + scoped_ptr<BlobDataHandle> handle, |
| + FileSystemContext* file_system_context, |
| + base::SingleThreadTaskRunner* file_task_runner) |
| + : handle_(handle.Pass()), |
| + file_system_context_(file_system_context), |
| + file_runner_(file_task_runner) {} |
| UploadBlobElementReader::~UploadBlobElementReader() {} |
| int UploadBlobElementReader::Init(const net::CompletionCallback& callback) { |
| + if (reader_.get() == nullptr ||reader_->dirty()) { |
|
michaeln
2015/12/11 03:01:11
is there any reason to not always create a new rea
|
| + reader_ = |
| + handle_->CreateReader(file_system_context_.get(), file_runner_.get()); |
| + } |
| BlobReader::Status status = reader_->CalculateSize(callback); |
| switch (status) { |
| case BlobReader::Status::NET_ERROR: |