Chromium Code Reviews| 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 // File method ordering: Methods in this file are in the same order as | 5 // File method ordering: Methods in this file are in the same order as |
| 6 // in download_item_impl.h, with the following exception: The public | 6 // in download_item_impl.h, with the following exception: The public |
| 7 // interface Start is placed in chronological order with the other | 7 // interface Start is placed in chronological order with the other |
| 8 // (private) routines that together define a DownloadItem's state | 8 // (private) routines that together define a DownloadItem's state |
| 9 // transitions as the download progresses. See "Download progression | 9 // transitions as the download progresses. See "Download progression |
| 10 // cascade" later in this file. | 10 // cascade" later in this file. |
| (...skipping 1020 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1031 // Cancel on the UI thread with an update on the FILE thread. | 1031 // Cancel on the UI thread with an update on the FILE thread. |
| 1032 // | 1032 // |
| 1033 // TODO(rdsmith): Arguably we should let this go through, as this means | 1033 // TODO(rdsmith): Arguably we should let this go through, as this means |
| 1034 // the download really did get further than we know before it was | 1034 // the download really did get further than we know before it was |
| 1035 // cancelled. But the gain isn't very large, and the code is more | 1035 // cancelled. But the gain isn't very large, and the code is more |
| 1036 // fragile if it has to support in progress updates in a non-in-progress | 1036 // fragile if it has to support in progress updates in a non-in-progress |
| 1037 // state. This issue should be readdressed when we revamp performance | 1037 // state. This issue should be readdressed when we revamp performance |
| 1038 // reporting. | 1038 // reporting. |
| 1039 return; | 1039 return; |
| 1040 } | 1040 } |
| 1041 | |
| 1042 int previous_progress = PercentComplete(); | |
| 1041 bytes_per_sec_ = bytes_per_sec; | 1043 bytes_per_sec_ = bytes_per_sec; |
| 1042 hash_state_ = hash_state; | 1044 hash_state_ = hash_state; |
| 1043 received_bytes_ = bytes_so_far; | 1045 received_bytes_ = bytes_so_far; |
| 1044 | 1046 |
| 1045 // If we've received more data than we were expecting (bad server info?), | 1047 // If we've received more data than we were expecting (bad server info?), |
| 1046 // revert to 'unknown size mode'. | 1048 // revert to 'unknown size mode'. |
| 1047 if (received_bytes_ > total_bytes_) | 1049 if (received_bytes_ > total_bytes_) |
| 1048 total_bytes_ = 0; | 1050 total_bytes_ = 0; |
| 1049 | 1051 |
| 1050 if (bound_net_log_.IsCapturing()) { | 1052 if (bound_net_log_.IsCapturing()) { |
| 1051 bound_net_log_.AddEvent( | 1053 bound_net_log_.AddEvent( |
| 1052 net::NetLog::TYPE_DOWNLOAD_ITEM_UPDATED, | 1054 net::NetLog::TYPE_DOWNLOAD_ITEM_UPDATED, |
| 1053 net::NetLog::Int64Callback("bytes_so_far", received_bytes_)); | 1055 net::NetLog::Int64Callback("bytes_so_far", received_bytes_)); |
| 1054 } | 1056 } |
| 1055 | 1057 |
| 1056 UpdateObservers(); | 1058 // Don't bother to update observers unless the progress percentage has |
| 1059 // actually changed. | |
| 1060 if (previous_progress != -1 && PercentComplete() != previous_progress) | |
|
asanka
2015/12/18 03:39:16
This change places the responsibility of throttlin
Evan Stade
2015/12/18 19:01:38
My justification for putting the responsibility he
Evan Stade
2015/12/29 18:57:03
reverted this change
| |
| 1061 UpdateObservers(); | |
| 1057 } | 1062 } |
| 1058 | 1063 |
| 1059 void DownloadItemImpl::DestinationError(DownloadInterruptReason reason) { | 1064 void DownloadItemImpl::DestinationError(DownloadInterruptReason reason) { |
| 1060 // Postpone recognition of this error until after file name determination | 1065 // Postpone recognition of this error until after file name determination |
| 1061 // has completed and the intermediate file has been renamed to simplify | 1066 // has completed and the intermediate file has been renamed to simplify |
| 1062 // resumption conditions. | 1067 // resumption conditions. |
| 1063 if (current_path_.empty() || target_path_.empty()) | 1068 if (current_path_.empty() || target_path_.empty()) |
| 1064 destination_error_ = reason; | 1069 destination_error_ = reason; |
| 1065 else | 1070 else |
| 1066 Interrupt(reason); | 1071 Interrupt(reason); |
| (...skipping 727 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1794 case RESUME_MODE_USER_CONTINUE: | 1799 case RESUME_MODE_USER_CONTINUE: |
| 1795 return "USER_CONTINUE"; | 1800 return "USER_CONTINUE"; |
| 1796 case RESUME_MODE_USER_RESTART: | 1801 case RESUME_MODE_USER_RESTART: |
| 1797 return "USER_RESTART"; | 1802 return "USER_RESTART"; |
| 1798 } | 1803 } |
| 1799 NOTREACHED() << "Unknown resume mode " << mode; | 1804 NOTREACHED() << "Unknown resume mode " << mode; |
| 1800 return "unknown"; | 1805 return "unknown"; |
| 1801 } | 1806 } |
| 1802 | 1807 |
| 1803 } // namespace content | 1808 } // namespace content |
| OLD | NEW |