OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "content/browser/download/download_manager.h" | 5 #include "content/browser/download/download_manager.h" |
6 | 6 |
7 #include <iterator> | 7 #include <iterator> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/callback.h" | 10 #include "base/callback.h" |
(...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
306 contents, suggested_path, reinterpret_cast<void*>(id_ptr)); | 306 contents, suggested_path, reinterpret_cast<void*>(id_ptr)); |
307 | 307 |
308 FOR_EACH_OBSERVER(Observer, observers_, | 308 FOR_EACH_OBSERVER(Observer, observers_, |
309 SelectFileDialogDisplayed(download_id)); | 309 SelectFileDialogDisplayed(download_id)); |
310 } else { | 310 } else { |
311 // No prompting for download, just continue with the suggested name. | 311 // No prompting for download, just continue with the suggested name. |
312 ContinueDownloadWithPath(download, suggested_path); | 312 ContinueDownloadWithPath(download, suggested_path); |
313 } | 313 } |
314 } | 314 } |
315 | 315 |
| 316 content::BrowserContext* DownloadManager::BrowserContext() { |
| 317 return browser_context_; |
| 318 } |
| 319 |
| 320 FilePath DownloadManager::LastDownloadPath() { |
| 321 return last_download_path_; |
| 322 } |
| 323 |
316 void DownloadManager::CreateDownloadItem( | 324 void DownloadManager::CreateDownloadItem( |
317 DownloadCreateInfo* info, const DownloadRequestHandle& request_handle) { | 325 DownloadCreateInfo* info, const DownloadRequestHandle& request_handle) { |
318 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 326 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
319 | 327 |
320 DownloadItem* download = new DownloadItem(this, *info, | 328 DownloadItem* download = new DownloadItem(this, *info, |
321 request_handle, | 329 request_handle, |
322 browser_context_->IsOffTheRecord()); | 330 browser_context_->IsOffTheRecord()); |
323 int32 download_id = info->download_id.local(); | 331 int32 download_id = info->download_id.local(); |
324 DCHECK(!ContainsKey(in_progress_, download_id)); | 332 DCHECK(!ContainsKey(in_progress_, download_id)); |
325 | 333 |
(...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
598 // Clean up will happen when the history system create callback runs if we | 606 // Clean up will happen when the history system create callback runs if we |
599 // don't have a valid db_handle yet. | 607 // don't have a valid db_handle yet. |
600 if (download->db_handle() != DownloadItem::kUninitializedHandle) { | 608 if (download->db_handle() != DownloadItem::kUninitializedHandle) { |
601 in_progress_.erase(download->id()); | 609 in_progress_.erase(download->id()); |
602 active_downloads_.erase(download->id()); | 610 active_downloads_.erase(download->id()); |
603 UpdateDownloadProgress(); // Reflect removal from in_progress_. | 611 UpdateDownloadProgress(); // Reflect removal from in_progress_. |
604 delegate_->UpdateItemInPersistentStore(download); | 612 delegate_->UpdateItemInPersistentStore(download); |
605 } | 613 } |
606 } | 614 } |
607 | 615 |
| 616 content::DownloadManagerDelegate* DownloadManager::delegate() const { |
| 617 return delegate_; |
| 618 } |
| 619 |
608 void DownloadManager::SetDownloadManagerDelegate( | 620 void DownloadManager::SetDownloadManagerDelegate( |
609 content::DownloadManagerDelegate* delegate) { | 621 content::DownloadManagerDelegate* delegate) { |
610 delegate_ = delegate; | 622 delegate_ = delegate; |
611 } | 623 } |
612 | 624 |
613 void DownloadManager::UpdateDownloadProgress() { | 625 void DownloadManager::UpdateDownloadProgress() { |
614 delegate_->DownloadProgressUpdated(); | 626 delegate_->DownloadProgressUpdated(); |
615 } | 627 } |
616 | 628 |
617 int DownloadManager::RemoveDownloadItems( | 629 int DownloadManager::RemoveDownloadItems( |
(...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
921 | 933 |
922 // If the contents no longer exists, we ask the embedder to suggest another | 934 // If the contents no longer exists, we ask the embedder to suggest another |
923 // tab. | 935 // tab. |
924 if (!content) | 936 if (!content) |
925 content = delegate_->GetAlternativeTabContentsToNotifyForDownload(); | 937 content = delegate_->GetAlternativeTabContentsToNotifyForDownload(); |
926 | 938 |
927 if (content) | 939 if (content) |
928 content->OnStartDownload(download); | 940 content->OnStartDownload(download); |
929 } | 941 } |
930 | 942 |
| 943 int DownloadManager::InProgressCount() const { |
| 944 return static_cast<int>(in_progress_.size()); |
| 945 } |
| 946 |
931 // Clears the last download path, used to initialize "save as" dialogs. | 947 // Clears the last download path, used to initialize "save as" dialogs. |
932 void DownloadManager::ClearLastDownloadPath() { | 948 void DownloadManager::ClearLastDownloadPath() { |
933 last_download_path_ = FilePath(); | 949 last_download_path_ = FilePath(); |
934 } | 950 } |
935 | 951 |
936 void DownloadManager::NotifyModelChanged() { | 952 void DownloadManager::NotifyModelChanged() { |
937 FOR_EACH_OBSERVER(Observer, observers_, ModelChanged()); | 953 FOR_EACH_OBSERVER(Observer, observers_, ModelChanged()); |
938 } | 954 } |
939 | 955 |
940 DownloadItem* DownloadManager::GetDownloadItem(int download_id) { | 956 DownloadItem* DownloadManager::GetDownloadItem(int download_id) { |
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1070 void DownloadManager::MarkDownloadOpened(DownloadItem* download) { | 1086 void DownloadManager::MarkDownloadOpened(DownloadItem* download) { |
1071 delegate_->UpdateItemInPersistentStore(download); | 1087 delegate_->UpdateItemInPersistentStore(download); |
1072 int num_unopened = 0; | 1088 int num_unopened = 0; |
1073 for (DownloadMap::iterator it = history_downloads_.begin(); | 1089 for (DownloadMap::iterator it = history_downloads_.begin(); |
1074 it != history_downloads_.end(); ++it) { | 1090 it != history_downloads_.end(); ++it) { |
1075 if (it->second->IsComplete() && !it->second->opened()) | 1091 if (it->second->IsComplete() && !it->second->opened()) |
1076 ++num_unopened; | 1092 ++num_unopened; |
1077 } | 1093 } |
1078 download_stats::RecordOpensOutstanding(num_unopened); | 1094 download_stats::RecordOpensOutstanding(num_unopened); |
1079 } | 1095 } |
| 1096 |
| 1097 void DownloadManager::SetFileManager(DownloadFileManager* file_manager) { |
| 1098 file_manager_ = file_manager; |
| 1099 } |
OLD | NEW |