| 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_item_model.h" | 5 #include "chrome/browser/download/download_item_model.h" |
| 6 | 6 |
| 7 #include "base/i18n/number_formatting.h" | 7 #include "base/i18n/number_formatting.h" |
| 8 #include "base/i18n/rtl.h" | 8 #include "base/i18n/rtl.h" |
| 9 #include "base/metrics/field_trial.h" | 9 #include "base/metrics/field_trial.h" |
| 10 #include "base/strings/string16.h" | 10 #include "base/strings/string16.h" |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 56 bool was_ui_notified_; | 56 bool was_ui_notified_; |
| 57 | 57 |
| 58 // Whether the download should be opened in the browser vs. the system handler | 58 // Whether the download should be opened in the browser vs. the system handler |
| 59 // for the file type. | 59 // for the file type. |
| 60 bool should_prefer_opening_in_browser_; | 60 bool should_prefer_opening_in_browser_; |
| 61 | 61 |
| 62 // Whether the download should be considered dangerous if SafeBrowsing doesn't | 62 // Whether the download should be considered dangerous if SafeBrowsing doesn't |
| 63 // come up with a verdict. | 63 // come up with a verdict. |
| 64 bool is_dangerous_file_based_on_type_; | 64 bool is_dangerous_file_based_on_type_; |
| 65 | 65 |
| 66 // Whether the download is currently being revived. |
| 67 bool is_being_revived_; |
| 68 |
| 66 private: | 69 private: |
| 67 DownloadItemModelData(); | 70 DownloadItemModelData(); |
| 68 ~DownloadItemModelData() override {} | 71 ~DownloadItemModelData() override {} |
| 69 | 72 |
| 70 static const char kKey[]; | 73 static const char kKey[]; |
| 71 }; | 74 }; |
| 72 | 75 |
| 73 // static | 76 // static |
| 74 const char DownloadItemModelData::kKey[] = "DownloadItemModelData key"; | 77 const char DownloadItemModelData::kKey[] = "DownloadItemModelData key"; |
| 75 | 78 |
| (...skipping 12 matching lines...) Expand all Loading... |
| 88 data = new DownloadItemModelData(); | 91 data = new DownloadItemModelData(); |
| 89 download->SetUserData(kKey, data); | 92 download->SetUserData(kKey, data); |
| 90 } | 93 } |
| 91 return data; | 94 return data; |
| 92 } | 95 } |
| 93 | 96 |
| 94 DownloadItemModelData::DownloadItemModelData() | 97 DownloadItemModelData::DownloadItemModelData() |
| 95 : should_show_in_shelf_(true), | 98 : should_show_in_shelf_(true), |
| 96 was_ui_notified_(false), | 99 was_ui_notified_(false), |
| 97 should_prefer_opening_in_browser_(false), | 100 should_prefer_opening_in_browser_(false), |
| 98 is_dangerous_file_based_on_type_(false) { | 101 is_dangerous_file_based_on_type_(false), |
| 102 is_being_revived_(false) { |
| 99 } | 103 } |
| 100 | 104 |
| 101 base::string16 InterruptReasonStatusMessage(int reason) { | 105 base::string16 InterruptReasonStatusMessage(int reason) { |
| 102 int string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS; | 106 int string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS; |
| 103 | 107 |
| 104 switch (static_cast<content::DownloadInterruptReason>(reason)) { | 108 switch (static_cast<content::DownloadInterruptReason>(reason)) { |
| 105 case content::DOWNLOAD_INTERRUPT_REASON_FILE_ACCESS_DENIED: | 109 case content::DOWNLOAD_INTERRUPT_REASON_FILE_ACCESS_DENIED: |
| 106 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_ACCESS_DENIED; | 110 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_ACCESS_DENIED; |
| 107 break; | 111 break; |
| 108 case content::DOWNLOAD_INTERRUPT_REASON_FILE_NO_SPACE: | 112 case content::DOWNLOAD_INTERRUPT_REASON_FILE_NO_SPACE: |
| (...skipping 494 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 603 bool DownloadItemModel::IsDangerousFileBasedOnType() const { | 607 bool DownloadItemModel::IsDangerousFileBasedOnType() const { |
| 604 const DownloadItemModelData* data = DownloadItemModelData::Get(download_); | 608 const DownloadItemModelData* data = DownloadItemModelData::Get(download_); |
| 605 return data && data->is_dangerous_file_based_on_type_; | 609 return data && data->is_dangerous_file_based_on_type_; |
| 606 } | 610 } |
| 607 | 611 |
| 608 void DownloadItemModel::SetIsDangerousFileBasedOnType(bool dangerous) { | 612 void DownloadItemModel::SetIsDangerousFileBasedOnType(bool dangerous) { |
| 609 DownloadItemModelData* data = DownloadItemModelData::GetOrCreate(download_); | 613 DownloadItemModelData* data = DownloadItemModelData::GetOrCreate(download_); |
| 610 data->is_dangerous_file_based_on_type_ = dangerous; | 614 data->is_dangerous_file_based_on_type_ = dangerous; |
| 611 } | 615 } |
| 612 | 616 |
| 617 bool DownloadItemModel::IsBeingRevived() const { |
| 618 const DownloadItemModelData* data = DownloadItemModelData::Get(download_); |
| 619 return data && data->is_being_revived_; |
| 620 } |
| 621 |
| 622 void DownloadItemModel::SetIsBeingRevived(bool is_being_revived) { |
| 623 DownloadItemModelData* data = DownloadItemModelData::GetOrCreate(download_); |
| 624 data->is_being_revived_ = is_being_revived; |
| 625 } |
| 626 |
| 613 base::string16 DownloadItemModel::GetProgressSizesString() const { | 627 base::string16 DownloadItemModel::GetProgressSizesString() const { |
| 614 base::string16 size_ratio; | 628 base::string16 size_ratio; |
| 615 int64 size = GetCompletedBytes(); | 629 int64 size = GetCompletedBytes(); |
| 616 int64 total = GetTotalBytes(); | 630 int64 total = GetTotalBytes(); |
| 617 if (total > 0) { | 631 if (total > 0) { |
| 618 ui::DataUnits amount_units = ui::GetByteDisplayUnits(total); | 632 ui::DataUnits amount_units = ui::GetByteDisplayUnits(total); |
| 619 base::string16 simple_size = ui::FormatBytesWithUnits(size, amount_units, fa
lse); | 633 base::string16 simple_size = ui::FormatBytesWithUnits(size, amount_units, fa
lse); |
| 620 | 634 |
| 621 // In RTL locales, we render the text "size/total" in an RTL context. This | 635 // In RTL locales, we render the text "size/total" in an RTL context. This |
| 622 // is problematic since a string such as "123/456 MB" is displayed | 636 // is problematic since a string such as "123/456 MB" is displayed |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 693 if (!download_service) | 707 if (!download_service) |
| 694 return; | 708 return; |
| 695 | 709 |
| 696 ChromeDownloadManagerDelegate* delegate = | 710 ChromeDownloadManagerDelegate* delegate = |
| 697 download_service->GetDownloadManagerDelegate(); | 711 download_service->GetDownloadManagerDelegate(); |
| 698 if (!delegate) | 712 if (!delegate) |
| 699 return; | 713 return; |
| 700 delegate->OpenDownloadUsingPlatformHandler(download_); | 714 delegate->OpenDownloadUsingPlatformHandler(download_); |
| 701 RecordDownloadOpenMethod(DOWNLOAD_OPEN_METHOD_USER_PLATFORM); | 715 RecordDownloadOpenMethod(DOWNLOAD_OPEN_METHOD_USER_PLATFORM); |
| 702 } | 716 } |
| OLD | NEW |