Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(44)

Side by Side Diff: chrome/browser/download/download_util.cc

Issue 6905049: Detect removed files and reflect the state in chrome://downloads and the download shelf (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Merge with the latest revision Created 9 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 // Download utility implementation 5 // Download utility implementation
6 6
7 #include "chrome/browser/download/download_util.h" 7 #include "chrome/browser/download/download_util.h"
8 8
9 #if defined(OS_WIN) 9 #if defined(OS_WIN)
10 #include <shobjidl.h> 10 #include <shobjidl.h>
(...skipping 647 matching lines...) Expand 10 before | Expand all | Expand 10 after
658 file_value->SetInteger("id", id); 658 file_value->SetInteger("id", id);
659 file_value->Set("file_path", 659 file_value->Set("file_path",
660 base::CreateFilePathValue(download->GetTargetFilePath())); 660 base::CreateFilePathValue(download->GetTargetFilePath()));
661 // Keep file names as LTR. 661 // Keep file names as LTR.
662 string16 file_name = download->GetFileNameToReportUser().LossyDisplayName(); 662 string16 file_name = download->GetFileNameToReportUser().LossyDisplayName();
663 file_name = base::i18n::GetDisplayStringInLTRDirectionality(file_name); 663 file_name = base::i18n::GetDisplayStringInLTRDirectionality(file_name);
664 file_value->SetString("file_name", file_name); 664 file_value->SetString("file_name", file_name);
665 file_value->SetString("url", download->GetURL().spec()); 665 file_value->SetString("url", download->GetURL().spec());
666 file_value->SetBoolean("otr", download->is_otr()); 666 file_value->SetBoolean("otr", download->is_otr());
667 file_value->SetInteger("total", static_cast<int>(download->total_bytes())); 667 file_value->SetInteger("total", static_cast<int>(download->total_bytes()));
668 file_value->SetBoolean("file_externally_removed",
669 download->file_externally_removed());
668 670
669 if (download->IsInProgress()) { 671 if (download->IsInProgress()) {
670 if (download->safety_state() == DownloadItem::DANGEROUS) { 672 if (download->safety_state() == DownloadItem::DANGEROUS) {
671 file_value->SetString("state", "DANGEROUS"); 673 file_value->SetString("state", "DANGEROUS");
672 DCHECK(download->GetDangerType() == DownloadItem::DANGEROUS_FILE || 674 DCHECK(download->GetDangerType() == DownloadItem::DANGEROUS_FILE ||
673 download->GetDangerType() == DownloadItem::DANGEROUS_URL); 675 download->GetDangerType() == DownloadItem::DANGEROUS_URL);
674 const char* danger_type_value = 676 const char* danger_type_value =
675 download->GetDangerType() == DownloadItem::DANGEROUS_FILE ? 677 download->GetDangerType() == DownloadItem::DANGEROUS_FILE ?
676 "DANGEROUS_FILE" : "DANGEROUS_URL"; 678 "DANGEROUS_FILE" : "DANGEROUS_URL";
677 file_value->SetString("danger_type", danger_type_value); 679 file_value->SetString("danger_type", danger_type_value);
(...skipping 16 matching lines...) Expand all
694 file_value->SetString("progress_status_text", 696 file_value->SetString("progress_status_text",
695 GetProgressStatusText(download)); 697 GetProgressStatusText(download));
696 698
697 file_value->SetInteger("percent", 699 file_value->SetInteger("percent",
698 static_cast<int>(download->PercentComplete())); 700 static_cast<int>(download->PercentComplete()));
699 file_value->SetInteger("received", 701 file_value->SetInteger("received",
700 static_cast<int>(download->received_bytes())); 702 static_cast<int>(download->received_bytes()));
701 } else if (download->IsCancelled()) { 703 } else if (download->IsCancelled()) {
702 file_value->SetString("state", "CANCELLED"); 704 file_value->SetString("state", "CANCELLED");
703 } else if (download->IsComplete()) { 705 } else if (download->IsComplete()) {
704 if (download->safety_state() == DownloadItem::DANGEROUS) { 706 if (download->safety_state() == DownloadItem::DANGEROUS)
705 file_value->SetString("state", "DANGEROUS"); 707 file_value->SetString("state", "DANGEROUS");
706 } else { 708 else
707 file_value->SetString("state", "COMPLETE"); 709 file_value->SetString("state", "COMPLETE");
708 }
709 } else if (download->state() == DownloadItem::REMOVING) { 710 } else if (download->state() == DownloadItem::REMOVING) {
710 file_value->SetString("state", "REMOVING"); 711 file_value->SetString("state", "REMOVING");
711 } else { 712 } else {
712 NOTREACHED() << "state undefined"; 713 NOTREACHED() << "state undefined";
713 } 714 }
714 715
715 return file_value; 716 return file_value;
716 } 717 }
717 718
718 string16 GetProgressStatusText(DownloadItem* download) { 719 string16 GetProgressStatusText(DownloadItem* download) {
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after
903 FilePath GetCrDownloadPath(const FilePath& suggested_path) { 904 FilePath GetCrDownloadPath(const FilePath& suggested_path) {
904 FilePath::StringType file_name; 905 FilePath::StringType file_name;
905 base::SStringPrintf( 906 base::SStringPrintf(
906 &file_name, 907 &file_name,
907 PRFilePathLiteral FILE_PATH_LITERAL(".crdownload"), 908 PRFilePathLiteral FILE_PATH_LITERAL(".crdownload"),
908 suggested_path.value().c_str()); 909 suggested_path.value().c_str());
909 return FilePath(file_name); 910 return FilePath(file_name);
910 } 911 }
911 912
912 } // namespace download_util 913 } // namespace download_util
OLDNEW
« no previous file with comments | « chrome/browser/download/download_shelf_context_menu.cc ('k') | chrome/browser/resources/downloads.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698