Chromium Code Reviews| 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(); |