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

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

Issue 14103021: Use Observer to notify of WebDB load instead of callbacks (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: First round of comments Created 7 years, 8 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
Index: components/webdata/common/web_data_service_base.cc
diff --git a/components/webdata/common/web_data_service_base.cc b/components/webdata/common/web_data_service_base.cc
index 58e9873c6592eb4e6bcff1d52b9fbc6f2ab7a03f..873d14081ee0ab3ff6c76e856efd7e9922ca24e9 100644
--- a/components/webdata/common/web_data_service_base.cc
+++ b/components/webdata/common/web_data_service_base.cc
@@ -34,6 +34,16 @@ WebDataServiceBase::WebDataServiceBase(scoped_refptr<WebDatabaseService> wdbs,
DCHECK(BrowserThread::IsWellKnownThread(BrowserThread::DB));
}
+void WebDataServiceBase::WebDatabaseLoaded() {
+ db_loaded_ = true;
+}
+
+void WebDataServiceBase::WebDatabaseLoadFailed(sql::InitStatus status) {
+ if (!profile_error_callback_.is_null()) {
dhollowa 2013/04/18 16:21:17 nit: no {} needed
Cait (Slow) 2013/04/19 19:06:22 Done.
+ profile_error_callback_.Run(status);
+ }
+}
+
void WebDataServiceBase::ShutdownOnUIThread() {
db_loaded_ = false;
BrowserThread::PostTask(
@@ -43,7 +53,8 @@ void WebDataServiceBase::ShutdownOnUIThread() {
void WebDataServiceBase::Init() {
DCHECK(wdbs_.get());
- wdbs_->LoadDatabase(Bind(&WebDataServiceBase::DatabaseInitOnDB, this));
+ wdbs_->AddObserver(this);
+ wdbs_->LoadDatabase();
}
void WebDataServiceBase::UnloadDatabase() {
@@ -72,6 +83,18 @@ bool WebDataServiceBase::IsDatabaseLoaded() {
return db_loaded_;
}
+void WebDataServiceBase::AddDBObserver(WebDatabaseObserver* observer) {
+ if (!wdbs_)
+ return;
+ wdbs_->AddObserver(observer);
+}
+
+void WebDataServiceBase::RemoveDBObserver(WebDatabaseObserver* observer) {
+ if (!wdbs_)
+ return;
+ wdbs_->RemoveObserver(observer);
+}
+
WebDatabase* WebDataServiceBase::GetDatabase() {
if (!wdbs_)
return NULL;
@@ -93,29 +116,3 @@ void WebDataServiceBase::ShutdownOnDBThread() {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::DB));
db_thread_user_data_.reset();
}
-
-void WebDataServiceBase::NotifyDatabaseLoadedOnUIThread() {}
-
-void WebDataServiceBase::DBInitFailed(sql::InitStatus sql_status) {
- if (!profile_error_callback_.is_null())
- profile_error_callback_.Run(sql_status);
-}
-
-void WebDataServiceBase::DBInitSucceeded() {
- db_loaded_ = true;
- NotifyDatabaseLoadedOnUIThread();
-}
-
-// Executed on DB thread.
-void WebDataServiceBase::DatabaseInitOnDB(sql::InitStatus status) {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::DB));
- if (status == sql::INIT_OK) {
- BrowserThread::PostTask(
- BrowserThread::UI, FROM_HERE,
- base::Bind(&WebDataServiceBase::DBInitSucceeded, this));
- } else {
- BrowserThread::PostTask(
- BrowserThread::UI, FROM_HERE,
- base::Bind(&WebDataServiceBase::DBInitFailed, this, status));
- }
-}

Powered by Google App Engine
This is Rietveld 408576698