Index: net/base/upload_data.cc |
diff --git a/net/base/upload_data.cc b/net/base/upload_data.cc |
index 71d77ae807a102ae0b5edf64a7184269ddabf10e..b13e9091e8cb0051caeb26a516ba1cd806f600d0 100644 |
--- a/net/base/upload_data.cc |
+++ b/net/base/upload_data.cc |
@@ -114,6 +114,20 @@ uint64 UploadData::Element::BytesRemaining() { |
return GetContentLength() - offset_; |
} |
+void UploadData::Element::ResetOffset() { |
+ offset_ = 0; |
+ |
+ // Delete the file stream if already opened, so we can reread the file from |
+ // the beginning. |
+ if (file_stream_) { |
+ // Temporarily allow until fix: http://crbug.com/72001. |
+ base::ThreadRestrictions::ScopedAllowIO allow_io; |
+ file_stream_->CloseSync(); |
+ delete file_stream_; |
+ file_stream_ = NULL; |
+ } |
wtc
2012/05/21 22:54:41
As a performance optimization, we can leave file_s
satorux1
2012/05/21 23:14:40
Thanks. I'm going to stick with my fix for now for
|
+} |
+ |
FileStream* UploadData::Element::OpenFileStream() { |
scoped_ptr<FileStream> file(new FileStream(NULL)); |
int64 rv = file->OpenSync( |