| 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_item.h" | 5 #include "content/browser/download/download_item.h" |
| 6 | 6 |
| 7 #include <vector> |
| 8 |
| 9 #include "base/bind.h" |
| 7 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
| 8 #include "base/file_util.h" | 11 #include "base/file_util.h" |
| 9 #include "base/format_macros.h" | 12 #include "base/format_macros.h" |
| 10 #include "base/i18n/case_conversion.h" | 13 #include "base/i18n/case_conversion.h" |
| 11 #include "base/i18n/string_search.h" | 14 #include "base/i18n/string_search.h" |
| 12 #include "base/logging.h" | 15 #include "base/logging.h" |
| 13 #include "base/metrics/histogram.h" | 16 #include "base/metrics/histogram.h" |
| 14 #include "base/stringprintf.h" | 17 #include "base/stringprintf.h" |
| 15 #include "base/timer.h" | 18 #include "base/timer.h" |
| 16 #include "base/utf_string_conversions.h" | 19 #include "base/utf_string_conversions.h" |
| (...skipping 482 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 499 break; | 502 break; |
| 500 case DELETE_DUE_TO_BROWSER_SHUTDOWN: | 503 case DELETE_DUE_TO_BROWSER_SHUTDOWN: |
| 501 UMA_HISTOGRAM_ENUMERATION("Download.Discard", GetDangerType(), | 504 UMA_HISTOGRAM_ENUMERATION("Download.Discard", GetDangerType(), |
| 502 DANGEROUS_TYPE_MAX); | 505 DANGEROUS_TYPE_MAX); |
| 503 break; | 506 break; |
| 504 default: | 507 default: |
| 505 NOTREACHED(); | 508 NOTREACHED(); |
| 506 } | 509 } |
| 507 | 510 |
| 508 BrowserThread::PostTask(BrowserThread::FILE, FROM_HERE, | 511 BrowserThread::PostTask(BrowserThread::FILE, FROM_HERE, |
| 509 NewRunnableFunction(&DeleteDownloadedFile, full_path_)); | 512 base::Bind(&DeleteDownloadedFile, full_path_)); |
| 510 Remove(); | 513 Remove(); |
| 511 // We have now been deleted. | 514 // We have now been deleted. |
| 512 } | 515 } |
| 513 | 516 |
| 514 void DownloadItem::Remove() { | 517 void DownloadItem::Remove() { |
| 515 // TODO(rdsmith): Change to DCHECK after http://crbug.com/85408 resolved. | 518 // TODO(rdsmith): Change to DCHECK after http://crbug.com/85408 resolved. |
| 516 CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 519 CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 517 | 520 |
| 518 download_manager_->AssertQueueStateConsistent(this); | 521 download_manager_->AssertQueueStateConsistent(this); |
| 519 Cancel(true); | 522 Cancel(true); |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 588 CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 591 CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 589 | 592 |
| 590 VLOG(20) << __FUNCTION__ << "()" | 593 VLOG(20) << __FUNCTION__ << "()" |
| 591 << " needs rename = " << NeedsRename() | 594 << " needs rename = " << NeedsRename() |
| 592 << " " << DebugString(true); | 595 << " " << DebugString(true); |
| 593 DCHECK_NE(DANGEROUS, safety_state()); | 596 DCHECK_NE(DANGEROUS, safety_state()); |
| 594 DCHECK(file_manager); | 597 DCHECK(file_manager); |
| 595 | 598 |
| 596 if (NeedsRename()) { | 599 if (NeedsRename()) { |
| 597 BrowserThread::PostTask(BrowserThread::FILE, FROM_HERE, | 600 BrowserThread::PostTask(BrowserThread::FILE, FROM_HERE, |
| 598 NewRunnableMethod(file_manager, | 601 base::Bind(&DownloadFileManager::RenameCompletingDownloadFile, |
| 599 &DownloadFileManager::RenameCompletingDownloadFile, global_id(), | 602 file_manager, global_id(), |
| 600 GetTargetFilePath(), safety_state() == SAFE)); | 603 GetTargetFilePath(), safety_state() == SAFE)); |
| 601 return; | 604 return; |
| 602 } | 605 } |
| 603 | 606 |
| 604 Completed(); | 607 Completed(); |
| 605 | 608 |
| 606 BrowserThread::PostTask(BrowserThread::FILE, FROM_HERE, NewRunnableMethod( | 609 BrowserThread::PostTask(BrowserThread::FILE, FROM_HERE, |
| 607 file_manager, &DownloadFileManager::CompleteDownload, global_id())); | 610 base::Bind(&DownloadFileManager::CompleteDownload, |
| 611 file_manager, global_id())); |
| 608 } | 612 } |
| 609 | 613 |
| 610 void DownloadItem::OnDownloadRenamedToFinalName(const FilePath& full_path) { | 614 void DownloadItem::OnDownloadRenamedToFinalName(const FilePath& full_path) { |
| 611 // TODO(rdsmith): Change to DCHECK after http://crbug.com/85408 resolved. | 615 // TODO(rdsmith): Change to DCHECK after http://crbug.com/85408 resolved. |
| 612 CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 616 CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 613 | 617 |
| 614 VLOG(20) << __FUNCTION__ << "()" | 618 VLOG(20) << __FUNCTION__ << "()" |
| 615 << " full_path = \"" << full_path.value() << "\"" | 619 << " full_path = \"" << full_path.value() << "\"" |
| 616 << " needed rename = " << NeedsRename() | 620 << " needed rename = " << NeedsRename() |
| 617 << " " << DebugString(false); | 621 << " " << DebugString(false); |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 717 | 721 |
| 718 FilePath DownloadItem::GetUserVerifiedFilePath() const { | 722 FilePath DownloadItem::GetUserVerifiedFilePath() const { |
| 719 return (safety_state_ == DownloadItem::SAFE) ? | 723 return (safety_state_ == DownloadItem::SAFE) ? |
| 720 GetTargetFilePath() : full_path_; | 724 GetTargetFilePath() : full_path_; |
| 721 } | 725 } |
| 722 | 726 |
| 723 void DownloadItem::OffThreadCancel(DownloadFileManager* file_manager) { | 727 void DownloadItem::OffThreadCancel(DownloadFileManager* file_manager) { |
| 724 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 728 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 725 request_handle_.CancelRequest(); | 729 request_handle_.CancelRequest(); |
| 726 | 730 |
| 727 BrowserThread::PostTask( | 731 BrowserThread::PostTask(BrowserThread::FILE, FROM_HERE, |
| 728 BrowserThread::FILE, FROM_HERE, | 732 base::Bind(&DownloadFileManager::CancelDownload, |
| 729 NewRunnableMethod( | 733 file_manager, global_id())); |
| 730 file_manager, &DownloadFileManager::CancelDownload, global_id())); | |
| 731 } | 734 } |
| 732 | 735 |
| 733 void DownloadItem::Init(bool active) { | 736 void DownloadItem::Init(bool active) { |
| 734 // TODO(rdsmith): Change to DCHECK after http://crbug.com/85408 resolved. | 737 // TODO(rdsmith): Change to DCHECK after http://crbug.com/85408 resolved. |
| 735 CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 738 CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 736 | 739 |
| 737 UpdateTarget(); | 740 UpdateTarget(); |
| 738 if (active) { | 741 if (active) { |
| 739 StartProgressTimer(); | 742 StartProgressTimer(); |
| 740 download_stats::RecordDownloadCount(download_stats::START_COUNT); | 743 download_stats::RecordDownloadCount(download_stats::START_COUNT); |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 812 state_info_.target_name.value().c_str(), | 815 state_info_.target_name.value().c_str(), |
| 813 full_path().value().c_str()); | 816 full_path().value().c_str()); |
| 814 } else { | 817 } else { |
| 815 description += base::StringPrintf(" url = \"%s\"", url_list.c_str()); | 818 description += base::StringPrintf(" url = \"%s\"", url_list.c_str()); |
| 816 } | 819 } |
| 817 | 820 |
| 818 description += " }"; | 821 description += " }"; |
| 819 | 822 |
| 820 return description; | 823 return description; |
| 821 } | 824 } |
| OLD | NEW |