Index: chrome/browser/profiles/profile_impl.cc |
diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc |
index e698177a5c3e8b48a6b0f6e312e0b5a1077bd9ea..94ab40b1524d81a9cf53fd1966393938c0093843 100644 |
--- a/chrome/browser/profiles/profile_impl.cc |
+++ b/chrome/browser/profiles/profile_impl.cc |
@@ -1349,7 +1349,9 @@ void ProfileImpl::CreatePasswordStore() { |
DownloadManager* ProfileImpl::GetDownloadManager() { |
if (!created_download_manager_) { |
- download_manager_delegate_= new ChromeDownloadManagerDelegate(this); |
+ // In case the delegate has already been set by SetDownloadManagerDelegate. |
+ if (!download_manager_delegate_.get()) |
+ download_manager_delegate_= new ChromeDownloadManagerDelegate(this); |
scoped_refptr<DownloadManager> dlm( |
new DownloadManager(download_manager_delegate_, |
g_browser_process->download_status_updater())); |
@@ -1824,3 +1826,8 @@ SpellCheckProfile* ProfileImpl::GetSpellCheckProfile() { |
spellcheck_profile_.reset(new SpellCheckProfile()); |
return spellcheck_profile_.get(); |
} |
+ |
+void ProfileImpl::SetDownloadManagerDelegate( |
+ ChromeDownloadManagerDelegate* delegate) { |
+ download_manager_delegate_ = delegate; |
+} |