diff options
Diffstat (limited to 'chrome/browser/download/chrome_download_manager_delegate.cc')
-rw-r--r-- | chrome/browser/download/chrome_download_manager_delegate.cc | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrome/browser/download/chrome_download_manager_delegate.cc index 0d1c0c5..efcc701 100644 --- a/chrome/browser/download/chrome_download_manager_delegate.cc +++ b/chrome/browser/download/chrome_download_manager_delegate.cc @@ -216,6 +216,8 @@ ChromeDownloadManagerDelegate::ChromeDownloadManagerDelegate(Profile* profile) } ChromeDownloadManagerDelegate::~ChromeDownloadManagerDelegate() { + // If a DownloadManager was set for this, Shutdown() must be called. + DCHECK(!download_manager_); } void ChromeDownloadManagerDelegate::SetDownloadManager(DownloadManager* dm) { @@ -225,6 +227,13 @@ void ChromeDownloadManagerDelegate::SetDownloadManager(DownloadManager* dm) { void ChromeDownloadManagerDelegate::Shutdown() { download_prefs_.reset(); weak_ptr_factory_.InvalidateWeakPtrs(); + download_manager_ = NULL; +} + +content::DownloadIdCallback +ChromeDownloadManagerDelegate::GetDownloadIdReceiverCallback() { + return base::Bind(&ChromeDownloadManagerDelegate::SetNextId, + weak_ptr_factory_.GetWeakPtr()); } void ChromeDownloadManagerDelegate::SetNextId(uint32 next_id) { |