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

Side by Side Diff: chrome/browser/history/history_service.cc

Issue 13044019: Clean up entries left by crashes in the DownloadDB. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 8 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 | Annotate | Revision Log
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 // The history system runs on a background thread so that potentially slow 5 // The history system runs on a background thread so that potentially slow
6 // database operations don't delay the browser. This backend processing is 6 // database operations don't delay the browser. This backend processing is
7 // represented by HistoryBackend. The HistoryService's job is to dispatch to 7 // represented by HistoryBackend. The HistoryService's job is to dispatch to
8 // that thread. 8 // that thread.
9 // 9 //
10 // Main thread History thread 10 // Main thread History thread
(...skipping 786 matching lines...) Expand 10 before | Expand all | Expand 10 after
797 // Beware! The first Bind() does not simply |scoped_rows.get()| because 797 // Beware! The first Bind() does not simply |scoped_rows.get()| because
798 // base::Passed(&scoped_rows) nullifies |scoped_rows|, and compilers do not 798 // base::Passed(&scoped_rows) nullifies |scoped_rows|, and compilers do not
799 // guarantee that the first Bind's arguments are evaluated before the second 799 // guarantee that the first Bind's arguments are evaluated before the second
800 // Bind's arguments. 800 // Bind's arguments.
801 thread_->message_loop_proxy()->PostTaskAndReply( 801 thread_->message_loop_proxy()->PostTaskAndReply(
802 FROM_HERE, 802 FROM_HERE,
803 base::Bind(&HistoryBackend::QueryDownloads, history_backend_.get(), rows), 803 base::Bind(&HistoryBackend::QueryDownloads, history_backend_.get(), rows),
804 base::Bind(callback, base::Passed(&scoped_rows))); 804 base::Bind(callback, base::Passed(&scoped_rows)));
805 } 805 }
806 806
807 // Changes all IN_PROGRESS in the database entries to CANCELED.
808 // IN_PROGRESS entries are the corrupted entries, not updated by next function
809 // because of the crash or some other extremal exit.
810 void HistoryService::CleanUpInProgressEntries() {
811 DCHECK(thread_checker_.CalledOnValidThread());
812 ScheduleAndForget(PRIORITY_NORMAL, &HistoryBackend::CleanUpInProgressEntries);
813 }
814
815 // Handle updates for a particular download. This is a 'fire and forget' 807 // Handle updates for a particular download. This is a 'fire and forget'
816 // operation, so we don't need to be called back. 808 // operation, so we don't need to be called back.
817 void HistoryService::UpdateDownload(const history::DownloadRow& data) { 809 void HistoryService::UpdateDownload(const history::DownloadRow& data) {
818 DCHECK(thread_checker_.CalledOnValidThread()); 810 DCHECK(thread_checker_.CalledOnValidThread());
819 ScheduleAndForget(PRIORITY_NORMAL, &HistoryBackend::UpdateDownload, data); 811 ScheduleAndForget(PRIORITY_NORMAL, &HistoryBackend::UpdateDownload, data);
820 } 812 }
821 813
822 void HistoryService::RemoveDownloads(const std::set<int64>& db_handles) { 814 void HistoryService::RemoveDownloads(const std::set<int64>& db_handles) {
823 DCHECK(thread_checker_.CalledOnValidThread()); 815 DCHECK(thread_checker_.CalledOnValidThread());
824 ScheduleAndForget(PRIORITY_NORMAL, 816 ScheduleAndForget(PRIORITY_NORMAL,
(...skipping 448 matching lines...) Expand 10 before | Expand all | Expand 10 after
1273 DCHECK(thread_checker_.CalledOnValidThread()); 1265 DCHECK(thread_checker_.CalledOnValidThread());
1274 visit_database_observers_.RemoveObserver(observer); 1266 visit_database_observers_.RemoveObserver(observer);
1275 } 1267 }
1276 1268
1277 void HistoryService::NotifyVisitDBObserversOnAddVisit( 1269 void HistoryService::NotifyVisitDBObserversOnAddVisit(
1278 const history::BriefVisitInfo& info) { 1270 const history::BriefVisitInfo& info) {
1279 DCHECK(thread_checker_.CalledOnValidThread()); 1271 DCHECK(thread_checker_.CalledOnValidThread());
1280 FOR_EACH_OBSERVER(history::VisitDatabaseObserver, visit_database_observers_, 1272 FOR_EACH_OBSERVER(history::VisitDatabaseObserver, visit_database_observers_,
1281 OnAddVisit(info)); 1273 OnAddVisit(info));
1282 } 1274 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698