| Index: chrome/browser/renderer_host/download_resource_handler.cc
|
| diff --git a/chrome/browser/renderer_host/download_resource_handler.cc b/chrome/browser/renderer_host/download_resource_handler.cc
|
| index f35d5e4166ce7a127ce62a813137ecc2081b24e6..131426166e432384e9f521dae1c347a8d4c0da30 100644
|
| --- a/chrome/browser/renderer_host/download_resource_handler.cc
|
| +++ b/chrome/browser/renderer_host/download_resource_handler.cc
|
| @@ -33,6 +33,8 @@ DownloadResourceHandler::DownloadResourceHandler(
|
| DownloadFileManager* download_file_manager,
|
| net::URLRequest* request,
|
| bool save_as,
|
| + OnResponseStartedCallback started_cb,
|
| + OnUnstartableCallback unstartable_cb,
|
| const DownloadSaveInfo& save_info)
|
| : download_id_(-1),
|
| global_id_(render_process_host_id, request_id),
|
| @@ -41,6 +43,8 @@ DownloadResourceHandler::DownloadResourceHandler(
|
| download_file_manager_(download_file_manager),
|
| request_(request),
|
| save_as_(save_as),
|
| + started_cb_(started_cb),
|
| + unstartable_cb_(unstartable_cb),
|
| save_info_(save_info),
|
| buffer_(new DownloadBuffer),
|
| rdh_(rdh),
|
| @@ -79,6 +83,8 @@ bool DownloadResourceHandler::OnResponseStarted(int request_id,
|
|
|
| download_id_ = download_file_manager_->GetNextId();
|
|
|
| + started_cb_.Run(download_id_);
|
| +
|
| // Deleted in DownloadManager.
|
| DownloadCreateInfo* info = new DownloadCreateInfo;
|
| info->url_chain = request_->url_chain();
|
| @@ -178,6 +184,9 @@ bool DownloadResourceHandler::OnResponseCompleted(
|
| << " status.os_error() = " << status.os_error();
|
| int error_code = (status.status() == net::URLRequestStatus::FAILED) ?
|
| status.os_error() : 0;
|
| + if (download_id_ == -1) {
|
| + unstartable_cb_.Run(error_code);
|
| + }
|
| // We transfer ownership to |DownloadFileManager| to delete |buffer_|,
|
| // so that any functions queued up on the FILE thread are executed
|
| // before deletion.
|
|
|