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 289d150f86ffb13bc1abee9ddf244fc4b25c4067..5d302bedf4314e54ec3f4bebe2c9fac7c3453d5e 100644 |
--- a/chrome/browser/renderer_host/download_resource_handler.cc |
+++ b/chrome/browser/renderer_host/download_resource_handler.cc |
@@ -11,8 +11,8 @@ |
#include "base/metrics/stats_counters.h" |
#include "base/stringprintf.h" |
#include "chrome/browser/download/download_create_info.h" |
-#include "chrome/browser/download/download_item.h" |
#include "chrome/browser/download/download_file_manager.h" |
+#include "chrome/browser/download/download_item.h" |
#include "chrome/browser/download/download_request_handle.h" |
#include "chrome/browser/download/download_util.h" |
#include "content/browser/browser_thread.h" |
@@ -30,11 +30,12 @@ DownloadResourceHandler::DownloadResourceHandler( |
int render_view_id, |
int request_id, |
const GURL& url, |
+ DownloadId dl_id, |
DownloadFileManager* download_file_manager, |
net::URLRequest* request, |
bool save_as, |
const DownloadSaveInfo& save_info) |
- : download_id_(-1), |
+ : download_id_(dl_id), |
global_id_(render_process_host_id, request_id), |
render_view_id_(render_view_id), |
content_length_(0), |
@@ -45,6 +46,7 @@ DownloadResourceHandler::DownloadResourceHandler( |
buffer_(new DownloadBuffer), |
rdh_(rdh), |
is_paused_(false) { |
+ DCHECK(dl_id.IsValid()); |
download_util::RecordDownloadCount(download_util::UNTHROTTLED_COUNT); |
} |
@@ -65,6 +67,7 @@ bool DownloadResourceHandler::OnRequestRedirected(int request_id, |
// Send the download creation information to the download thread. |
bool DownloadResourceHandler::OnResponseStarted(int request_id, |
ResourceResponse* response) { |
+ DCHECK(download_id_.IsValid()); |
VLOG(20) << __FUNCTION__ << "()" << DebugString() |
<< " request_id = " << request_id; |
download_start_time_ = base::TimeTicks::Now(); |
@@ -77,8 +80,6 @@ bool DownloadResourceHandler::OnResponseStarted(int request_id, |
const ResourceDispatcherHostRequestInfo* request_info = |
ResourceDispatcherHost::InfoForRequest(request_); |
- download_id_ = download_file_manager_->GetNextId(); |
- |
// Deleted in DownloadManager. |
DownloadCreateInfo* info = new DownloadCreateInfo; |
info->url_chain = request_->url_chain(); |
@@ -87,7 +88,7 @@ bool DownloadResourceHandler::OnResponseStarted(int request_id, |
info->received_bytes = 0; |
info->total_bytes = content_length_; |
info->state = DownloadItem::IN_PROGRESS; |
- info->download_id = download_id_; |
+ info->download_id = download_id_.local(); |
info->has_user_gesture = request_info->has_user_gesture(); |
info->request_handle = DownloadRequestHandle(rdh_, |
global_id_.child_id, |
@@ -257,7 +258,7 @@ std::string DownloadResourceHandler::DebugString() const { |
" save_info_.file_path = \"%" PRFilePath "\"" |
" }", |
request_->url().spec().c_str(), |
- download_id_, |
+ download_id_.local(), |
global_id_.child_id, |
global_id_.request_id, |
render_view_id_, |