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

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

Issue 23496076: WIP - Refactor programmatic downloads Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 2 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) 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
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
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 }
OLDNEW
« no previous file with comments | « chrome/browser/download/download_browsertest.cc ('k') | chrome/browser/download/download_item_model_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698