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

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

Issue 114193009: [Download] Return DownloadInterruptReason from OnStartedCallback (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 11 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 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
103 return data; 103 return data;
104 } 104 }
105 105
106 DownloadItemModelData::DownloadItemModelData() 106 DownloadItemModelData::DownloadItemModelData()
107 : should_show_in_shelf_(true), 107 : should_show_in_shelf_(true),
108 should_notify_ui_(false), 108 should_notify_ui_(false),
109 should_prefer_opening_in_browser_(false) { 109 should_prefer_opening_in_browser_(false) {
110 } 110 }
111 111
112 base::string16 InterruptReasonStatusMessage(int reason) { 112 base::string16 InterruptReasonStatusMessage(int reason) {
113 int string_id = 0; 113 int string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS;
114 114
115 switch (reason) { 115 switch (static_cast<content::DownloadInterruptReason>(reason)) {
116 case content::DOWNLOAD_INTERRUPT_REASON_FILE_ACCESS_DENIED: 116 case content::DOWNLOAD_INTERRUPT_REASON_FILE_ACCESS_DENIED:
117 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_ACCESS_DENIED; 117 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_ACCESS_DENIED;
118 break; 118 break;
119 case content::DOWNLOAD_INTERRUPT_REASON_FILE_NO_SPACE: 119 case content::DOWNLOAD_INTERRUPT_REASON_FILE_NO_SPACE:
120 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_DISK_FULL; 120 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_DISK_FULL;
121 break; 121 break;
122 case content::DOWNLOAD_INTERRUPT_REASON_FILE_NAME_TOO_LONG: 122 case content::DOWNLOAD_INTERRUPT_REASON_FILE_NAME_TOO_LONG:
123 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_PATH_TOO_LONG; 123 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_PATH_TOO_LONG;
124 break; 124 break;
125 case content::DOWNLOAD_INTERRUPT_REASON_FILE_TOO_LARGE: 125 case content::DOWNLOAD_INTERRUPT_REASON_FILE_TOO_LARGE:
126 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_FILE_TOO_LARGE; 126 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_FILE_TOO_LARGE;
127 break; 127 break;
128 case content::DOWNLOAD_INTERRUPT_REASON_FILE_VIRUS_INFECTED: 128 case content::DOWNLOAD_INTERRUPT_REASON_FILE_VIRUS_INFECTED:
129 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_VIRUS; 129 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_VIRUS;
130 break; 130 break;
131 case content::DOWNLOAD_INTERRUPT_REASON_FILE_TRANSIENT_ERROR: 131 case content::DOWNLOAD_INTERRUPT_REASON_FILE_TRANSIENT_ERROR:
132 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_TEMPORARY_PROBLEM; 132 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_TEMPORARY_PROBLEM;
133 break; 133 break;
134 case content::DOWNLOAD_INTERRUPT_REASON_FILE_BLOCKED: 134 case content::DOWNLOAD_INTERRUPT_REASON_FILE_BLOCKED:
135 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_BLOCKED; 135 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_BLOCKED;
136 break; 136 break;
137 case content::DOWNLOAD_INTERRUPT_REASON_FILE_SECURITY_CHECK_FAILED: 137 case content::DOWNLOAD_INTERRUPT_REASON_FILE_SECURITY_CHECK_FAILED:
138 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_SECURITY_CHECK_FAILED; 138 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_SECURITY_CHECK_FAILED;
139 break; 139 break;
140 case content::DOWNLOAD_INTERRUPT_REASON_FILE_TOO_SHORT: 140 case content::DOWNLOAD_INTERRUPT_REASON_FILE_TOO_SHORT:
141 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_FILE_TOO_SHORT; 141 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_FILE_TOO_SHORT;
142 break; 142 break;
143 case content::DOWNLOAD_INTERRUPT_REASON_NETWORK_INVALID_REQUEST:
143 case content::DOWNLOAD_INTERRUPT_REASON_NETWORK_FAILED: 144 case content::DOWNLOAD_INTERRUPT_REASON_NETWORK_FAILED:
144 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_NETWORK_ERROR; 145 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_NETWORK_ERROR;
145 break; 146 break;
146 case content::DOWNLOAD_INTERRUPT_REASON_NETWORK_TIMEOUT: 147 case content::DOWNLOAD_INTERRUPT_REASON_NETWORK_TIMEOUT:
147 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_NETWORK_TIMEOUT; 148 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_NETWORK_TIMEOUT;
148 break; 149 break;
149 case content::DOWNLOAD_INTERRUPT_REASON_NETWORK_DISCONNECTED: 150 case content::DOWNLOAD_INTERRUPT_REASON_NETWORK_DISCONNECTED:
150 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_NETWORK_DISCONNECTED; 151 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_NETWORK_DISCONNECTED;
151 break; 152 break;
152 case content::DOWNLOAD_INTERRUPT_REASON_NETWORK_SERVER_DOWN: 153 case content::DOWNLOAD_INTERRUPT_REASON_NETWORK_SERVER_DOWN:
153 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_SERVER_DOWN; 154 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_SERVER_DOWN;
154 break; 155 break;
155 case content::DOWNLOAD_INTERRUPT_REASON_SERVER_FAILED: 156 case content::DOWNLOAD_INTERRUPT_REASON_SERVER_FAILED:
156 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_SERVER_PROBLEM; 157 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_SERVER_PROBLEM;
157 break; 158 break;
158 case content::DOWNLOAD_INTERRUPT_REASON_SERVER_BAD_CONTENT: 159 case content::DOWNLOAD_INTERRUPT_REASON_SERVER_BAD_CONTENT:
159 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_NO_FILE; 160 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_NO_FILE;
160 break; 161 break;
161 case content::DOWNLOAD_INTERRUPT_REASON_USER_CANCELED: 162 case content::DOWNLOAD_INTERRUPT_REASON_USER_CANCELED:
162 string_id = IDS_DOWNLOAD_STATUS_CANCELLED; 163 string_id = IDS_DOWNLOAD_STATUS_CANCELLED;
163 break; 164 break;
164 case content::DOWNLOAD_INTERRUPT_REASON_USER_SHUTDOWN: 165 case content::DOWNLOAD_INTERRUPT_REASON_USER_SHUTDOWN:
165 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_SHUTDOWN; 166 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_SHUTDOWN;
166 break; 167 break;
167 case content::DOWNLOAD_INTERRUPT_REASON_CRASH: 168 case content::DOWNLOAD_INTERRUPT_REASON_CRASH:
168 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_CRASH; 169 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS_CRASH;
169 break; 170 break;
170 default: 171 case content::DOWNLOAD_INTERRUPT_REASON_NONE:
172 NOTREACHED();
173 // fallthrough
174 case content::DOWNLOAD_INTERRUPT_REASON_SERVER_NO_RANGE:
175 case content::DOWNLOAD_INTERRUPT_REASON_SERVER_PRECONDITION:
176 case content::DOWNLOAD_INTERRUPT_REASON_FILE_FAILED:
171 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS; 177 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS;
172 break;
173 } 178 }
174 179
175 return l10n_util::GetStringUTF16(string_id); 180 return l10n_util::GetStringUTF16(string_id);
176 } 181 }
177 182
178 base::string16 InterruptReasonMessage(int reason) { 183 base::string16 InterruptReasonMessage(int reason) {
179 int string_id = 0; 184 int string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS;
180 base::string16 status_text; 185 base::string16 status_text;
181 186
182 switch (reason) { 187 switch (static_cast<content::DownloadInterruptReason>(reason)) {
183 case content::DOWNLOAD_INTERRUPT_REASON_FILE_ACCESS_DENIED: 188 case content::DOWNLOAD_INTERRUPT_REASON_FILE_ACCESS_DENIED:
184 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_ACCESS_DENIED; 189 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_ACCESS_DENIED;
185 break; 190 break;
186 case content::DOWNLOAD_INTERRUPT_REASON_FILE_NO_SPACE: 191 case content::DOWNLOAD_INTERRUPT_REASON_FILE_NO_SPACE:
187 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_DISK_FULL; 192 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_DISK_FULL;
188 break; 193 break;
189 case content::DOWNLOAD_INTERRUPT_REASON_FILE_NAME_TOO_LONG: 194 case content::DOWNLOAD_INTERRUPT_REASON_FILE_NAME_TOO_LONG:
190 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_PATH_TOO_LONG; 195 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_PATH_TOO_LONG;
191 break; 196 break;
192 case content::DOWNLOAD_INTERRUPT_REASON_FILE_TOO_LARGE: 197 case content::DOWNLOAD_INTERRUPT_REASON_FILE_TOO_LARGE:
193 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_FILE_TOO_LARGE; 198 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_FILE_TOO_LARGE;
194 break; 199 break;
195 case content::DOWNLOAD_INTERRUPT_REASON_FILE_VIRUS_INFECTED: 200 case content::DOWNLOAD_INTERRUPT_REASON_FILE_VIRUS_INFECTED:
196 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_VIRUS; 201 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_VIRUS;
197 break; 202 break;
198 case content::DOWNLOAD_INTERRUPT_REASON_FILE_TRANSIENT_ERROR: 203 case content::DOWNLOAD_INTERRUPT_REASON_FILE_TRANSIENT_ERROR:
199 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_TEMPORARY_PROBLEM; 204 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_TEMPORARY_PROBLEM;
200 break; 205 break;
201 case content::DOWNLOAD_INTERRUPT_REASON_FILE_BLOCKED: 206 case content::DOWNLOAD_INTERRUPT_REASON_FILE_BLOCKED:
202 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_BLOCKED; 207 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_BLOCKED;
203 break; 208 break;
204 case content::DOWNLOAD_INTERRUPT_REASON_FILE_SECURITY_CHECK_FAILED: 209 case content::DOWNLOAD_INTERRUPT_REASON_FILE_SECURITY_CHECK_FAILED:
205 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_SECURITY_CHECK_FAILED; 210 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_SECURITY_CHECK_FAILED;
206 break; 211 break;
207 case content::DOWNLOAD_INTERRUPT_REASON_FILE_TOO_SHORT: 212 case content::DOWNLOAD_INTERRUPT_REASON_FILE_TOO_SHORT:
208 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_FILE_TOO_SHORT; 213 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_FILE_TOO_SHORT;
209 break; 214 break;
215 case content::DOWNLOAD_INTERRUPT_REASON_NETWORK_INVALID_REQUEST:
210 case content::DOWNLOAD_INTERRUPT_REASON_NETWORK_FAILED: 216 case content::DOWNLOAD_INTERRUPT_REASON_NETWORK_FAILED:
211 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_NETWORK_ERROR; 217 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_NETWORK_ERROR;
212 break; 218 break;
213 case content::DOWNLOAD_INTERRUPT_REASON_NETWORK_TIMEOUT: 219 case content::DOWNLOAD_INTERRUPT_REASON_NETWORK_TIMEOUT:
214 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_NETWORK_TIMEOUT; 220 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_NETWORK_TIMEOUT;
215 break; 221 break;
216 case content::DOWNLOAD_INTERRUPT_REASON_NETWORK_DISCONNECTED: 222 case content::DOWNLOAD_INTERRUPT_REASON_NETWORK_DISCONNECTED:
217 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_NETWORK_DISCONNECTED; 223 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_NETWORK_DISCONNECTED;
218 break; 224 break;
219 case content::DOWNLOAD_INTERRUPT_REASON_NETWORK_SERVER_DOWN: 225 case content::DOWNLOAD_INTERRUPT_REASON_NETWORK_SERVER_DOWN:
220 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_SERVER_DOWN; 226 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_SERVER_DOWN;
221 break; 227 break;
222 case content::DOWNLOAD_INTERRUPT_REASON_SERVER_FAILED: 228 case content::DOWNLOAD_INTERRUPT_REASON_SERVER_FAILED:
223 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_SERVER_PROBLEM; 229 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_SERVER_PROBLEM;
224 break; 230 break;
225 case content::DOWNLOAD_INTERRUPT_REASON_SERVER_BAD_CONTENT: 231 case content::DOWNLOAD_INTERRUPT_REASON_SERVER_BAD_CONTENT:
226 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_NO_FILE; 232 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_NO_FILE;
227 break; 233 break;
228 case content::DOWNLOAD_INTERRUPT_REASON_USER_CANCELED: 234 case content::DOWNLOAD_INTERRUPT_REASON_USER_CANCELED:
229 string_id = IDS_DOWNLOAD_STATUS_CANCELLED; 235 string_id = IDS_DOWNLOAD_STATUS_CANCELLED;
230 break; 236 break;
231 case content::DOWNLOAD_INTERRUPT_REASON_USER_SHUTDOWN: 237 case content::DOWNLOAD_INTERRUPT_REASON_USER_SHUTDOWN:
232 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_SHUTDOWN; 238 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_SHUTDOWN;
233 break; 239 break;
234 case content::DOWNLOAD_INTERRUPT_REASON_CRASH: 240 case content::DOWNLOAD_INTERRUPT_REASON_CRASH:
235 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_CRASH; 241 string_id = IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_CRASH;
236 break; 242 break;
237 default: 243 case content::DOWNLOAD_INTERRUPT_REASON_NONE:
244 NOTREACHED();
245 // fallthrough
246 case content::DOWNLOAD_INTERRUPT_REASON_SERVER_NO_RANGE:
247 case content::DOWNLOAD_INTERRUPT_REASON_SERVER_PRECONDITION:
248 case content::DOWNLOAD_INTERRUPT_REASON_FILE_FAILED:
238 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS; 249 string_id = IDS_DOWNLOAD_INTERRUPTED_STATUS;
239 break;
240 } 250 }
241 251
242 status_text = l10n_util::GetStringUTF16(string_id); 252 status_text = l10n_util::GetStringUTF16(string_id);
243 253
244 return status_text; 254 return status_text;
245 } 255 }
246 256
247 } // namespace 257 } // namespace
248 258
249 // ----------------------------------------------------------------------------- 259 // -----------------------------------------------------------------------------
(...skipping 393 matching lines...) Expand 10 before | Expand all | Expand 10 after
643 if (!download_service) 653 if (!download_service)
644 return; 654 return;
645 655
646 ChromeDownloadManagerDelegate* delegate = 656 ChromeDownloadManagerDelegate* delegate =
647 download_service->GetDownloadManagerDelegate(); 657 download_service->GetDownloadManagerDelegate();
648 if (!delegate) 658 if (!delegate)
649 return; 659 return;
650 delegate->OpenDownloadUsingPlatformHandler(download_); 660 delegate->OpenDownloadUsingPlatformHandler(download_);
651 RecordDownloadOpenMethod(DOWNLOAD_OPEN_METHOD_USER_PLATFORM); 661 RecordDownloadOpenMethod(DOWNLOAD_OPEN_METHOD_USER_PLATFORM);
652 } 662 }
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