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

Unified Diff: chrome/browser/history/in_memory_url_index.cc

Issue 352913002: Port HistoryService::ScheduleDBTask to CancelableTaskTracker (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 6 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/history/in_memory_url_index.cc
diff --git a/chrome/browser/history/in_memory_url_index.cc b/chrome/browser/history/in_memory_url_index.cc
index 38eb30ca4410d7cffb2d206c525c7d6f22d9f07f..28ab039b9a33e4898d77cefb4f7b0b9f90b4398d 100644
--- a/chrome/browser/history/in_memory_url_index.cc
+++ b/chrome/browser/history/in_memory_url_index.cc
@@ -138,12 +138,12 @@ void InMemoryURLIndex::Init() {
void InMemoryURLIndex::ShutDown() {
registrar_.RemoveAll();
- cache_reader_consumer_.CancelAllRequests();
+ cache_reader_tracker_.TryCancelAll();
shutdown_ = true;
base::FilePath path;
if (!GetCacheFilePath(&path))
return;
- private_data_->CancelPendingUpdates();
+ private_data_tracker_.TryCancelAll();
URLIndexPrivateData::WritePrivateDataToCacheFileTask(private_data_, path);
needs_to_be_cached_ = false;
}
@@ -210,8 +210,11 @@ void InMemoryURLIndex::OnURLVisited(const URLVisitedDetails* details) {
HistoryService* service =
HistoryServiceFactory::GetForProfile(profile_,
Profile::EXPLICIT_ACCESS);
- needs_to_be_cached_ |= private_data_->UpdateURL(
- service, details->row, languages_, scheme_whitelist_);
+ needs_to_be_cached_ |= private_data_->UpdateURL(service,
+ details->row,
+ languages_,
+ scheme_whitelist_,
+ &private_data_tracker_);
}
void InMemoryURLIndex::OnURLsModified(const URLsModifiedDetails* details) {
@@ -219,9 +222,10 @@ void InMemoryURLIndex::OnURLsModified(const URLsModifiedDetails* details) {
HistoryServiceFactory::GetForProfile(profile_,
Profile::EXPLICIT_ACCESS);
for (URLRows::const_iterator row = details->changed_urls.begin();
- row != details->changed_urls.end(); ++row)
- needs_to_be_cached_ |=
- private_data_->UpdateURL(service, *row, languages_, scheme_whitelist_);
+ row != details->changed_urls.end(); ++row) {
+ needs_to_be_cached_ |= private_data_->UpdateURL(
+ service, *row, languages_, scheme_whitelist_, &private_data_tracker_);
+ }
}
void InMemoryURLIndex::OnURLsDeleted(const URLsDeletedDetails* details) {
@@ -259,6 +263,7 @@ void InMemoryURLIndex::PostRestoreFromCacheFileTask() {
void InMemoryURLIndex::OnCacheLoadDone(
scoped_refptr<URLIndexPrivateData> private_data) {
if (private_data.get() && !private_data->Empty()) {
+ private_data_tracker_.TryCancelAll();
private_data_ = private_data;
restored_ = true;
if (restore_cache_observer_)
@@ -292,7 +297,7 @@ void InMemoryURLIndex::ScheduleRebuildFromHistory() {
service->ScheduleDBTask(
new InMemoryURLIndex::RebuildPrivateDataFromHistoryDBTask(
this, languages_, scheme_whitelist_),
- &cache_reader_consumer_);
+ &cache_reader_tracker_);
}
void InMemoryURLIndex::DoneRebuidingPrivateDataFromHistoryDB(
@@ -300,6 +305,7 @@ void InMemoryURLIndex::DoneRebuidingPrivateDataFromHistoryDB(
scoped_refptr<URLIndexPrivateData> private_data) {
DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
if (succeeded) {
+ private_data_tracker_.TryCancelAll();
private_data_ = private_data;
PostSaveToCacheFileTask(); // Cache the newly rebuilt index.
} else {
@@ -313,6 +319,7 @@ void InMemoryURLIndex::DoneRebuidingPrivateDataFromHistoryDB(
}
void InMemoryURLIndex::RebuildFromHistory(HistoryDatabase* history_db) {
+ private_data_tracker_.TryCancelAll();
private_data_ = URLIndexPrivateData::RebuildFromHistory(history_db,
languages_,
scheme_whitelist_);

Powered by Google App Engine
This is Rietveld 408576698