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 1140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1151 OnAllDataSaved(total_bytes, std::move(secure_hash)); | 1151 OnAllDataSaved(total_bytes, std::move(secure_hash)); |
| 1152 MaybeCompleteDownload(); | 1152 MaybeCompleteDownload(); |
| 1153 } | 1153 } |
| 1154 | 1154 |
| 1155 // **** Download progression cascade | 1155 // **** Download progression cascade |
| 1156 | 1156 |
| 1157 void DownloadItemImpl::Init(bool active, | 1157 void DownloadItemImpl::Init(bool active, |
| 1158 DownloadType download_type) { | 1158 DownloadType download_type) { |
| 1159 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 1159 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 1160 | 1160 |
| 1161 if (active) | 1161 if (active) { |
| 1162 RecordDownloadCount(START_COUNT); | 1162 RecordDownloadCount(START_COUNT); |
| 1163 if (GetWebContents() && | |
|
asanka
2017/03/22 21:03:02
For a new single resource download, Init() gets ca
shaktisahu
2017/03/22 22:21:36
Done.
| |
| 1164 !GetWebContents()->GetBrowserContext()->IsOffTheRecord()) { | |
| 1165 RecordDownloadCount(START_COUNT_NORMAL_PROFILE); | |
| 1166 } | |
| 1167 } | |
| 1163 | 1168 |
| 1164 std::string file_name; | 1169 std::string file_name; |
| 1165 if (download_type == SRC_HISTORY_IMPORT) { | 1170 if (download_type == SRC_HISTORY_IMPORT) { |
| 1166 // target_path_ works for History and Save As versions. | 1171 // target_path_ works for History and Save As versions. |
| 1167 file_name = target_path_.AsUTF8Unsafe(); | 1172 file_name = target_path_.AsUTF8Unsafe(); |
| 1168 } else { | 1173 } else { |
| 1169 // See if it's set programmatically. | 1174 // See if it's set programmatically. |
| 1170 file_name = forced_file_path_.AsUTF8Unsafe(); | 1175 file_name = forced_file_path_.AsUTF8Unsafe(); |
| 1171 // Possibly has a 'download' attribute for the anchor. | 1176 // Possibly has a 'download' attribute for the anchor. |
| 1172 if (file_name.empty()) | 1177 if (file_name.empty()) |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1251 | 1256 |
| 1252 // Otherwise, this was a resumption attempt which ended with an | 1257 // Otherwise, this was a resumption attempt which ended with an |
| 1253 // interruption. Continue with current target path. | 1258 // interruption. Continue with current target path. |
| 1254 TransitionTo(TARGET_RESOLVED_INTERNAL); | 1259 TransitionTo(TARGET_RESOLVED_INTERNAL); |
| 1255 InterruptWithPartialState( | 1260 InterruptWithPartialState( |
| 1256 offset, std::move(hash_state), new_create_info.result); | 1261 offset, std::move(hash_state), new_create_info.result); |
| 1257 UpdateObservers(); | 1262 UpdateObservers(); |
| 1258 return; | 1263 return; |
| 1259 } | 1264 } |
| 1260 | 1265 |
| 1266 RecordDownloadMimeType(mime_type_); | |
| 1267 if (GetWebContents() && | |
| 1268 !GetWebContents()->GetBrowserContext()->IsOffTheRecord()) { | |
|
asanka
2017/03/22 21:03:03
Call DownloadItemImpl::GetBrowserContext() directl
shaktisahu
2017/03/22 22:21:36
Done.
Thanks. I am interested in new downloads onl
| |
| 1269 RecordDownloadMimeTypeForNormalProfile(mime_type_); | |
| 1270 } | |
| 1271 | |
| 1261 // Successful download start. | 1272 // Successful download start. |
| 1262 DCHECK(download_file_); | 1273 DCHECK(download_file_); |
| 1263 DCHECK(job_); | 1274 DCHECK(job_); |
| 1264 | 1275 |
| 1265 if (state_ == RESUMING_INTERNAL) | 1276 if (state_ == RESUMING_INTERNAL) |
| 1266 UpdateValidatorsOnResumption(new_create_info); | 1277 UpdateValidatorsOnResumption(new_create_info); |
| 1267 | 1278 |
| 1268 TransitionTo(TARGET_PENDING_INTERNAL); | 1279 TransitionTo(TARGET_PENDING_INTERNAL); |
| 1269 | 1280 |
| 1270 job_->Start(); | 1281 job_->Start(); |
| (...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1546 | 1557 |
| 1547 void DownloadItemImpl::Completed() { | 1558 void DownloadItemImpl::Completed() { |
| 1548 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 1559 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 1549 | 1560 |
| 1550 DVLOG(20) << __func__ << "() " << DebugString(false); | 1561 DVLOG(20) << __func__ << "() " << DebugString(false); |
| 1551 | 1562 |
| 1552 DCHECK(all_data_saved_); | 1563 DCHECK(all_data_saved_); |
| 1553 end_time_ = base::Time::Now(); | 1564 end_time_ = base::Time::Now(); |
| 1554 TransitionTo(COMPLETE_INTERNAL); | 1565 TransitionTo(COMPLETE_INTERNAL); |
| 1555 RecordDownloadCompleted(start_tick_, received_bytes_); | 1566 RecordDownloadCompleted(start_tick_, received_bytes_); |
| 1567 if (GetWebContents() && | |
| 1568 !GetWebContents()->GetBrowserContext()->IsOffTheRecord()) { | |
| 1569 RecordDownloadCount(COMPLETED_COUNT_NORMAL_PROFILE); | |
| 1570 } | |
| 1556 | 1571 |
| 1557 if (auto_opened_) { | 1572 if (auto_opened_) { |
| 1558 // If it was already handled by the delegate, do nothing. | 1573 // If it was already handled by the delegate, do nothing. |
| 1559 } else if (GetOpenWhenComplete() || | 1574 } else if (GetOpenWhenComplete() || |
| 1560 ShouldOpenFileBasedOnExtension() || | 1575 ShouldOpenFileBasedOnExtension() || |
| 1561 IsTemporary()) { | 1576 IsTemporary()) { |
| 1562 // If the download is temporary, like in drag-and-drop, do not open it but | 1577 // If the download is temporary, like in drag-and-drop, do not open it but |
| 1563 // we still need to set it auto-opened so that it can be removed from the | 1578 // we still need to set it auto-opened so that it can be removed from the |
| 1564 // download shelf. | 1579 // download shelf. |
| 1565 if (!IsTemporary()) | 1580 if (!IsTemporary()) |
| (...skipping 599 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2165 case RESUME_MODE_USER_CONTINUE: | 2180 case RESUME_MODE_USER_CONTINUE: |
| 2166 return "USER_CONTINUE"; | 2181 return "USER_CONTINUE"; |
| 2167 case RESUME_MODE_USER_RESTART: | 2182 case RESUME_MODE_USER_RESTART: |
| 2168 return "USER_RESTART"; | 2183 return "USER_RESTART"; |
| 2169 } | 2184 } |
| 2170 NOTREACHED() << "Unknown resume mode " << mode; | 2185 NOTREACHED() << "Unknown resume mode " << mode; |
| 2171 return "unknown"; | 2186 return "unknown"; |
| 2172 } | 2187 } |
| 2173 | 2188 |
| 2174 } // namespace content | 2189 } // namespace content |
| OLD | NEW |