Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(480)

Unified Diff: storage/browser/blob/upload_blob_element_reader.cc

Issue 1513783005: [Blob] Fix for resetting reader. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: comments Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « storage/browser/blob/upload_blob_element_reader.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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:
« no previous file with comments | « storage/browser/blob/upload_blob_element_reader.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698