Index: components/autofill/browser/webdata/autofill_webdata_service.cc |
diff --git a/components/autofill/browser/webdata/autofill_webdata_service.cc b/components/autofill/browser/webdata/autofill_webdata_service.cc |
index 217f2651e9c105d7b24d829160564ef98e3b3521..fec576399b9d3f1aac54c5d0c80ecb58ec57aeaa 100644 |
--- a/components/autofill/browser/webdata/autofill_webdata_service.cc |
+++ b/components/autofill/browser/webdata/autofill_webdata_service.cc |
@@ -15,6 +15,7 @@ |
#include "components/autofill/browser/webdata/autofill_webdata_backend.h" |
#include "components/autofill/browser/webdata/autofill_webdata_service_observer.h" |
#include "components/autofill/common/form_field_data.h" |
+#include "components/webdata/common/web_data_service_backend.h" |
#include "components/webdata/common/web_database_service.h" |
using base::Bind; |
@@ -41,16 +42,27 @@ AutofillWebDataService::AutofillWebDataService( |
scoped_refptr<WebDatabaseService> wdbs, |
const ProfileErrorCallback& callback) |
: WebDataServiceBase(wdbs, callback), |
- autofill_backend_(new AutofillWebDataBackend()) { |
+ weak_ptr_factory_(this), |
+ autofill_backend_(NULL) { |
+ |
+ base::Closure on_changed_callback = Bind( |
+ &AutofillWebDataService::NotifyAutofillMultipleChangedOnUIThread, |
+ weak_ptr_factory_.GetWeakPtr()); |
+ |
+ autofill_backend_ = new AutofillWebDataBackend( |
+ wdbs_->GetBackend(), |
+ on_changed_callback); |
} |
AutofillWebDataService::AutofillWebDataService() |
: WebDataServiceBase(NULL, |
WebDataServiceBase::ProfileErrorCallback()), |
- autofill_backend_(new AutofillWebDataBackend()) { |
+ weak_ptr_factory_(this), |
+ autofill_backend_(new AutofillWebDataBackend(NULL, base::Closure())) { |
} |
void AutofillWebDataService::ShutdownOnUIThread() { |
+ weak_ptr_factory_.InvalidateWeakPtrs(); |
BrowserThread::PostTask( |
BrowserThread::DB, FROM_HERE, |
base::Bind(&AutofillWebDataService::ShutdownOnDBThread, this)); |
@@ -190,6 +202,13 @@ base::SupportsUserData* AutofillWebDataService::GetDBUserData() { |
return db_thread_user_data_.get(); |
} |
+void AutofillWebDataService::GetSyncableBackend( |
+ const base::Callback<void(SyncableServiceBackend*)>& callback) { |
+ BrowserThread::PostTask( |
+ BrowserThread::DB, FROM_HERE, |
Jói
2013/05/07 19:39:41
indent two more spaces, or start right after paren
Cait (Slow)
2013/05/07 20:14:56
Done.
|
+ base::Bind(callback, autofill_backend_)); |
+} |
+ |
void AutofillWebDataService::ShutdownOnDBThread() { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::DB)); |
db_thread_user_data_.reset(); |