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 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
155 file_externally_removed_(false), | 155 file_externally_removed_(false), |
156 auto_opened_(false), | 156 auto_opened_(false), |
157 is_temporary_(false), | 157 is_temporary_(false), |
158 all_data_saved_(state == COMPLETE), | 158 all_data_saved_(state == COMPLETE), |
159 destination_error_(content::DOWNLOAD_INTERRUPT_REASON_NONE), | 159 destination_error_(content::DOWNLOAD_INTERRUPT_REASON_NONE), |
160 opened_(opened), | 160 opened_(opened), |
161 delegate_delayed_complete_(false), | 161 delegate_delayed_complete_(false), |
162 bound_net_log_(bound_net_log), | 162 bound_net_log_(bound_net_log), |
163 weak_ptr_factory_(this) { | 163 weak_ptr_factory_(this) { |
164 delegate_->Attach(); | 164 delegate_->Attach(); |
165 DCHECK_NE(IN_PROGRESS_INTERNAL, state_); | 165 DCHECK_NE(IN_PROGRESS_INTERNAL, state_); |
Dan Beam
2014/12/12 04:29:30
hit this in the tests, rewrote with gmock, ptal
| |
166 Init(false /* not actively downloading */, SRC_HISTORY_IMPORT); | 166 Init(false /* not actively downloading */, SRC_HISTORY_IMPORT); |
167 } | 167 } |
168 | 168 |
169 // Constructing for a regular download: | 169 // Constructing for a regular download: |
170 DownloadItemImpl::DownloadItemImpl( | 170 DownloadItemImpl::DownloadItemImpl( |
171 DownloadItemImplDelegate* delegate, | 171 DownloadItemImplDelegate* delegate, |
172 uint32 download_id, | 172 uint32 download_id, |
173 const DownloadCreateInfo& info, | 173 const DownloadCreateInfo& info, |
174 const net::BoundNetLog& bound_net_log) | 174 const net::BoundNetLog& bound_net_log) |
175 : is_save_package_download_(false), | 175 : is_save_package_download_(false), |
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
407 | 407 |
408 RecordDownloadCount(CANCELLED_COUNT); | 408 RecordDownloadCount(CANCELLED_COUNT); |
409 | 409 |
410 // TODO(rdsmith/benjhayden): Remove condition as part of | 410 // TODO(rdsmith/benjhayden): Remove condition as part of |
411 // |SavePackage| integration. | 411 // |SavePackage| integration. |
412 // |download_file_| can be NULL if Interrupt() is called after the | 412 // |download_file_| can be NULL if Interrupt() is called after the |
413 // download file has been released. | 413 // download file has been released. |
414 if (!is_save_package_download_ && download_file_) | 414 if (!is_save_package_download_ && download_file_) |
415 ReleaseDownloadFile(true); | 415 ReleaseDownloadFile(true); |
416 | 416 |
417 if (state_ == IN_PROGRESS_INTERNAL) { | 417 // |request_handle_| may be NULL during tests. TODO(dbeam): inject a fake one |
418 // instead? | |
419 if (state_ == IN_PROGRESS_INTERNAL && request_handle_) { | |
418 // Cancel the originating URL request unless it's already been cancelled | 420 // Cancel the originating URL request unless it's already been cancelled |
419 // by interrupt. | 421 // by interrupt. |
420 request_handle_->CancelRequest(); | 422 request_handle_->CancelRequest(); |
421 } | 423 } |
422 | 424 |
423 // Remove the intermediate file if we are cancelling an interrupted download. | 425 // Remove the intermediate file if we are cancelling an interrupted download. |
424 // Continuable interruptions leave the intermediate file around. | 426 // Continuable interruptions leave the intermediate file around. |
425 if ((state_ == INTERRUPTED_INTERNAL || state_ == RESUMING_INTERNAL) && | 427 if ((state_ == INTERRUPTED_INTERNAL || state_ == RESUMING_INTERNAL) && |
426 !current_path_.empty()) { | 428 !current_path_.empty()) { |
427 BrowserThread::PostTask( | 429 BrowserThread::PostTask( |
(...skipping 1376 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1804 case RESUME_MODE_USER_CONTINUE: | 1806 case RESUME_MODE_USER_CONTINUE: |
1805 return "USER_CONTINUE"; | 1807 return "USER_CONTINUE"; |
1806 case RESUME_MODE_USER_RESTART: | 1808 case RESUME_MODE_USER_RESTART: |
1807 return "USER_RESTART"; | 1809 return "USER_RESTART"; |
1808 } | 1810 } |
1809 NOTREACHED() << "Unknown resume mode " << mode; | 1811 NOTREACHED() << "Unknown resume mode " << mode; |
1810 return "unknown"; | 1812 return "unknown"; |
1811 } | 1813 } |
1812 | 1814 |
1813 } // namespace content | 1815 } // namespace content |
OLD | NEW |