Index: chrome/browser/history/android/android_history_provider_service.cc |
diff --git a/chrome/browser/history/android/android_history_provider_service.cc b/chrome/browser/history/android/android_history_provider_service.cc |
index 5c1d0d88aa5761a68e5217730120989a3ce89dfd..bbdeb156403dadd53ea0eb8bcbdf8cfd55e82198 100644 |
--- a/chrome/browser/history/android/android_history_provider_service.cc |
+++ b/chrome/browser/history/android/android_history_provider_service.cc |
@@ -74,24 +74,29 @@ AndroidHistoryProviderService::UpdateHistoryAndBookmarks( |
} |
} |
-AndroidHistoryProviderService::Handle |
+base::CancelableTaskTracker::TaskId |
AndroidHistoryProviderService::DeleteHistoryAndBookmarks( |
const std::string& selection, |
const std::vector<base::string16>& selection_args, |
- CancelableRequestConsumerBase* consumer, |
- const DeleteCallback& callback) { |
- DeleteRequest* request = new DeleteRequest(callback); |
- AddRequest(request, consumer); |
+ const DeleteCallback& callback, |
+ base::CancelableTaskTracker* tracker) { |
HistoryService* hs = |
HistoryServiceFactory::GetForProfile(profile_, Profile::EXPLICIT_ACCESS); |
if (hs) { |
- hs->Schedule(HistoryService::PRIORITY_NORMAL, |
- &HistoryBackend::DeleteHistoryAndBookmarks, NULL, request, |
- selection, selection_args); |
+ DCHECK(hs->thread_) << "History service being called after cleanup"; |
+ DCHECK(hs->thread_checker_.CalledOnValidThread()); |
+ return tracker->PostTaskAndReplyWithResult( |
+ hs->thread_->message_loop_proxy().get(), |
+ FROM_HERE, |
+ base::Bind(&HistoryBackend::DeleteHistoryAndBookmarks, |
+ hs->history_backend_.get(), |
+ selection, |
+ selection_args), |
+ callback); |
} else { |
- request->ForwardResultAsync(request->handle(), false, 0); |
+ callback.Run(0); |
+ return base::CancelableTaskTracker::kBadTaskId; |
} |
- return request->handle(); |
} |
base::CancelableTaskTracker::TaskId |
@@ -117,24 +122,29 @@ AndroidHistoryProviderService::InsertHistoryAndBookmark( |
} |
} |
-AndroidHistoryProviderService::Handle |
+base::CancelableTaskTracker::TaskId |
AndroidHistoryProviderService::DeleteHistory( |
const std::string& selection, |
const std::vector<base::string16>& selection_args, |
- CancelableRequestConsumerBase* consumer, |
- const DeleteCallback& callback) { |
- DeleteRequest* request = new DeleteRequest(callback); |
- AddRequest(request, consumer); |
+ const DeleteCallback& callback, |
+ base::CancelableTaskTracker* tracker) { |
HistoryService* hs = |
HistoryServiceFactory::GetForProfile(profile_, Profile::EXPLICIT_ACCESS); |
if (hs) { |
- hs->Schedule(HistoryService::PRIORITY_NORMAL, |
- &HistoryBackend::DeleteHistory, NULL, request, selection, |
- selection_args); |
+ DCHECK(hs->thread_) << "History service being called after cleanup"; |
+ DCHECK(hs->thread_checker_.CalledOnValidThread()); |
+ return tracker->PostTaskAndReplyWithResult( |
+ hs->thread_->message_loop_proxy().get(), |
+ FROM_HERE, |
+ base::Bind(&HistoryBackend::DeleteHistory, |
+ hs->history_backend_.get(), |
+ selection, |
+ selection_args), |
+ callback); |
} else { |
- request->ForwardResultAsync(request->handle(), false, 0); |
+ callback.Run(0); |
+ return base::CancelableTaskTracker::kBadTaskId; |
} |
- return request->handle(); |
} |
base::CancelableTaskTracker::TaskId |
@@ -225,24 +235,29 @@ AndroidHistoryProviderService::UpdateSearchTerms( |
} |
} |
-AndroidHistoryProviderService::Handle |
+base::CancelableTaskTracker::TaskId |
AndroidHistoryProviderService::DeleteSearchTerms( |
const std::string& selection, |
const std::vector<base::string16>& selection_args, |
- CancelableRequestConsumerBase* consumer, |
- const DeleteCallback& callback) { |
- DeleteRequest* request = new DeleteRequest(callback); |
- AddRequest(request, consumer); |
+ const DeleteCallback& callback, |
+ base::CancelableTaskTracker* tracker) { |
HistoryService* hs = |
HistoryServiceFactory::GetForProfile(profile_, Profile::EXPLICIT_ACCESS); |
if (hs) { |
- hs->Schedule(HistoryService::PRIORITY_NORMAL, |
- &HistoryBackend::DeleteSearchTerms, NULL, request, selection, |
- selection_args); |
+ DCHECK(hs->thread_) << "History service being called after cleanup"; |
+ DCHECK(hs->thread_checker_.CalledOnValidThread()); |
+ return tracker->PostTaskAndReplyWithResult( |
+ hs->thread_->message_loop_proxy().get(), |
+ FROM_HERE, |
+ base::Bind(&HistoryBackend::DeleteSearchTerms, |
+ hs->history_backend_.get(), |
+ selection, |
+ selection_args), |
+ callback); |
} else { |
- request->ForwardResultAsync(request->handle(), false, 0); |
+ callback.Run(0); |
+ return base::CancelableTaskTracker::kBadTaskId; |
} |
- return request->handle(); |
} |
base::CancelableTaskTracker::TaskId |