| Index: chrome/browser/history/history_service.cc
|
| diff --git a/chrome/browser/history/history_service.cc b/chrome/browser/history/history_service.cc
|
| index cb4d16040149ac4635d1710007f80d001182b822..74b9c1fdb5fb9ff6929a63cea1f48717ff006283 100644
|
| --- a/chrome/browser/history/history_service.cc
|
| +++ b/chrome/browser/history/history_service.cc
|
| @@ -378,13 +378,21 @@ void HistoryService::URLsNoLongerBookmarked(const std::set<GURL>& urls) {
|
| urls);
|
| }
|
|
|
| -void HistoryService::ScheduleDBTask(history::HistoryDBTask* task,
|
| - CancelableRequestConsumerBase* consumer) {
|
| - DCHECK(thread_checker_.CalledOnValidThread());
|
| - history::HistoryDBTaskRequest* request = new history::HistoryDBTaskRequest(
|
| - base::Bind(&history::HistoryDBTask::DoneRunOnMainThread, task));
|
| - request->value = task; // The value is the task to execute.
|
| - Schedule(PRIORITY_UI, &HistoryBackend::ProcessDBTask, consumer, request);
|
| +void HistoryService::ScheduleDBTask(scoped_refptr<history::HistoryDBTask> task,
|
| + base::CancelableTaskTracker* tracker) {
|
| + DCHECK(thread_checker_.CalledOnValidThread());
|
| + base::CancelableTaskTracker::IsCanceledCallback is_canceled;
|
| + tracker->NewTrackedTaskId(&is_canceled);
|
| + // Use base::ThreadTaskRunnerHandler::Get() to get a message loop proxy to
|
| + // the current message loop so that we can forward the call to the method
|
| + // HistoryDBTask::DoneRunOnMainThread in the correct thread.
|
| + thread_->message_loop_proxy()->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(&HistoryBackend::ProcessDBTask,
|
| + history_backend_.get(),
|
| + task,
|
| + base::ThreadTaskRunnerHandle::Get(),
|
| + is_canceled));
|
| }
|
|
|
| void HistoryService::FlushForTest(const base::Closure& flushed) {
|
|
|