Index: chrome/browser/autocomplete/in_memory_url_index.cc |
diff --git a/chrome/browser/autocomplete/in_memory_url_index.cc b/chrome/browser/autocomplete/in_memory_url_index.cc |
index 653301400baa35c1c3d14c0314904dd54ec8d12b..62236aeadf70e83ba798413905a20115f17526f9 100644 |
--- a/chrome/browser/autocomplete/in_memory_url_index.cc |
+++ b/chrome/browser/autocomplete/in_memory_url_index.cc |
@@ -16,7 +16,7 @@ |
using in_memory_url_index::InMemoryURLIndexCacheItem; |
// Called by DoSaveToCacheFile to delete any old cache file at |path| when |
-// there is no private data to save. Runs on the FILE thread. |
+// there is no private data to save. Runs on the blocking pool. |
void DeleteCacheFile(const base::FilePath& path) { |
DCHECK(!content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
base::DeleteFile(path, false); |
@@ -90,6 +90,9 @@ InMemoryURLIndex::InMemoryURLIndex(bookmarks::BookmarkModel* bookmark_model, |
private_data_(new URLIndexPrivateData), |
restore_cache_observer_(NULL), |
save_cache_observer_(NULL), |
+ task_runner_( |
+ content::BrowserThread::GetBlockingPool()->GetSequencedTaskRunner( |
+ content::BrowserThread::GetBlockingPool()->GetSequenceToken())), |
shutdown_(false), |
restored_(false), |
needs_to_be_cached_(false), |
@@ -191,10 +194,8 @@ void InMemoryURLIndex::OnURLsDeleted(history::HistoryService* history_service, |
// in it (URLs visited after user deleted some URLs from history), which |
// would be odd and confusing. It's better to force a rebuild. |
base::FilePath path; |
- if (needs_to_be_cached_ && GetCacheFilePath(&path)) { |
- content::BrowserThread::PostBlockingPoolTask( |
- FROM_HERE, base::Bind(DeleteCacheFile, path)); |
- } |
+ if (needs_to_be_cached_ && GetCacheFilePath(&path)) |
+ task_runner_->PostTask(FROM_HERE, base::Bind(DeleteCacheFile, path)); |
} |
void InMemoryURLIndex::OnHistoryServiceLoaded( |
@@ -218,9 +219,9 @@ void InMemoryURLIndex::PostRestoreFromCacheFileTask() { |
return; |
} |
- content::BrowserThread::PostTaskAndReplyWithResult |
- <scoped_refptr<URLIndexPrivateData> >( |
- content::BrowserThread::FILE, FROM_HERE, |
+ base::PostTaskAndReplyWithResult( |
+ task_runner_.get(), |
+ FROM_HERE, |
base::Bind(&URLIndexPrivateData::RestoreFromFile, path, languages_), |
base::Bind(&InMemoryURLIndex::OnCacheLoadDone, AsWeakPtr())); |
} |
@@ -240,8 +241,7 @@ void InMemoryURLIndex::OnCacheLoadDone( |
base::FilePath path; |
if (!GetCacheFilePath(&path) || shutdown_) |
return; |
- content::BrowserThread::PostBlockingPoolTask( |
- FROM_HERE, base::Bind(DeleteCacheFile, path)); |
+ task_runner_->PostTask(FROM_HERE, base::Bind(DeleteCacheFile, path)); |
if (history_service_->backend_loaded()) { |
ScheduleRebuildFromHistory(); |
} else { |
@@ -263,7 +263,12 @@ void InMemoryURLIndex::Shutdown() { |
if (!GetCacheFilePath(&path)) |
return; |
private_data_tracker_.TryCancelAll(); |
- URLIndexPrivateData::WritePrivateDataToCacheFileTask(private_data_, path); |
+ task_runner_->PostTask( |
+ FROM_HERE, |
+ base::Bind( |
+ base::IgnoreResult( |
+ &URLIndexPrivateData::WritePrivateDataToCacheFileTask), |
+ private_data_, path)); |
needs_to_be_cached_ = false; |
} |
@@ -317,16 +322,15 @@ void InMemoryURLIndex::PostSaveToCacheFileTask() { |
// completion closure below. |
scoped_refptr<URLIndexPrivateData> private_data_copy = |
private_data_->Duplicate(); |
- content::BrowserThread::PostTaskAndReplyWithResult<bool>( |
- content::BrowserThread::FILE, FROM_HERE, |
+ base::PostTaskAndReplyWithResult( |
+ task_runner_.get(), |
+ FROM_HERE, |
base::Bind(&URLIndexPrivateData::WritePrivateDataToCacheFileTask, |
private_data_copy, path), |
base::Bind(&InMemoryURLIndex::OnCacheSaveDone, AsWeakPtr())); |
} else { |
// If there is no data in our index then delete any existing cache file. |
- content::BrowserThread::PostBlockingPoolTask( |
- FROM_HERE, |
- base::Bind(DeleteCacheFile, path)); |
+ task_runner_->PostTask(FROM_HERE, base::Bind(DeleteCacheFile, path)); |
} |
} |