| Index: content/browser/download/download_worker.cc
|
| diff --git a/content/browser/download/download_worker.cc b/content/browser/download/download_worker.cc
|
| index 6e330a28f4ef41528d37a64fb7edd8f43fe5f24f..5eff1cf3b38a134ff8f12c54e3f57b06a360abc6 100644
|
| --- a/content/browser/download/download_worker.cc
|
| +++ b/content/browser/download/download_worker.cc
|
| @@ -13,6 +13,23 @@ namespace {
|
|
|
| const int kVerboseLevel = 1;
|
|
|
| +class CompletedByteStreamReader : public ByteStreamReader {
|
| + public:
|
| + CompletedByteStreamReader(int status) : status_(status) {};
|
| + ~CompletedByteStreamReader() override = default;
|
| +
|
| + // ByteStreamReader implementations:
|
| + ByteStreamReader::StreamState Read(scoped_refptr<net::IOBuffer>* data,
|
| + size_t* length) override {
|
| + return ByteStreamReader::STREAM_COMPLETE;
|
| + }
|
| + int GetStatus() const override { return status_; }
|
| + void RegisterCallback(const base::Closure& sink_callback) override {};
|
| +
|
| + private:
|
| + int status_;
|
| +};
|
| +
|
| std::unique_ptr<UrlDownloader, BrowserThread::DeleteOnIOThread>
|
| CreateUrlDownloader(std::unique_ptr<DownloadUrlParameters> params,
|
| base::WeakPtr<UrlDownloader::Delegate> delegate) {
|
| @@ -94,9 +111,7 @@ void DownloadWorker::OnUrlDownloaderStarted(
|
| DownloadInterruptReason::DOWNLOAD_INTERRUPT_REASON_NONE) {
|
| VLOG(kVerboseLevel) << "Parallel download sub-request failed. reason = "
|
| << create_info->result;
|
| -
|
| - delegate_->OnServerResponseError(this, create_info->result);
|
| - return;
|
| + stream_reader.reset(new CompletedByteStreamReader(create_info->result));
|
| }
|
|
|
| request_handle_ = std::move(create_info->request_handle);
|
|
|