Index: content/browser/renderer_host/resource_dispatcher_host.cc |
diff --git a/content/browser/renderer_host/resource_dispatcher_host.cc b/content/browser/renderer_host/resource_dispatcher_host.cc |
index 7030b105a227676cd035ece266b5e28cde9fe4c2..6db5980e777e301ff3b6f59d3be2a73ea64a7110 100644 |
--- a/content/browser/renderer_host/resource_dispatcher_host.cc |
+++ b/content/browser/renderer_host/resource_dispatcher_host.cc |
@@ -703,12 +703,21 @@ void ResourceDispatcherHost::BeginDownload( |
request_id_--; |
+ DownloadId dl_id; |
+ void* next_download_id_thunk = context.GetUserData(reinterpret_cast<void*>( |
+ BASE_HASH_NAMESPACE::hash<std::string>()("next_download_id_thunk"))); |
+ if (next_download_id_thunk != NULL) { |
+ dl_id = reinterpret_cast<DownloadManager::GetNextIdThunkType*>( |
+ next_download_id_thunk)->Run(); |
+ } |
+ |
scoped_refptr<ResourceHandler> handler( |
new DownloadResourceHandler(this, |
child_id, |
route_id, |
request_id_, |
url, |
+ dl_id, |
download_file_manager_.get(), |
request, |
prompt_for_save_location, |
@@ -729,7 +738,7 @@ void ResourceDispatcherHost::BeginDownload( |
request->set_method("GET"); |
request->set_referrer(MaybeStripReferrer(referrer).spec()); |
- request->set_context(context.request_context()); |
+ request->set_context(request_context); |
request->set_load_flags(request->load_flags() | |
net::LOAD_IS_DOWNLOAD); |