OLD | NEW |
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 // Each download is represented by a DownloadItem, and all DownloadItems | 5 // Each download is represented by a DownloadItem, and all DownloadItems |
6 // are owned by the DownloadManager which maintains a global list of all | 6 // are owned by the DownloadManager which maintains a global list of all |
7 // downloads. DownloadItems are created when a user initiates a download, | 7 // downloads. DownloadItems are created when a user initiates a download, |
8 // and exist for the duration of the browser life time. | 8 // and exist for the duration of the browser life time. |
9 // | 9 // |
10 // Download observers: | 10 // Download observers: |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
68 // Maximum value. | 68 // Maximum value. |
69 MAX_DOWNLOAD_STATE | 69 MAX_DOWNLOAD_STATE |
70 }; | 70 }; |
71 | 71 |
72 enum SafetyState { | 72 enum SafetyState { |
73 SAFE = 0, | 73 SAFE = 0, |
74 DANGEROUS, | 74 DANGEROUS, |
75 DANGEROUS_BUT_VALIDATED // Dangerous but the user confirmed the download. | 75 DANGEROUS_BUT_VALIDATED // Dangerous but the user confirmed the download. |
76 }; | 76 }; |
77 | 77 |
78 // This enum is used by histograms. Do not change the ordering or remove | |
79 // items. | |
80 enum DangerType { | |
81 NOT_DANGEROUS = 0, | |
82 | |
83 // A dangerous file to the system (e.g.: an executable or extension from | |
84 // places other than gallery). | |
85 DANGEROUS_FILE, | |
86 | |
87 // Safebrowsing service shows this URL leads to malicious file download. | |
88 DANGEROUS_URL, | |
89 | |
90 // Memory space for histograms is determined by the max. | |
91 // ALWAYS ADD NEW VALUES BEFORE THIS ONE. | |
92 DANGEROUS_TYPE_MAX | |
93 }; | |
94 | |
95 // Reason for deleting the download. Passed to Delete(). | 78 // Reason for deleting the download. Passed to Delete(). |
96 enum DeleteReason { | 79 enum DeleteReason { |
97 DELETE_DUE_TO_BROWSER_SHUTDOWN = 0, | 80 DELETE_DUE_TO_BROWSER_SHUTDOWN = 0, |
98 DELETE_DUE_TO_USER_DISCARD | 81 DELETE_DUE_TO_USER_DISCARD |
99 }; | 82 }; |
100 | 83 |
101 // A fake download table ID which represents a download that has started, | 84 // A fake download table ID which represents a download that has started, |
102 // but is not yet in the table. | 85 // but is not yet in the table. |
103 static const int kUninitializedHandle; | 86 static const int kUninitializedHandle; |
104 | 87 |
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
290 base::Time end_time() const { return end_time_; } | 273 base::Time end_time() const { return end_time_; } |
291 void set_db_handle(int64 handle) { db_handle_ = handle; } | 274 void set_db_handle(int64 handle) { db_handle_ = handle; } |
292 int64 db_handle() const { return db_handle_; } | 275 int64 db_handle() const { return db_handle_; } |
293 DownloadManager* download_manager() { return download_manager_; } | 276 DownloadManager* download_manager() { return download_manager_; } |
294 bool is_paused() const { return is_paused_; } | 277 bool is_paused() const { return is_paused_; } |
295 bool open_when_complete() const { return open_when_complete_; } | 278 bool open_when_complete() const { return open_when_complete_; } |
296 void set_open_when_complete(bool open) { open_when_complete_ = open; } | 279 void set_open_when_complete(bool open) { open_when_complete_ = open; } |
297 bool file_externally_removed() const { return file_externally_removed_; } | 280 bool file_externally_removed() const { return file_externally_removed_; } |
298 SafetyState safety_state() const { return safety_state_; } | 281 SafetyState safety_state() const { return safety_state_; } |
299 // Why |safety_state_| is not SAFE. | 282 // Why |safety_state_| is not SAFE. |
300 DangerType GetDangerType() const; | 283 DownloadStateInfo::DangerType GetDangerType() const; |
301 bool IsDangerous() const; | 284 bool IsDangerous() const; |
302 void MarkFileDangerous(); | 285 void MarkFileDangerous(); |
303 void MarkUrlDangerous(); | 286 void MarkUrlDangerous(); |
| 287 void MarkContentDangerous(); |
304 | 288 |
305 bool auto_opened() { return auto_opened_; } | 289 bool auto_opened() { return auto_opened_; } |
306 const FilePath& target_name() const { return state_info_.target_name; } | 290 const FilePath& target_name() const { return state_info_.target_name; } |
307 bool prompt_user_for_save_location() const { | 291 bool prompt_user_for_save_location() const { |
308 return state_info_.prompt_user_for_save_location; | 292 return state_info_.prompt_user_for_save_location; |
309 } | 293 } |
310 bool is_otr() const { return is_otr_; } | 294 bool is_otr() const { return is_otr_; } |
311 const FilePath& suggested_path() const { return state_info_.suggested_path; } | 295 const FilePath& suggested_path() const { return state_info_.suggested_path; } |
312 bool is_temporary() const { return is_temporary_; } | 296 bool is_temporary() const { return is_temporary_; } |
313 void set_opened(bool opened) { opened_ = opened; } | 297 void set_opened(bool opened) { opened_ = opened; } |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
357 // Internal helper for maintaining consistent received and total sizes. | 341 // Internal helper for maintaining consistent received and total sizes. |
358 void UpdateSize(int64 size); | 342 void UpdateSize(int64 size); |
359 | 343 |
360 // Called when the entire download operation (including renaming etc) | 344 // Called when the entire download operation (including renaming etc) |
361 // is completed. | 345 // is completed. |
362 void Completed(); | 346 void Completed(); |
363 | 347 |
364 // Call to transition state; all state transitions should go through this. | 348 // Call to transition state; all state transitions should go through this. |
365 void TransitionTo(DownloadState new_state); | 349 void TransitionTo(DownloadState new_state); |
366 | 350 |
367 // Called when safety_state_ should be recomputed from is_dangerous_file | 351 // Called when safety_state_ should be recomputed from the DangerType of the |
368 // and is_dangerous_url. | 352 // state info. |
369 void UpdateSafetyState(); | 353 void UpdateSafetyState(); |
370 | 354 |
371 // Helper function to recompute |state_info_.target_name| when | 355 // Helper function to recompute |state_info_.target_name| when |
372 // it may have changed. (If it's non-null it should be left alone, | 356 // it may have changed. (If it's non-null it should be left alone, |
373 // otherwise updated from |full_path_|.) | 357 // otherwise updated from |full_path_|.) |
374 void UpdateTarget(); | 358 void UpdateTarget(); |
375 | 359 |
376 // State information used by the download manager. | 360 // State information used by the download manager. |
377 DownloadStateInfo state_info_; | 361 DownloadStateInfo state_info_; |
378 | 362 |
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
489 // only. | 473 // only. |
490 bool open_enabled_; | 474 bool open_enabled_; |
491 | 475 |
492 // Did the delegate delay calling Complete on this download? | 476 // Did the delegate delay calling Complete on this download? |
493 bool delegate_delayed_complete_; | 477 bool delegate_delayed_complete_; |
494 | 478 |
495 DISALLOW_COPY_AND_ASSIGN(DownloadItem); | 479 DISALLOW_COPY_AND_ASSIGN(DownloadItem); |
496 }; | 480 }; |
497 | 481 |
498 #endif // CONTENT_BROWSER_DOWNLOAD_DOWNLOAD_ITEM_H_ | 482 #endif // CONTENT_BROWSER_DOWNLOAD_DOWNLOAD_ITEM_H_ |
OLD | NEW |