Chromium Code Reviews| Index: net/url_request/url_fetcher_response_writer.cc |
| diff --git a/net/url_request/url_fetcher_response_writer.cc b/net/url_request/url_fetcher_response_writer.cc |
| index efbff40d338db82ddda839d4f6654f869a223d14..742af86b1a6c385c60a5025c7225504278a7ea33 100644 |
| --- a/net/url_request/url_fetcher_response_writer.cc |
| +++ b/net/url_request/url_fetcher_response_writer.cc |
| @@ -91,8 +91,12 @@ int URLFetcherFileWriter::Write(IOBuffer* buffer, |
| DCHECK(file_stream_); |
| DCHECK(owns_file_); |
| - ContinueWrite(new DrainableIOBuffer(buffer, num_bytes), callback, OK); |
| - return ERR_IO_PENDING; |
| + int result = file_stream_->Write(buffer, num_bytes, |
| + base::Bind(&URLFetcherFileWriter::DidWrite, |
| + weak_factory_.GetWeakPtr(), |
| + callback)); |
| + DCHECK_LT(result, 0); |
|
wtc
2013/05/23 01:00:16
Does this DCHECK mean we expect to get either ERR_
hashimoto
2013/05/23 04:33:24
I thought DCHECK_LT(result, 0) was a good idea bec
|
| + return result; |
| } |
| int URLFetcherFileWriter::Finish(const CompletionCallback& callback) { |
| @@ -100,33 +104,13 @@ int URLFetcherFileWriter::Finish(const CompletionCallback& callback) { |
| return OK; |
| } |
| -void URLFetcherFileWriter::ContinueWrite( |
| - scoped_refptr<DrainableIOBuffer> buffer, |
| - const CompletionCallback& callback, |
| - int result) { |
| - // |file_stream_| should be alive when write is in progress. |
| - DCHECK(file_stream_); |
| - |
| +void URLFetcherFileWriter::DidWrite(const CompletionCallback& callback, |
| + int result) { |
| if (result < 0) { |
| error_code_ = result; |
| CloseAndDeleteFile(); |
| - callback.Run(result); |
| - return; |
| - } |
| - |
| - total_bytes_written_ += result; |
| - buffer->DidConsume(result); |
| - |
| - if (buffer->BytesRemaining() > 0) { |
| - file_stream_->Write(buffer, buffer->BytesRemaining(), |
| - base::Bind(&URLFetcherFileWriter::ContinueWrite, |
| - weak_factory_.GetWeakPtr(), |
| - buffer, |
| - callback)); |
| - } else { |
| - // Finished writing buffer to the file. |
| - callback.Run(buffer->size()); |
| } |
| + callback.Run(result); |
| } |
| void URLFetcherFileWriter::DisownFile() { |