Index: chrome/browser/download/download_service.cc |
diff --git a/chrome/browser/download/download_service.cc b/chrome/browser/download/download_service.cc |
index 13503dc43f2a79aac29a515affd2b74f96ff723e..fd87ca02aa2bef88feb72aa3adc2e8247f60a1d4 100644 |
--- a/chrome/browser/download/download_service.cc |
+++ b/chrome/browser/download/download_service.cc |
@@ -95,6 +95,22 @@ int DownloadService::NonMaliciousDownloadCount() const { |
NonMaliciousInProgressCount(); |
} |
+void DownloadService::CancelDownloads() { |
+ if (!download_manager_created_) |
+ return; |
+ |
+ DownloadManager* download_manager = |
+ BrowserContext::GetDownloadManager(profile_); |
+ DownloadManager::DownloadVector downloads; |
+ download_manager->GetAllDownloads(&downloads); |
+ for (DownloadManager::DownloadVector::iterator it = downloads.begin(); |
+ it != downloads.end(); |
+ ++it) { |
+ if ((*it)->GetState() == content::DownloadItem::IN_PROGRESS) |
+ (*it)->Cancel(false); |
+ } |
+} |
+ |
// static |
int DownloadService::NonMaliciousDownloadCountAllProfiles() { |
std::vector<Profile*> profiles( |
@@ -120,17 +136,9 @@ void DownloadService::CancelAllDownloads() { |
for (std::vector<Profile*>::iterator it = profiles.begin(); |
it < profiles.end(); |
++it) { |
- content::DownloadManager* download_manager = |
- content::BrowserContext::GetDownloadManager(*it); |
- content::DownloadManager::DownloadVector downloads; |
- download_manager->GetAllDownloads(&downloads); |
- for (content::DownloadManager::DownloadVector::iterator it = |
- downloads.begin(); |
- it != downloads.end(); |
- ++it) { |
- if ((*it)->GetState() == content::DownloadItem::IN_PROGRESS) |
- (*it)->Cancel(false); |
- } |
+ DownloadService* service = |
+ DownloadServiceFactory::GetForBrowserContext(*it); |
+ service->CancelDownloads(); |
} |
} |