Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(178)

Side by Side Diff: chrome/browser/download/download_history.cc

Issue 833033002: Remove dependency on //content from history DownloadDatabase (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove obsolete #include Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 12 matching lines...) Expand all
23 // callback is called. All callbacks are bound with a weak pointer to 23 // callback is called. All callbacks are bound with a weak pointer to
24 // DownloadHistory to prevent use-after-free bugs. 24 // DownloadHistory to prevent use-after-free bugs.
25 // ChromeDownloadManagerDelegate owns DownloadHistory, and deletes it in 25 // ChromeDownloadManagerDelegate owns DownloadHistory, and deletes it in
26 // Shutdown(), which is called by DownloadManagerImpl::Shutdown() after all 26 // Shutdown(), which is called by DownloadManagerImpl::Shutdown() after all
27 // DownloadItems are destroyed. 27 // DownloadItems are destroyed.
28 28
29 #include "chrome/browser/download/download_history.h" 29 #include "chrome/browser/download/download_history.h"
30 30
31 #include "base/metrics/histogram.h" 31 #include "base/metrics/histogram.h"
32 #include "chrome/browser/download/download_crx_util.h" 32 #include "chrome/browser/download/download_crx_util.h"
33 #include "chrome/browser/history/download_database.h"
34 #include "chrome/browser/history/download_row.h"
35 #include "chrome/browser/history/history_service.h" 33 #include "chrome/browser/history/history_service.h"
34 #include "components/history/content/browser/download_constants_utils.h"
35 #include "components/history/core/browser/download_database.h"
36 #include "components/history/core/browser/download_row.h"
36 #include "content/public/browser/browser_thread.h" 37 #include "content/public/browser/browser_thread.h"
37 #include "content/public/browser/download_item.h" 38 #include "content/public/browser/download_item.h"
38 #include "content/public/browser/download_manager.h" 39 #include "content/public/browser/download_manager.h"
39 40
40 #if defined(ENABLE_EXTENSIONS) 41 #if defined(ENABLE_EXTENSIONS)
41 #include "chrome/browser/extensions/api/downloads/downloads_api.h" 42 #include "chrome/browser/extensions/api/downloads/downloads_api.h"
42 #endif 43 #endif
43 44
44 namespace { 45 namespace {
45 46
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
128 item->GetUrlChain(), 129 item->GetUrlChain(),
129 item->GetReferrerUrl(), 130 item->GetReferrerUrl(),
130 item->GetMimeType(), 131 item->GetMimeType(),
131 item->GetOriginalMimeType(), 132 item->GetOriginalMimeType(),
132 item->GetStartTime(), 133 item->GetStartTime(),
133 item->GetEndTime(), 134 item->GetEndTime(),
134 item->GetETag(), 135 item->GetETag(),
135 item->GetLastModifiedTime(), 136 item->GetLastModifiedTime(),
136 item->GetReceivedBytes(), 137 item->GetReceivedBytes(),
137 item->GetTotalBytes(), 138 item->GetTotalBytes(),
138 item->GetState(), 139 history::ToHistoryDownloadState(item->GetState()),
139 item->GetDangerType(), 140 history::ToHistoryDownloadDangerType(item->GetDangerType()),
140 item->GetLastReason(), 141 history::ToHistoryDownloadInterruptReason(item->GetLastReason()),
141 item->GetId(), 142 history::ToHistoryDownloadId(item->GetId()),
142 item->GetOpened(), 143 item->GetOpened(),
143 by_ext_id, 144 by_ext_id,
144 by_ext_name); 145 by_ext_name);
145 } 146 }
146 147
147 bool ShouldUpdateHistory(const history::DownloadRow* previous, 148 bool ShouldUpdateHistory(const history::DownloadRow* previous,
148 const history::DownloadRow& current) { 149 const history::DownloadRow& current) {
149 // Ignore url, referrer, mime_type, original_mime_type, start_time, 150 // Ignore url, referrer, mime_type, original_mime_type, start_time,
150 // id, db_handle, which don't change. 151 // id, db_handle, which don't change.
151 return ((previous == NULL) || 152 return ((previous == NULL) ||
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
250 download->GetId() == loading_id_; 251 download->GetId() == loading_id_;
251 } 252 }
252 253
253 void DownloadHistory::QueryCallback(scoped_ptr<InfoVector> infos) { 254 void DownloadHistory::QueryCallback(scoped_ptr<InfoVector> infos) {
254 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); 255 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
255 // ManagerGoingDown() may have happened before the history loaded. 256 // ManagerGoingDown() may have happened before the history loaded.
256 if (!notifier_.GetManager()) 257 if (!notifier_.GetManager())
257 return; 258 return;
258 for (InfoVector::const_iterator it = infos->begin(); 259 for (InfoVector::const_iterator it = infos->begin();
259 it != infos->end(); ++it) { 260 it != infos->end(); ++it) {
260 loading_id_ = it->id; 261 loading_id_ = history::ToContentDownloadId(it->id);
261 content::DownloadItem* item = notifier_.GetManager()->CreateDownloadItem( 262 content::DownloadItem* item = notifier_.GetManager()->CreateDownloadItem(
262 loading_id_, 263 loading_id_,
263 it->current_path, 264 it->current_path,
264 it->target_path, 265 it->target_path,
265 it->url_chain, 266 it->url_chain,
266 it->referrer_url, 267 it->referrer_url,
267 it->mime_type, 268 it->mime_type,
268 it->original_mime_type, 269 it->original_mime_type,
269 it->start_time, 270 it->start_time,
270 it->end_time, 271 it->end_time,
271 it->etag, 272 it->etag,
272 it->last_modified, 273 it->last_modified,
273 it->received_bytes, 274 it->received_bytes,
274 it->total_bytes, 275 it->total_bytes,
275 it->state, 276 history::ToContentDownloadState(it->state),
276 it->danger_type, 277 history::ToContentDownloadDangerType(it->danger_type),
277 it->interrupt_reason, 278 history::ToContentDownloadInterruptReason(it->interrupt_reason),
278 it->opened); 279 it->opened);
279 #if defined(ENABLE_EXTENSIONS) 280 #if defined(ENABLE_EXTENSIONS)
280 if (!it->by_ext_id.empty() && !it->by_ext_name.empty()) { 281 if (!it->by_ext_id.empty() && !it->by_ext_name.empty()) {
281 new extensions::DownloadedByExtension( 282 new extensions::DownloadedByExtension(
282 item, it->by_ext_id, it->by_ext_name); 283 item, it->by_ext_id, it->by_ext_name);
283 item->UpdateObservers(); 284 item->UpdateObservers();
284 } 285 }
285 #endif 286 #endif
286 DCHECK_EQ(DownloadHistoryData::PERSISTED, 287 DCHECK_EQ(DownloadHistoryData::PERSISTED,
287 DownloadHistoryData::Get(item)->state()); 288 DownloadHistoryData::Get(item)->state());
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
455 removing_ids_.insert(download_id); 456 removing_ids_.insert(download_id);
456 } 457 }
457 458
458 void DownloadHistory::RemoveDownloadsBatch() { 459 void DownloadHistory::RemoveDownloadsBatch() {
459 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); 460 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
460 IdSet remove_ids; 461 IdSet remove_ids;
461 removing_ids_.swap(remove_ids); 462 removing_ids_.swap(remove_ids);
462 history_->RemoveDownloads(remove_ids); 463 history_->RemoveDownloads(remove_ids);
463 FOR_EACH_OBSERVER(Observer, observers_, OnDownloadsRemoved(remove_ids)); 464 FOR_EACH_OBSERVER(Observer, observers_, OnDownloadsRemoved(remove_ids));
464 } 465 }
OLDNEW
« no previous file with comments | « chrome/browser/download/download_browsertest.cc ('k') | chrome/browser/download/download_history_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698