Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5166)

Unified Diff: chrome/browser/renderer_host/download_resource_handler.cc

Issue 7192016: chrome.experimental.downloads (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Bearings Before Woods Created 9 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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.

Powered by Google App Engine
This is Rietveld 408576698