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 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
88 } | 88 } |
89 return data; | 89 return data; |
90 } | 90 } |
91 | 91 |
92 DownloadItemModelData::DownloadItemModelData() | 92 DownloadItemModelData::DownloadItemModelData() |
93 : should_show_in_shelf_(true), | 93 : should_show_in_shelf_(true), |
94 should_notify_ui_(false) { | 94 should_notify_ui_(false) { |
95 } | 95 } |
96 | 96 |
97 string16 InterruptReasonStatusMessage(int reason) { | 97 string16 InterruptReasonStatusMessage(int reason) { |
98 int string_id = 0; | 98 int string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS; |
99 | 99 |
100 switch (reason) { | 100 switch (static_cast<content::DownloadInterruptReason>(reason)) { |
101 case content::DOWNLOAD_INTERRUPT_REASON_FILE_ACCESS_DENIED: | 101 case content::DOWNLOAD_INTERRUPT_REASON_FILE_ACCESS_DENIED: |
102 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_ACCESS_DENIED; | 102 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_ACCESS_DENIED; |
103 break; | 103 break; |
104 case content::DOWNLOAD_INTERRUPT_REASON_FILE_NO_SPACE: | 104 case content::DOWNLOAD_INTERRUPT_REASON_FILE_NO_SPACE: |
105 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_DISK_FULL; | 105 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_DISK_FULL; |
106 break; | 106 break; |
107 case content::DOWNLOAD_INTERRUPT_REASON_FILE_NAME_TOO_LONG: | 107 case content::DOWNLOAD_INTERRUPT_REASON_FILE_NAME_TOO_LONG: |
108 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_PATH_TOO_LONG; | 108 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_PATH_TOO_LONG; |
109 break; | 109 break; |
110 case content::DOWNLOAD_INTERRUPT_REASON_FILE_TOO_LARGE: | 110 case content::DOWNLOAD_INTERRUPT_REASON_FILE_TOO_LARGE: |
111 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_FILE_TOO_LARGE; | 111 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_FILE_TOO_LARGE; |
112 break; | 112 break; |
113 case content::DOWNLOAD_INTERRUPT_REASON_FILE_VIRUS_INFECTED: | 113 case content::DOWNLOAD_INTERRUPT_REASON_FILE_VIRUS_INFECTED: |
114 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_VIRUS; | 114 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_VIRUS; |
115 break; | 115 break; |
116 case content::DOWNLOAD_INTERRUPT_REASON_FILE_TRANSIENT_ERROR: | 116 case content::DOWNLOAD_INTERRUPT_REASON_FILE_TRANSIENT_ERROR: |
117 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_TEMPORARY_PROBLEM; | 117 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_TEMPORARY_PROBLEM; |
118 break; | 118 break; |
119 case content::DOWNLOAD_INTERRUPT_REASON_FILE_BLOCKED: | 119 case content::DOWNLOAD_INTERRUPT_REASON_FILE_BLOCKED: |
120 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_BLOCKED; | 120 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_BLOCKED; |
121 break; | 121 break; |
122 case content::DOWNLOAD_INTERRUPT_REASON_FILE_SECURITY_CHECK_FAILED: | 122 case content::DOWNLOAD_INTERRUPT_REASON_FILE_SECURITY_CHECK_FAILED: |
123 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_SECURITY_CHECK_FAILED; | 123 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_SECURITY_CHECK_FAILED; |
124 break; | 124 break; |
125 case content::DOWNLOAD_INTERRUPT_REASON_FILE_TOO_SHORT: | 125 case content::DOWNLOAD_INTERRUPT_REASON_FILE_TOO_SHORT: |
126 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_FILE_TOO_SHORT; | 126 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_FILE_TOO_SHORT; |
127 break; | 127 break; |
| 128 case content::DOWNLOAD_INTERRUPT_REASON_NETWORK_INVALID_REQUEST: |
128 case content::DOWNLOAD_INTERRUPT_REASON_NETWORK_FAILED: | 129 case content::DOWNLOAD_INTERRUPT_REASON_NETWORK_FAILED: |
129 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_NETWORK_ERROR; | 130 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_NETWORK_ERROR; |
130 break; | 131 break; |
131 case content::DOWNLOAD_INTERRUPT_REASON_NETWORK_TIMEOUT: | 132 case content::DOWNLOAD_INTERRUPT_REASON_NETWORK_TIMEOUT: |
132 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_NETWORK_TIMEOUT; | 133 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_NETWORK_TIMEOUT; |
133 break; | 134 break; |
134 case content::DOWNLOAD_INTERRUPT_REASON_NETWORK_DISCONNECTED: | 135 case content::DOWNLOAD_INTERRUPT_REASON_NETWORK_DISCONNECTED: |
135 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_NETWORK_DISCONNECTED; | 136 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_NETWORK_DISCONNECTED; |
136 break; | 137 break; |
137 case content::DOWNLOAD_INTERRUPT_REASON_NETWORK_SERVER_DOWN: | 138 case content::DOWNLOAD_INTERRUPT_REASON_NETWORK_SERVER_DOWN: |
138 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_SERVER_DOWN; | 139 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_SERVER_DOWN; |
139 break; | 140 break; |
140 case content::DOWNLOAD_INTERRUPT_REASON_SERVER_FAILED: | 141 case content::DOWNLOAD_INTERRUPT_REASON_SERVER_FAILED: |
141 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_SERVER_PROBLEM; | 142 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_SERVER_PROBLEM; |
142 break; | 143 break; |
143 case content::DOWNLOAD_INTERRUPT_REASON_SERVER_BAD_CONTENT: | 144 case content::DOWNLOAD_INTERRUPT_REASON_SERVER_BAD_CONTENT: |
144 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_NO_FILE; | 145 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_NO_FILE; |
145 break; | 146 break; |
146 case content::DOWNLOAD_INTERRUPT_REASON_USER_CANCELED: | 147 case content::DOWNLOAD_INTERRUPT_REASON_USER_CANCELED: |
147 string_id = IDS_DOWNLOAD_STATUS_CANCELLED; | 148 string_id = IDS_DOWNLOAD_STATUS_CANCELLED; |
148 break; | 149 break; |
149 case content::DOWNLOAD_INTERRUPT_REASON_USER_SHUTDOWN: | 150 case content::DOWNLOAD_INTERRUPT_REASON_USER_SHUTDOWN: |
150 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_SHUTDOWN; | 151 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_SHUTDOWN; |
151 break; | 152 break; |
152 case content::DOWNLOAD_INTERRUPT_REASON_CRASH: | 153 case content::DOWNLOAD_INTERRUPT_REASON_CRASH: |
153 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_CRASH; | 154 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_CRASH; |
154 break; | 155 break; |
155 default: | 156 case content::DOWNLOAD_INTERRUPT_REASON_NONE: |
| 157 case content::DOWNLOAD_INTERRUPT_REASON_SERVER_NO_RANGE: |
| 158 case content::DOWNLOAD_INTERRUPT_REASON_SERVER_PRECONDITION: |
| 159 NOTREACHED(); |
| 160 // fallthrough |
| 161 case content::DOWNLOAD_INTERRUPT_REASON_FILE_FAILED: |
156 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS; | 162 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS; |
157 break; | |
158 } | 163 } |
159 | 164 |
160 return l10n_util::GetStringUTF16(string_id); | 165 return l10n_util::GetStringUTF16(string_id); |
161 } | 166 } |
162 | 167 |
163 string16 InterruptReasonMessage(int reason) { | 168 string16 InterruptReasonMessage(int reason) { |
164 int string_id = 0; | 169 int string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS; |
165 string16 status_text; | 170 string16 status_text; |
166 | 171 |
167 switch (reason) { | 172 switch (static_cast<content::DownloadInterruptReason>(reason)) { |
168 case content::DOWNLOAD_INTERRUPT_REASON_FILE_ACCESS_DENIED: | 173 case content::DOWNLOAD_INTERRUPT_REASON_FILE_ACCESS_DENIED: |
169 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_ACCESS_DENIED; | 174 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_ACCESS_DENIED; |
170 break; | 175 break; |
171 case content::DOWNLOAD_INTERRUPT_REASON_FILE_NO_SPACE: | 176 case content::DOWNLOAD_INTERRUPT_REASON_FILE_NO_SPACE: |
172 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_DISK_FULL; | 177 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_DISK_FULL; |
173 break; | 178 break; |
174 case content::DOWNLOAD_INTERRUPT_REASON_FILE_NAME_TOO_LONG: | 179 case content::DOWNLOAD_INTERRUPT_REASON_FILE_NAME_TOO_LONG: |
175 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_PATH_TOO_LONG; | 180 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_PATH_TOO_LONG; |
176 break; | 181 break; |
177 case content::DOWNLOAD_INTERRUPT_REASON_FILE_TOO_LARGE: | 182 case content::DOWNLOAD_INTERRUPT_REASON_FILE_TOO_LARGE: |
178 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_FILE_TOO_LARGE; | 183 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_FILE_TOO_LARGE; |
179 break; | 184 break; |
180 case content::DOWNLOAD_INTERRUPT_REASON_FILE_VIRUS_INFECTED: | 185 case content::DOWNLOAD_INTERRUPT_REASON_FILE_VIRUS_INFECTED: |
181 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_VIRUS; | 186 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_VIRUS; |
182 break; | 187 break; |
183 case content::DOWNLOAD_INTERRUPT_REASON_FILE_TRANSIENT_ERROR: | 188 case content::DOWNLOAD_INTERRUPT_REASON_FILE_TRANSIENT_ERROR: |
184 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_TEMPORARY_PROBLEM; | 189 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_TEMPORARY_PROBLEM; |
185 break; | 190 break; |
186 case content::DOWNLOAD_INTERRUPT_REASON_FILE_BLOCKED: | 191 case content::DOWNLOAD_INTERRUPT_REASON_FILE_BLOCKED: |
187 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_BLOCKED; | 192 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_BLOCKED; |
188 break; | 193 break; |
189 case content::DOWNLOAD_INTERRUPT_REASON_FILE_SECURITY_CHECK_FAILED: | 194 case content::DOWNLOAD_INTERRUPT_REASON_FILE_SECURITY_CHECK_FAILED: |
190 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_SECURITY_CHECK_FAILED; | 195 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_SECURITY_CHECK_FAILED; |
191 break; | 196 break; |
192 case content::DOWNLOAD_INTERRUPT_REASON_FILE_TOO_SHORT: | 197 case content::DOWNLOAD_INTERRUPT_REASON_FILE_TOO_SHORT: |
193 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_FILE_TOO_SHORT; | 198 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_FILE_TOO_SHORT; |
194 break; | 199 break; |
| 200 case content::DOWNLOAD_INTERRUPT_REASON_NETWORK_INVALID_REQUEST: |
195 case content::DOWNLOAD_INTERRUPT_REASON_NETWORK_FAILED: | 201 case content::DOWNLOAD_INTERRUPT_REASON_NETWORK_FAILED: |
196 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_NETWORK_ERROR; | 202 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_NETWORK_ERROR; |
197 break; | 203 break; |
198 case content::DOWNLOAD_INTERRUPT_REASON_NETWORK_TIMEOUT: | 204 case content::DOWNLOAD_INTERRUPT_REASON_NETWORK_TIMEOUT: |
199 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_NETWORK_TIMEOUT; | 205 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_NETWORK_TIMEOUT; |
200 break; | 206 break; |
201 case content::DOWNLOAD_INTERRUPT_REASON_NETWORK_DISCONNECTED: | 207 case content::DOWNLOAD_INTERRUPT_REASON_NETWORK_DISCONNECTED: |
202 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_NETWORK_DISCONNECTED; | 208 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_NETWORK_DISCONNECTED; |
203 break; | 209 break; |
204 case content::DOWNLOAD_INTERRUPT_REASON_NETWORK_SERVER_DOWN: | 210 case content::DOWNLOAD_INTERRUPT_REASON_NETWORK_SERVER_DOWN: |
205 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_SERVER_DOWN; | 211 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_SERVER_DOWN; |
206 break; | 212 break; |
207 case content::DOWNLOAD_INTERRUPT_REASON_SERVER_FAILED: | 213 case content::DOWNLOAD_INTERRUPT_REASON_SERVER_FAILED: |
208 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_SERVER_PROBLEM; | 214 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_SERVER_PROBLEM; |
209 break; | 215 break; |
210 case content::DOWNLOAD_INTERRUPT_REASON_SERVER_BAD_CONTENT: | 216 case content::DOWNLOAD_INTERRUPT_REASON_SERVER_BAD_CONTENT: |
211 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_NO_FILE; | 217 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_NO_FILE; |
212 break; | 218 break; |
213 case content::DOWNLOAD_INTERRUPT_REASON_USER_CANCELED: | 219 case content::DOWNLOAD_INTERRUPT_REASON_USER_CANCELED: |
214 string_id = IDS_DOWNLOAD_STATUS_CANCELLED; | 220 string_id = IDS_DOWNLOAD_STATUS_CANCELLED; |
215 break; | 221 break; |
216 case content::DOWNLOAD_INTERRUPT_REASON_USER_SHUTDOWN: | 222 case content::DOWNLOAD_INTERRUPT_REASON_USER_SHUTDOWN: |
217 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_SHUTDOWN; | 223 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_SHUTDOWN; |
218 break; | 224 break; |
219 case content::DOWNLOAD_INTERRUPT_REASON_CRASH: | 225 case content::DOWNLOAD_INTERRUPT_REASON_CRASH: |
220 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_CRASH; | 226 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_CRASH; |
221 break; | 227 break; |
222 default: | 228 case content::DOWNLOAD_INTERRUPT_REASON_NONE: |
| 229 case content::DOWNLOAD_INTERRUPT_REASON_SERVER_NO_RANGE: |
| 230 case content::DOWNLOAD_INTERRUPT_REASON_SERVER_PRECONDITION: |
| 231 NOTREACHED(); |
| 232 // fallthrough |
| 233 case content::DOWNLOAD_INTERRUPT_REASON_FILE_FAILED: |
223 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS; | 234 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS; |
224 break; | |
225 } | 235 } |
226 | 236 |
227 status_text = l10n_util::GetStringUTF16(string_id); | 237 status_text = l10n_util::GetStringUTF16(string_id); |
228 | 238 |
229 return status_text; | 239 return status_text; |
230 } | 240 } |
231 | 241 |
232 } // namespace | 242 } // namespace |
233 | 243 |
234 // ----------------------------------------------------------------------------- | 244 // ----------------------------------------------------------------------------- |
(...skipping 346 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
581 } | 591 } |
582 | 592 |
583 // In progress download with no known time left and non-zero completed bytes: | 593 // In progress download with no known time left and non-zero completed bytes: |
584 // "100/120 MB" or "100 MB" | 594 // "100/120 MB" or "100 MB" |
585 if (GetCompletedBytes() > 0) | 595 if (GetCompletedBytes() > 0) |
586 return size_ratio; | 596 return size_ratio; |
587 | 597 |
588 // Instead of displaying "0 B" we say "Starting..." | 598 // Instead of displaying "0 B" we say "Starting..." |
589 return l10n_util::GetStringUTF16(IDS_DOWNLOAD_STATUS_STARTING); | 599 return l10n_util::GetStringUTF16(IDS_DOWNLOAD_STATUS_STARTING); |
590 } | 600 } |
OLD | NEW |