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 "content/browser/download/download_manager_impl.h" | 5 #include "content/browser/download/download_manager_impl.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 221 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
232 | 232 |
233 DownloadManagerImpl::DownloadManagerImpl( | 233 DownloadManagerImpl::DownloadManagerImpl( |
234 net::NetLog* net_log, | 234 net::NetLog* net_log, |
235 BrowserContext* browser_context) | 235 BrowserContext* browser_context) |
236 : item_factory_(new DownloadItemFactoryImpl()), | 236 : item_factory_(new DownloadItemFactoryImpl()), |
237 file_factory_(new DownloadFileFactory()), | 237 file_factory_(new DownloadFileFactory()), |
238 history_size_(0), | 238 history_size_(0), |
239 shutdown_needed_(true), | 239 shutdown_needed_(true), |
240 browser_context_(browser_context), | 240 browser_context_(browser_context), |
241 delegate_(NULL), | 241 delegate_(NULL), |
242 net_log_(net_log) { | 242 net_log_(net_log), |
| 243 weak_factory_(this) { |
243 DCHECK(browser_context); | 244 DCHECK(browser_context); |
244 } | 245 } |
245 | 246 |
246 DownloadManagerImpl::~DownloadManagerImpl() { | 247 DownloadManagerImpl::~DownloadManagerImpl() { |
247 DCHECK(!shutdown_needed_); | 248 DCHECK(!shutdown_needed_); |
248 } | 249 } |
249 | 250 |
250 DownloadItemImpl* DownloadManagerImpl::CreateActiveItem( | 251 DownloadItemImpl* DownloadManagerImpl::CreateActiveItem( |
251 DownloadId id, const DownloadCreateInfo& info) { | 252 DownloadId id, const DownloadCreateInfo& info) { |
252 net::BoundNetLog bound_net_log = | 253 net::BoundNetLog bound_net_log = |
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
442 } | 443 } |
443 | 444 |
444 void DownloadManagerImpl::CheckForFileRemoval(DownloadItemImpl* download_item) { | 445 void DownloadManagerImpl::CheckForFileRemoval(DownloadItemImpl* download_item) { |
445 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 446 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
446 if (download_item->IsComplete() && | 447 if (download_item->IsComplete() && |
447 !download_item->GetFileExternallyRemoved() && | 448 !download_item->GetFileExternallyRemoved() && |
448 delegate_) { | 449 delegate_) { |
449 delegate_->CheckForFileExistence( | 450 delegate_->CheckForFileExistence( |
450 download_item, | 451 download_item, |
451 base::Bind(&DownloadManagerImpl::OnFileExistenceChecked, | 452 base::Bind(&DownloadManagerImpl::OnFileExistenceChecked, |
452 this, download_item->GetId())); | 453 weak_factory_.GetWeakPtr(), download_item->GetId())); |
453 } | 454 } |
454 } | 455 } |
455 | 456 |
456 void DownloadManagerImpl::OnFileExistenceChecked(int32 download_id, | 457 void DownloadManagerImpl::OnFileExistenceChecked(int32 download_id, |
457 bool result) { | 458 bool result) { |
458 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 459 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
459 if (!result) { // File does not exist. | 460 if (!result) { // File does not exist. |
460 if (ContainsKey(downloads_, download_id)) | 461 if (ContainsKey(downloads_, download_id)) |
461 downloads_[download_id]->OnDownloadedFileRemoved(); | 462 downloads_[download_id]->OnDownloadedFileRemoved(); |
462 } | 463 } |
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
665 if (delegate_) | 666 if (delegate_) |
666 delegate_->OpenDownload(download); | 667 delegate_->OpenDownload(download); |
667 } | 668 } |
668 | 669 |
669 void DownloadManagerImpl::ShowDownloadInShell(DownloadItemImpl* download) { | 670 void DownloadManagerImpl::ShowDownloadInShell(DownloadItemImpl* download) { |
670 if (delegate_) | 671 if (delegate_) |
671 delegate_->ShowDownloadInShell(download); | 672 delegate_->ShowDownloadInShell(download); |
672 } | 673 } |
673 | 674 |
674 } // namespace content | 675 } // namespace content |
OLD | NEW |