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

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: Fix WIN builds 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..e1a67a56d2b506bd98b5c1cbba7f666e3342ec44 100644
--- a/components/webdata/common/web_data_service_base.cc
+++ b/components/webdata/common/web_data_service_base.cc
@@ -34,6 +34,15 @@ 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())
+ profile_error_callback_.Run(status);
+}
+
void WebDataServiceBase::ShutdownOnUIThread() {
db_loaded_ = false;
BrowserThread::PostTask(
@@ -43,7 +52,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 +82,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 +115,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));
- }
-}
« no previous file with comments | « components/webdata/common/web_data_service_base.h ('k') | components/webdata/common/web_database_observer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698