Index: net/url_request/url_fetcher_response_writer.h |
diff --git a/net/url_request/url_fetcher_response_writer.h b/net/url_request/url_fetcher_response_writer.h |
index f739502b9c9eb93e8d6d90bb40a10008dd163878..768d10b9faa11f32be28dd35d3203c1de3b347b0 100644 |
--- a/net/url_request/url_fetcher_response_writer.h |
+++ b/net/url_request/url_fetcher_response_writer.h |
@@ -45,9 +45,11 @@ class NET_EXPORT URLFetcherResponseWriter { |
int num_bytes, |
const CompletionCallback& callback) = 0; |
- // Finishes writing. If ERR_IO_PENDING is returned, |callback| will be run |
- // later with the result. |
- virtual int Finish(const CompletionCallback& callback) = 0; |
+ // Finishes writing. If |net_error| is not OK, this method can be called |
+ // in the middle of another operation (eg. Initialize() and Write()). If |
+ // |net_error| is not OK, graceful shutdown might be skipped. If |
mmenke
2016/10/19 20:49:34
nit: Maybe reword the 2nd and third sentences?
"
xunjieli
2016/10/20 15:57:49
Done.
|
+ // ERR_IO_PENDING is returned, |callback| will be run later with the result. |
+ virtual int Finish(int net_error, const CompletionCallback& callback) = 0; |
// Returns this instance's pointer as URLFetcherStringWriter when possible. |
virtual URLFetcherStringWriter* AsStringWriter(); |
@@ -69,7 +71,7 @@ class NET_EXPORT URLFetcherStringWriter : public URLFetcherResponseWriter { |
int Write(IOBuffer* buffer, |
int num_bytes, |
const CompletionCallback& callback) override; |
- int Finish(const CompletionCallback& callback) override; |
+ int Finish(int net_error, const CompletionCallback& callback) override; |
URLFetcherStringWriter* AsStringWriter() override; |
private: |
@@ -95,7 +97,7 @@ class NET_EXPORT URLFetcherFileWriter : public URLFetcherResponseWriter { |
int Write(IOBuffer* buffer, |
int num_bytes, |
const CompletionCallback& callback) override; |
- int Finish(const CompletionCallback& callback) override; |
+ int Finish(int net_error, const CompletionCallback& callback) override; |
URLFetcherFileWriter* AsFileWriter() override; |
// Drops ownership of the file at |file_path_|. |
@@ -103,23 +105,19 @@ class NET_EXPORT URLFetcherFileWriter : public URLFetcherResponseWriter { |
void DisownFile(); |
private: |
- // Called when a write has been done. |
- void DidWrite(const CompletionCallback& callback, int result); |
- |
// Closes the file if it is open and then delete it. |
void CloseAndDeleteFile(); |
// Callback which gets the result of a temporary file creation. |
- void DidCreateTempFile(const CompletionCallback& callback, |
- base::FilePath* temp_file_path, |
+ void DidCreateTempFile(base::FilePath* temp_file_path, |
bool success); |
- // Callback which gets the result of FileStream::Open. |
- void DidOpenFile(const CompletionCallback& callback, |
- int result); |
+ // Run |callback_| if it is non-null when FileStream::Open or |
+ // FileStream::Write is completed. |
+ void OnIOCompleted(int result); |
// Callback which gets the result of closing a file. |
- void CloseComplete(const CompletionCallback& callback, int result); |
+ void CloseComplete(int result); |
// Task runner on which file operations should happen. |
scoped_refptr<base::SequencedTaskRunner> file_task_runner_; |
@@ -133,6 +131,8 @@ class NET_EXPORT URLFetcherFileWriter : public URLFetcherResponseWriter { |
std::unique_ptr<FileStream> file_stream_; |
+ CompletionCallback callback_; |
+ |
// Callbacks are created for use with base::FileUtilProxy. |
base::WeakPtrFactory<URLFetcherFileWriter> weak_factory_; |