Index: chrome/browser/download/save_package.cc |
diff --git a/chrome/browser/download/save_package.cc b/chrome/browser/download/save_package.cc |
index 9fccd6e7684f677307527f1059fbb5fb118b6d65..f624e4458705160a76a50adb498b22cd35a5f1f1 100644 |
--- a/chrome/browser/download/save_package.cc |
+++ b/chrome/browser/download/save_package.cc |
@@ -370,9 +370,17 @@ bool SavePackage::Init() { |
request_context_getter_ = profile->GetRequestContext(); |
// Create the fake DownloadItem and display the view. |
- download_ = new DownloadItem(tab_contents_->profile()->GetDownloadManager(), |
- saved_main_file_path_, page_url_, |
+ DownloadManager* download_manager = |
+ tab_contents_->profile()->GetDownloadManager(); |
+ download_ = new DownloadItem(download_manager, |
+ saved_main_file_path_, |
+ page_url_, |
profile->IsOffTheRecord()); |
+ |
+ // Transfer the ownership to the download manager. We need the DownloadItem |
+ // to be alive as long as the Profile is alive. |
+ download_manager->SavePageAsDownloadStarted(download_); |
+ |
tab_contents_->OnStartDownload(download_); |
// Check save type and process the save page job. |