| 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 // DownloadHistory manages persisting DownloadItems to the history service by |    5 // DownloadHistory manages persisting DownloadItems to the history service by | 
|    6 // observing a single DownloadManager and all its DownloadItems using an |    6 // observing a single DownloadManager and all its DownloadItems using an | 
|    7 // AllDownloadItemNotifier. |    7 // AllDownloadItemNotifier. | 
|    8 // |    8 // | 
|    9 // DownloadHistory decides whether and when to add items to, remove items from, |    9 // DownloadHistory decides whether and when to add items to, remove items from, | 
|   10 // and update items in the database. DownloadHistory uses DownloadHistoryData to |   10 // and update items in the database. DownloadHistory uses DownloadHistoryData to | 
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  134       item->GetTabReferrerUrl(), |  134       item->GetTabReferrerUrl(), | 
|  135       std::string(),  // HTTP method (not available yet) |  135       std::string(),  // HTTP method (not available yet) | 
|  136       item->GetMimeType(), item->GetOriginalMimeType(), item->GetStartTime(), |  136       item->GetMimeType(), item->GetOriginalMimeType(), item->GetStartTime(), | 
|  137       item->GetEndTime(), item->GetETag(), item->GetLastModifiedTime(), |  137       item->GetEndTime(), item->GetETag(), item->GetLastModifiedTime(), | 
|  138       item->GetReceivedBytes(), item->GetTotalBytes(), |  138       item->GetReceivedBytes(), item->GetTotalBytes(), | 
|  139       history::ToHistoryDownloadState(item->GetState()), |  139       history::ToHistoryDownloadState(item->GetState()), | 
|  140       history::ToHistoryDownloadDangerType(item->GetDangerType()), |  140       history::ToHistoryDownloadDangerType(item->GetDangerType()), | 
|  141       history::ToHistoryDownloadInterruptReason(item->GetLastReason()), |  141       history::ToHistoryDownloadInterruptReason(item->GetLastReason()), | 
|  142       std::string(),  // Hash value (not available yet) |  142       std::string(),  // Hash value (not available yet) | 
|  143       history::ToHistoryDownloadId(item->GetId()), item->GetGuid(), |  143       history::ToHistoryDownloadId(item->GetId()), item->GetGuid(), | 
|  144       item->GetOpened(), item->GetLastAccessTime(), by_ext_id, by_ext_name, |  144       item->GetOpened(), item->GetLastAccessTime(), item->IsVisible(), | 
|  145       history::GetHistoryDownloadSliceInfos(*item)); |  145       by_ext_id, by_ext_name, history::GetHistoryDownloadSliceInfos(*item)); | 
|  146 } |  146 } | 
|  147  |  147  | 
|  148 enum class ShouldUpdateHistoryResult { |  148 enum class ShouldUpdateHistoryResult { | 
|  149   NO_UPDATE, |  149   NO_UPDATE, | 
|  150   UPDATE, |  150   UPDATE, | 
|  151   UPDATE_IMMEDIATELY, |  151   UPDATE_IMMEDIATELY, | 
|  152 }; |  152 }; | 
|  153  |  153  | 
|  154 ShouldUpdateHistoryResult ShouldUpdateHistory( |  154 ShouldUpdateHistoryResult ShouldUpdateHistory( | 
|  155     const history::DownloadRow* previous, |  155     const history::DownloadRow* previous, | 
| (...skipping 16 matching lines...) Expand all  Loading... | 
|  172       (previous->received_bytes != current.received_bytes) || |  172       (previous->received_bytes != current.received_bytes) || | 
|  173       (previous->total_bytes != current.total_bytes) || |  173       (previous->total_bytes != current.total_bytes) || | 
|  174       (previous->etag != current.etag) || |  174       (previous->etag != current.etag) || | 
|  175       (previous->last_modified != current.last_modified) || |  175       (previous->last_modified != current.last_modified) || | 
|  176       (previous->state != current.state) || |  176       (previous->state != current.state) || | 
|  177       (previous->danger_type != current.danger_type) || |  177       (previous->danger_type != current.danger_type) || | 
|  178       (previous->interrupt_reason != current.interrupt_reason) || |  178       (previous->interrupt_reason != current.interrupt_reason) || | 
|  179       (previous->hash != current.hash) || |  179       (previous->hash != current.hash) || | 
|  180       (previous->opened != current.opened) || |  180       (previous->opened != current.opened) || | 
|  181       (previous->last_access_time != current.last_access_time) || |  181       (previous->last_access_time != current.last_access_time) || | 
 |  182       (previous->visible != current.visible) || | 
|  182       (previous->by_ext_id != current.by_ext_id) || |  183       (previous->by_ext_id != current.by_ext_id) || | 
|  183       (previous->by_ext_name != current.by_ext_name) || |  184       (previous->by_ext_name != current.by_ext_name) || | 
|  184       (previous->download_slice_info != current.download_slice_info)) { |  185       (previous->download_slice_info != current.download_slice_info)) { | 
|  185     return ShouldUpdateHistoryResult::UPDATE; |  186     return ShouldUpdateHistoryResult::UPDATE; | 
|  186   } |  187   } | 
|  187  |  188  | 
|  188   return ShouldUpdateHistoryResult::NO_UPDATE; |  189   return ShouldUpdateHistoryResult::NO_UPDATE; | 
|  189 } |  190 } | 
|  190  |  191  | 
|  191 typedef std::vector<history::DownloadRow> InfoVector; |  192 typedef std::vector<history::DownloadRow> InfoVector; | 
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  292         it->guid, loading_id_, it->current_path, it->target_path, it->url_chain, |  293         it->guid, loading_id_, it->current_path, it->target_path, it->url_chain, | 
|  293         it->referrer_url, it->site_url, it->tab_url, it->tab_referrer_url, |  294         it->referrer_url, it->site_url, it->tab_url, it->tab_referrer_url, | 
|  294         it->mime_type, it->original_mime_type, it->start_time, it->end_time, |  295         it->mime_type, it->original_mime_type, it->start_time, it->end_time, | 
|  295         it->etag, it->last_modified, it->received_bytes, it->total_bytes, |  296         it->etag, it->last_modified, it->received_bytes, it->total_bytes, | 
|  296         std::string(),  // TODO(asanka): Need to persist and restore hash of |  297         std::string(),  // TODO(asanka): Need to persist and restore hash of | 
|  297                         // partial file for an interrupted download. No need to |  298                         // partial file for an interrupted download. No need to | 
|  298                         // store hash for a completed file. |  299                         // store hash for a completed file. | 
|  299         history::ToContentDownloadState(it->state), |  300         history::ToContentDownloadState(it->state), | 
|  300         history::ToContentDownloadDangerType(it->danger_type), |  301         history::ToContentDownloadDangerType(it->danger_type), | 
|  301         history::ToContentDownloadInterruptReason(it->interrupt_reason), |  302         history::ToContentDownloadInterruptReason(it->interrupt_reason), | 
|  302         it->opened, it->last_access_time, |  303         it->opened, it->last_access_time, it->visible, | 
|  303         history::ToContentReceivedSlices(it->download_slice_info)); |  304         history::ToContentReceivedSlices(it->download_slice_info)); | 
|  304 #if BUILDFLAG(ENABLE_EXTENSIONS) |  305 #if BUILDFLAG(ENABLE_EXTENSIONS) | 
|  305     if (!it->by_ext_id.empty() && !it->by_ext_name.empty()) { |  306     if (!it->by_ext_id.empty() && !it->by_ext_name.empty()) { | 
|  306       new extensions::DownloadedByExtension( |  307       new extensions::DownloadedByExtension( | 
|  307           item, it->by_ext_id, it->by_ext_name); |  308           item, it->by_ext_id, it->by_ext_name); | 
|  308       item->UpdateObservers(); |  309       item->UpdateObservers(); | 
|  309     } |  310     } | 
|  310 #endif |  311 #endif | 
|  311     DCHECK_EQ(DownloadHistoryData::PERSISTED, |  312     DCHECK_EQ(DownloadHistoryData::PERSISTED, | 
|  312               DownloadHistoryData::Get(item)->state()); |  313               DownloadHistoryData::Get(item)->state()); | 
| (...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  494 } |  495 } | 
|  495  |  496  | 
|  496 void DownloadHistory::RemoveDownloadsBatch() { |  497 void DownloadHistory::RemoveDownloadsBatch() { | 
|  497   DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |  498   DCHECK_CURRENTLY_ON(content::BrowserThread::UI); | 
|  498   IdSet remove_ids; |  499   IdSet remove_ids; | 
|  499   removing_ids_.swap(remove_ids); |  500   removing_ids_.swap(remove_ids); | 
|  500   history_->RemoveDownloads(remove_ids); |  501   history_->RemoveDownloads(remove_ids); | 
|  501   for (Observer& observer : observers_) |  502   for (Observer& observer : observers_) | 
|  502     observer.OnDownloadsRemoved(remove_ids); |  503     observer.OnDownloadsRemoved(remove_ids); | 
|  503 } |  504 } | 
| OLD | NEW |