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

Unified Diff: components/webdata/common/web_database_service.cc

Issue 16174013: Remove dependency of WebData on content (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Review comments Created 7 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
« no previous file with comments | « components/webdata/common/web_database_service.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/webdata/common/web_database_service.cc
diff --git a/components/webdata/common/web_database_service.cc b/components/webdata/common/web_database_service.cc
index 6da199971ef137313bad7749c7534bb5f057b26e..0bd508b555213227fb2b50ed05204b99d2b1ccfb 100644
--- a/components/webdata/common/web_database_service.cc
+++ b/components/webdata/common/web_database_service.cc
@@ -13,7 +13,6 @@
using base::Bind;
using base::FilePath;
-using content::BrowserThread;
// Receives messages from the backend on the DB thread, posts them to
// WebDatabaseService on the UI thread.
@@ -22,12 +21,12 @@ class WebDatabaseService::BackendDelegate :
public:
BackendDelegate(
const base::WeakPtr<WebDatabaseService>& web_database_service)
- : web_database_service_(web_database_service) {
+ : web_database_service_(web_database_service),
+ callback_thread_(base::MessageLoopProxy::current()) {
}
virtual void DBLoaded(sql::InitStatus status) OVERRIDE {
- BrowserThread::PostTask(
- BrowserThread::UI,
+ callback_thread_->PostTask(
FROM_HERE,
base::Bind(&WebDatabaseService::OnDatabaseLoadDone,
web_database_service_,
@@ -35,19 +34,22 @@ class WebDatabaseService::BackendDelegate :
}
private:
const base::WeakPtr<WebDatabaseService> web_database_service_;
+ scoped_refptr<base::MessageLoopProxy> callback_thread_;
};
WebDatabaseService::WebDatabaseService(
const base::FilePath& path,
- const scoped_refptr<base::MessageLoopProxy>& ui_thread)
+ const scoped_refptr<base::MessageLoopProxy>& ui_thread,
+ const scoped_refptr<base::MessageLoopProxy>& db_thread)
: base::RefCountedDeleteOnMessageLoop<WebDatabaseService>(ui_thread),
path_(path),
weak_ptr_factory_(this),
- db_loaded_(false) {
+ db_loaded_(false),
+ db_thread_(db_thread) {
// WebDatabaseService should be instantiated on UI thread.
DCHECK(ui_thread->BelongsToCurrentThread());
// WebDatabaseService requires DB thread if instantiated.
- DCHECK(BrowserThread::IsWellKnownThread(BrowserThread::DB));
+ DCHECK(db_thread);
}
WebDatabaseService::~WebDatabaseService() {
@@ -56,7 +58,8 @@ WebDatabaseService::~WebDatabaseService() {
void WebDatabaseService::AddTable(scoped_ptr<WebDatabaseTable> table) {
if (!wds_backend_.get()) {
wds_backend_ = new WebDataServiceBackend(
- path_, new BackendDelegate(weak_ptr_factory_.GetWeakPtr()));
+ path_, new BackendDelegate(weak_ptr_factory_.GetWeakPtr()),
+ db_thread_);
}
wds_backend_->AddTable(table.Pass());
}
@@ -64,8 +67,7 @@ void WebDatabaseService::AddTable(scoped_ptr<WebDatabaseTable> table) {
void WebDatabaseService::LoadDatabase() {
DCHECK(wds_backend_.get());
- BrowserThread::PostTask(
- BrowserThread::DB,
+ db_thread_->PostTask(
FROM_HERE,
Bind(&WebDataServiceBackend::InitDatabase, wds_backend_));
}
@@ -74,7 +76,7 @@ void WebDatabaseService::UnloadDatabase() {
db_loaded_ = false;
if (!wds_backend_.get())
return;
- BrowserThread::PostTask(BrowserThread::DB, FROM_HERE,
+ db_thread_->PostTask(FROM_HERE,
Bind(&WebDataServiceBackend::ShutdownDatabase,
wds_backend_, true));
}
@@ -86,13 +88,13 @@ void WebDatabaseService::ShutdownDatabase() {
error_callbacks_.clear();
if (!wds_backend_.get())
return;
- BrowserThread::PostTask(BrowserThread::DB, FROM_HERE,
+ db_thread_->PostTask(FROM_HERE,
Bind(&WebDataServiceBackend::ShutdownDatabase,
wds_backend_, false));
}
WebDatabase* WebDatabaseService::GetDatabaseOnDB() const {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::DB));
+ DCHECK(db_thread_->BelongsToCurrentThread());
if (!wds_backend_.get())
return NULL;
return wds_backend_->database();
@@ -113,7 +115,7 @@ void WebDatabaseService::ScheduleDBTask(
scoped_ptr<WebDataRequest> request(
new WebDataRequest(NULL, wds_backend_->request_manager().get()));
- BrowserThread::PostTask(BrowserThread::DB, from_here,
+ db_thread_->PostTask(from_here,
Bind(&WebDataServiceBackend::DBWriteTaskWrapper, wds_backend_,
task, base::Passed(&request)));
}
@@ -134,7 +136,7 @@ WebDataServiceBase::Handle WebDatabaseService::ScheduleDBTaskWithResult(
new WebDataRequest(consumer, wds_backend_->request_manager().get()));
handle = request->GetHandle();
- BrowserThread::PostTask(BrowserThread::DB, from_here,
+ db_thread_->PostTask(from_here,
Bind(&WebDataServiceBackend::DBReadTaskWrapper, wds_backend_,
task, base::Passed(&request)));
« no previous file with comments | « components/webdata/common/web_database_service.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698