Index: components/history/core/browser/top_sites_backend.cc |
diff --git a/chrome/browser/history/top_sites_backend.cc b/components/history/core/browser/top_sites_backend.cc |
similarity index 70% |
rename from chrome/browser/history/top_sites_backend.cc |
rename to components/history/core/browser/top_sites_backend.cc |
index fdecd1c869ef93b657aa09365ea803e89e31f791..97fa8487f53441cde2dcc595aca41eefa4f64307 100644 |
--- a/chrome/browser/history/top_sites_backend.cc |
+++ b/components/history/core/browser/top_sites_backend.cc |
@@ -2,80 +2,72 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#include "chrome/browser/history/top_sites_backend.h" |
+#include "components/history/core/browser/top_sites_backend.h" |
#include "base/bind.h" |
#include "base/bind_helpers.h" |
#include "base/files/file_path.h" |
+#include "base/location.h" |
#include "base/memory/ref_counted.h" |
+#include "base/single_thread_task_runner.h" |
#include "base/task/cancelable_task_tracker.h" |
-#include "chrome/browser/history/top_sites_database.h" |
-#include "content/public/browser/browser_thread.h" |
+#include "components/history/core/browser/top_sites_database.h" |
#include "sql/connection.h" |
-using content::BrowserThread; |
- |
namespace history { |
-TopSitesBackend::TopSitesBackend() |
- : db_(new TopSitesDatabase()) { |
+TopSitesBackend::TopSitesBackend( |
+ const scoped_refptr<base::SingleThreadTaskRunner>& db_task_runner) |
+ : db_(new TopSitesDatabase()), db_task_runner_(db_task_runner) { |
+ DCHECK(db_task_runner_); |
} |
void TopSitesBackend::Init(const base::FilePath& path) { |
db_path_ = path; |
- BrowserThread::PostTask( |
- BrowserThread::DB, FROM_HERE, |
- base::Bind(&TopSitesBackend::InitDBOnDBThread, this, path)); |
+ db_task_runner_->PostTask( |
+ FROM_HERE, base::Bind(&TopSitesBackend::InitDBOnDBThread, this, path)); |
} |
void TopSitesBackend::Shutdown() { |
- BrowserThread::PostTask( |
- BrowserThread::DB, FROM_HERE, |
- base::Bind(&TopSitesBackend::ShutdownDBOnDBThread, this)); |
+ db_task_runner_->PostTask( |
+ FROM_HERE, base::Bind(&TopSitesBackend::ShutdownDBOnDBThread, this)); |
} |
void TopSitesBackend::GetMostVisitedThumbnails( |
const GetMostVisitedThumbnailsCallback& callback, |
base::CancelableTaskTracker* tracker) { |
scoped_refptr<MostVisitedThumbnails> thumbnails = new MostVisitedThumbnails(); |
- |
tracker->PostTaskAndReply( |
- BrowserThread::GetMessageLoopProxyForThread(BrowserThread::DB).get(), |
- FROM_HERE, |
- base::Bind(&TopSitesBackend::GetMostVisitedThumbnailsOnDBThread, |
- this, |
+ db_task_runner_.get(), FROM_HERE, |
+ base::Bind(&TopSitesBackend::GetMostVisitedThumbnailsOnDBThread, this, |
thumbnails), |
base::Bind(callback, thumbnails)); |
} |
void TopSitesBackend::UpdateTopSites(const TopSitesDelta& delta) { |
- BrowserThread::PostTask( |
- BrowserThread::DB, FROM_HERE, |
+ db_task_runner_->PostTask( |
+ FROM_HERE, |
base::Bind(&TopSitesBackend::UpdateTopSitesOnDBThread, this, delta)); |
} |
void TopSitesBackend::SetPageThumbnail(const MostVisitedURL& url, |
int url_rank, |
const Images& thumbnail) { |
- BrowserThread::PostTask( |
- BrowserThread::DB, FROM_HERE, |
- base::Bind(&TopSitesBackend::SetPageThumbnailOnDBThread, this, url, |
- url_rank, thumbnail)); |
+ db_task_runner_->PostTask( |
+ FROM_HERE, base::Bind(&TopSitesBackend::SetPageThumbnailOnDBThread, this, |
+ url, url_rank, thumbnail)); |
} |
void TopSitesBackend::ResetDatabase() { |
- BrowserThread::PostTask( |
- BrowserThread::DB, FROM_HERE, |
+ db_task_runner_->PostTask( |
+ FROM_HERE, |
base::Bind(&TopSitesBackend::ResetDatabaseOnDBThread, this, db_path_)); |
} |
void TopSitesBackend::DoEmptyRequest(const base::Closure& reply, |
base::CancelableTaskTracker* tracker) { |
- tracker->PostTaskAndReply( |
- BrowserThread::GetMessageLoopProxyForThread(BrowserThread::DB).get(), |
- FROM_HERE, |
- base::Bind(&base::DoNothing), |
- reply); |
+ tracker->PostTaskAndReply(db_task_runner_.get(), FROM_HERE, |
+ base::Bind(&base::DoNothing), reply); |
} |
TopSitesBackend::~TopSitesBackend() { |
@@ -84,7 +76,7 @@ TopSitesBackend::~TopSitesBackend() { |
} |
void TopSitesBackend::InitDBOnDBThread(const base::FilePath& path) { |
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::DB)); |
+ DCHECK(db_task_runner_->BelongsToCurrentThread()); |
if (!db_->Init(path)) { |
LOG(ERROR) << "Failed to initialize database."; |
db_.reset(); |
@@ -92,13 +84,13 @@ void TopSitesBackend::InitDBOnDBThread(const base::FilePath& path) { |
} |
void TopSitesBackend::ShutdownDBOnDBThread() { |
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::DB)); |
+ DCHECK(db_task_runner_->BelongsToCurrentThread()); |
db_.reset(); |
} |
void TopSitesBackend::GetMostVisitedThumbnailsOnDBThread( |
scoped_refptr<MostVisitedThumbnails> thumbnails) { |
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::DB)); |
+ DCHECK(db_task_runner_->BelongsToCurrentThread()); |
if (db_) { |
db_->GetPageThumbnails(&(thumbnails->most_visited), |
@@ -130,7 +122,7 @@ void TopSitesBackend::SetPageThumbnailOnDBThread(const MostVisitedURL& url, |
} |
void TopSitesBackend::ResetDatabaseOnDBThread(const base::FilePath& file_path) { |
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::DB)); |
+ DCHECK(db_task_runner_->BelongsToCurrentThread()); |
db_.reset(NULL); |
sql::Connection::Delete(db_path_); |
db_.reset(new TopSitesDatabase()); |