| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/download/download_service.h" | 5 #include "chrome/browser/download/download_service.h" |
| 6 | 6 |
| 7 #include "base/callback.h" | 7 #include "base/callback.h" |
| 8 #include "chrome/browser/browser_process.h" | 8 #include "chrome/browser/browser_process.h" |
| 9 #include "chrome/browser/download/chrome_download_manager_delegate.h" | 9 #include "chrome/browser/download/chrome_download_manager_delegate.h" |
| 10 #include "chrome/browser/download/download_history.h" | 10 #include "chrome/browser/download/download_history.h" |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 88 return download_manager_created_; | 88 return download_manager_created_; |
| 89 } | 89 } |
| 90 | 90 |
| 91 int DownloadService::NonMaliciousDownloadCount() const { | 91 int DownloadService::NonMaliciousDownloadCount() const { |
| 92 if (!download_manager_created_) | 92 if (!download_manager_created_) |
| 93 return 0; | 93 return 0; |
| 94 return BrowserContext::GetDownloadManager(profile_)-> | 94 return BrowserContext::GetDownloadManager(profile_)-> |
| 95 NonMaliciousInProgressCount(); | 95 NonMaliciousInProgressCount(); |
| 96 } | 96 } |
| 97 | 97 |
| 98 void DownloadService::CancelDownloads() { |
| 99 if (!download_manager_created_) |
| 100 return; |
| 101 |
| 102 DownloadManager* download_manager = |
| 103 BrowserContext::GetDownloadManager(profile_); |
| 104 DownloadManager::DownloadVector downloads; |
| 105 download_manager->GetAllDownloads(&downloads); |
| 106 for (DownloadManager::DownloadVector::iterator it = downloads.begin(); |
| 107 it != downloads.end(); |
| 108 ++it) { |
| 109 if ((*it)->GetState() == content::DownloadItem::IN_PROGRESS) |
| 110 (*it)->Cancel(false); |
| 111 } |
| 112 } |
| 113 |
| 98 // static | 114 // static |
| 99 int DownloadService::NonMaliciousDownloadCountAllProfiles() { | 115 int DownloadService::NonMaliciousDownloadCountAllProfiles() { |
| 100 std::vector<Profile*> profiles( | 116 std::vector<Profile*> profiles( |
| 101 g_browser_process->profile_manager()->GetLoadedProfiles()); | 117 g_browser_process->profile_manager()->GetLoadedProfiles()); |
| 102 | 118 |
| 103 int count = 0; | 119 int count = 0; |
| 104 for (std::vector<Profile*>::iterator it = profiles.begin(); | 120 for (std::vector<Profile*>::iterator it = profiles.begin(); |
| 105 it < profiles.end(); ++it) { | 121 it < profiles.end(); ++it) { |
| 106 count += DownloadServiceFactory::GetForBrowserContext(*it)-> | 122 count += DownloadServiceFactory::GetForBrowserContext(*it)-> |
| 107 NonMaliciousDownloadCount(); | 123 NonMaliciousDownloadCount(); |
| 108 if ((*it)->HasOffTheRecordProfile()) | 124 if ((*it)->HasOffTheRecordProfile()) |
| 109 count += DownloadServiceFactory::GetForBrowserContext( | 125 count += DownloadServiceFactory::GetForBrowserContext( |
| 110 (*it)->GetOffTheRecordProfile())->NonMaliciousDownloadCount(); | 126 (*it)->GetOffTheRecordProfile())->NonMaliciousDownloadCount(); |
| 111 } | 127 } |
| 112 | 128 |
| 113 return count; | 129 return count; |
| 114 } | 130 } |
| 115 | 131 |
| 116 // static | 132 // static |
| 117 void DownloadService::CancelAllDownloads() { | 133 void DownloadService::CancelAllDownloads() { |
| 118 std::vector<Profile*> profiles( | 134 std::vector<Profile*> profiles( |
| 119 g_browser_process->profile_manager()->GetLoadedProfiles()); | 135 g_browser_process->profile_manager()->GetLoadedProfiles()); |
| 120 for (std::vector<Profile*>::iterator it = profiles.begin(); | 136 for (std::vector<Profile*>::iterator it = profiles.begin(); |
| 121 it < profiles.end(); | 137 it < profiles.end(); |
| 122 ++it) { | 138 ++it) { |
| 123 content::DownloadManager* download_manager = | 139 DownloadService* service = |
| 124 content::BrowserContext::GetDownloadManager(*it); | 140 DownloadServiceFactory::GetForBrowserContext(*it); |
| 125 content::DownloadManager::DownloadVector downloads; | 141 service->CancelDownloads(); |
| 126 download_manager->GetAllDownloads(&downloads); | |
| 127 for (content::DownloadManager::DownloadVector::iterator it = | |
| 128 downloads.begin(); | |
| 129 it != downloads.end(); | |
| 130 ++it) { | |
| 131 if ((*it)->GetState() == content::DownloadItem::IN_PROGRESS) | |
| 132 (*it)->Cancel(false); | |
| 133 } | |
| 134 } | 142 } |
| 135 } | 143 } |
| 136 | 144 |
| 137 void DownloadService::SetDownloadManagerDelegateForTesting( | 145 void DownloadService::SetDownloadManagerDelegateForTesting( |
| 138 scoped_ptr<ChromeDownloadManagerDelegate> new_delegate) { | 146 scoped_ptr<ChromeDownloadManagerDelegate> new_delegate) { |
| 139 manager_delegate_.swap(new_delegate); | 147 manager_delegate_.swap(new_delegate); |
| 140 DownloadManager* dm = BrowserContext::GetDownloadManager(profile_); | 148 DownloadManager* dm = BrowserContext::GetDownloadManager(profile_); |
| 141 dm->SetDelegate(manager_delegate_.get()); | 149 dm->SetDelegate(manager_delegate_.get()); |
| 142 manager_delegate_->SetDownloadManager(dm); | 150 manager_delegate_->SetDownloadManager(dm); |
| 143 if (new_delegate) | 151 if (new_delegate) |
| (...skipping 17 matching lines...) Expand all Loading... |
| 161 // code) when the DownloadManager is shutting down. So we shut it down | 169 // code) when the DownloadManager is shutting down. So we shut it down |
| 162 // manually earlier. See http://crbug.com/131692 | 170 // manually earlier. See http://crbug.com/131692 |
| 163 BrowserContext::GetDownloadManager(profile_)->Shutdown(); | 171 BrowserContext::GetDownloadManager(profile_)->Shutdown(); |
| 164 } | 172 } |
| 165 #if !defined(OS_ANDROID) | 173 #if !defined(OS_ANDROID) |
| 166 extension_event_router_.reset(); | 174 extension_event_router_.reset(); |
| 167 #endif | 175 #endif |
| 168 manager_delegate_.reset(); | 176 manager_delegate_.reset(); |
| 169 download_history_.reset(); | 177 download_history_.reset(); |
| 170 } | 178 } |
| OLD | NEW |