Index: chrome/browser/webdata/autofill_profile_syncable_service.cc |
diff --git a/chrome/browser/webdata/autofill_profile_syncable_service.cc b/chrome/browser/webdata/autofill_profile_syncable_service.cc |
index 9d27656acf59264b254d38118c04a665ed77701d..11e56be4ef72afec14e25d54632e272780f678a7 100644 |
--- a/chrome/browser/webdata/autofill_profile_syncable_service.cc |
+++ b/chrome/browser/webdata/autofill_profile_syncable_service.cc |
@@ -11,6 +11,7 @@ |
#include "components/autofill/browser/autofill_country.h" |
#include "components/autofill/browser/autofill_profile.h" |
#include "components/autofill/browser/form_group.h" |
+#include "components/autofill/browser/webdata/autofill_backend_delegate.h" |
#include "components/autofill/browser/webdata/autofill_table.h" |
#include "components/autofill/browser/webdata/autofill_webdata_service.h" |
#include "components/webdata/common/web_database.h" |
@@ -25,6 +26,7 @@ using autofill::AutofillProfile; |
using autofill::AutofillProfileChange; |
using autofill::AutofillTable; |
using autofill::AutofillWebDataService; |
+using autofill::AutofillBackendDelegate; |
using content::BrowserThread; |
namespace { |
@@ -49,14 +51,16 @@ const char kAutofillProfileTag[] = "google_chrome_autofill_profiles"; |
AutofillProfileSyncableService::AutofillProfileSyncableService( |
AutofillWebDataService* web_data_service, |
+ AutofillBackendDelegate* web_data_delegate, |
const std::string& app_locale) |
: web_data_service_(web_data_service), |
+ web_data_delegate_(web_data_delegate), |
app_locale_(app_locale), |
ALLOW_THIS_IN_INITIALIZER_LIST(scoped_observer_(this)) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::DB)); |
- DCHECK(web_data_service_); |
+ DCHECK(web_data_delegate_); |
- scoped_observer_.Add(web_data_service_); |
+ scoped_observer_.Add(web_data_delegate_); |
} |
AutofillProfileSyncableService::~AutofillProfileSyncableService() { |
@@ -66,10 +70,12 @@ AutofillProfileSyncableService::~AutofillProfileSyncableService() { |
// static |
void AutofillProfileSyncableService::CreateForWebDataService( |
AutofillWebDataService* web_data_service, |
+ AutofillBackendDelegate* delegate, |
const std::string& app_locale) { |
web_data_service->GetDBUserData()->SetUserData( |
UserDataKey(), |
- new AutofillProfileSyncableService(web_data_service, app_locale)); |
+ new AutofillProfileSyncableService( |
+ web_data_service, delegate, app_locale)); |
} |
// static |
@@ -82,6 +88,7 @@ AutofillProfileSyncableService::FromWebDataService( |
AutofillProfileSyncableService::AutofillProfileSyncableService() |
: web_data_service_(NULL), |
+ web_data_delegate_(NULL), |
ALLOW_THIS_IN_INITIALIZER_LIST(scoped_observer_(this)) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::DB)); |
} |
@@ -191,7 +198,8 @@ AutofillProfileSyncableService::MergeDataAndStartSyncing( |
sync_processor_->ProcessSyncChanges(FROM_HERE, new_changes)); |
} |
- AutofillWebDataService::NotifyOfMultipleAutofillChanges(web_data_service_); |
+ if (web_data_delegate_) |
+ web_data_delegate_->NotifyOfMultipleAutofillChanges(web_data_service_); |
return merge_result; |
} |
@@ -262,7 +270,8 @@ syncer::SyncError AutofillProfileSyncableService::ProcessSyncChanges( |
"Failed to update webdata."); |
} |
- AutofillWebDataService::NotifyOfMultipleAutofillChanges(web_data_service_); |
+ if (web_data_delegate_) |
+ web_data_delegate_->NotifyOfMultipleAutofillChanges(web_data_service_); |
return syncer::SyncError(); |
} |
@@ -579,7 +588,7 @@ bool AutofillProfileSyncableService::MergeProfile( |
} |
AutofillTable* AutofillProfileSyncableService::GetAutofillTable() const { |
- return AutofillTable::FromWebDatabase(web_data_service_->GetDatabase()); |
+ return AutofillTable::FromWebDatabase(web_data_delegate_->GetDatabase()); |
} |
AutofillProfileSyncableService::DataBundle::DataBundle() {} |