| Index: chrome/browser/sync/glue/autofill_wallet_data_type_controller.cc
|
| diff --git a/chrome/browser/sync/glue/autofill_wallet_data_type_controller.cc b/chrome/browser/sync/glue/autofill_wallet_data_type_controller.cc
|
| index 7975b26a1e7a593d471db1b0ff90e2159681e6a4..425dfd165ba7869f9776ef42117d4b172bad7d3b 100644
|
| --- a/chrome/browser/sync/glue/autofill_wallet_data_type_controller.cc
|
| +++ b/chrome/browser/sync/glue/autofill_wallet_data_type_controller.cc
|
| @@ -26,15 +26,19 @@ namespace browser_sync {
|
|
|
| AutofillWalletDataTypeController::AutofillWalletDataTypeController(
|
| ProfileSyncComponentsFactory* profile_sync_factory,
|
| - Profile* profile)
|
| + Profile* profile,
|
| + syncer::ModelType model_type)
|
| : NonUIDataTypeController(
|
| BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI),
|
| base::Bind(&ChromeReportUnrecoverableError),
|
| profile_sync_factory),
|
| profile_(profile),
|
| callback_registered_(false),
|
| + model_type_(model_type),
|
| currently_enabled_(IsEnabled()) {
|
| DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
| + DCHECK(model_type_ == syncer::AUTOFILL_WALLET_DATA ||
|
| + model_type_ == syncer::AUTOFILL_WALLET_METADATA);
|
| pref_registrar_.Init(profile->GetPrefs());
|
| pref_registrar_.Add(
|
| autofill::prefs::kAutofillWalletSyncExperimentEnabled,
|
| @@ -50,7 +54,7 @@ AutofillWalletDataTypeController::~AutofillWalletDataTypeController() {
|
| }
|
|
|
| syncer::ModelType AutofillWalletDataTypeController::type() const {
|
| - return syncer::AUTOFILL_WALLET_DATA;
|
| + return model_type_;
|
| }
|
|
|
| syncer::ModelSafeGroup
|
| @@ -81,7 +85,7 @@ bool AutofillWalletDataTypeController::StartModels() {
|
|
|
| if (!callback_registered_) {
|
| web_data_service->RegisterDBLoadedCallback(base::Bind(
|
| - &AutofillWalletDataTypeController::WebDatabaseLoaded, this));
|
| + &AutofillWalletDataTypeController::OnModelLoaded, this));
|
| callback_registered_ = true;
|
| }
|
|
|
| @@ -101,11 +105,11 @@ void AutofillWalletDataTypeController::StopModels() {
|
| ProfileSyncServiceFactory::GetForProfile(profile_);
|
|
|
| // HasSyncSetupCompleted indicates if sync is currently enabled at all. The
|
| - // preferred data type indicates if wallet sync is enabled, and
|
| + // preferred data type indicates if wallet sync data/metadata is enabled, and
|
| // currently_enabled_ indicates if the other prefs are enabled. All of these
|
| - // have to be enabled to sync wallet cards.
|
| + // have to be enabled to sync wallet data/metadata.
|
| if (!service->HasSyncSetupCompleted() ||
|
| - !service->GetPreferredDataTypes().Has(syncer::AUTOFILL_WALLET_DATA) ||
|
| + !service->GetPreferredDataTypes().Has(type()) ||
|
| !currently_enabled_) {
|
| autofill::PersonalDataManager* pdm =
|
| autofill::PersonalDataManagerFactory::GetForProfile(profile_);
|
| @@ -119,10 +123,6 @@ bool AutofillWalletDataTypeController::ReadyForStart() const {
|
| return currently_enabled_;
|
| }
|
|
|
| -void AutofillWalletDataTypeController::WebDatabaseLoaded() {
|
| - OnModelLoaded();
|
| -}
|
| -
|
| void AutofillWalletDataTypeController::OnSyncPrefChanged() {
|
| DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
|
|
| @@ -140,15 +140,15 @@ void AutofillWalletDataTypeController::OnSyncPrefChanged() {
|
| } else {
|
| // Post a task to the backend thread to stop the datatype.
|
| if (state() != NOT_RUNNING && state() != STOPPING) {
|
| - syncer::SyncError error(FROM_HERE,
|
| - syncer::SyncError::DATATYPE_POLICY_ERROR,
|
| - "Wallet syncing is disabled by policy.",
|
| - syncer::AUTOFILL_WALLET_DATA);
|
| PostTaskOnBackendThread(
|
| FROM_HERE,
|
| base::Bind(&DataTypeController::OnSingleDataTypeUnrecoverableError,
|
| this,
|
| - error));
|
| + syncer::SyncError(
|
| + FROM_HERE,
|
| + syncer::SyncError::DATATYPE_POLICY_ERROR,
|
| + "Wallet syncing is disabled by policy.",
|
| + type())));
|
| }
|
| }
|
| }
|
| @@ -157,7 +157,7 @@ bool AutofillWalletDataTypeController::IsEnabled() {
|
| DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
|
|
| // Require both the sync experiment and the user-visible pref to be
|
| - // enabled to sync Wallet data.
|
| + // enabled to sync Wallet data/metadata.
|
| PrefService* ps = profile_->GetPrefs();
|
| return
|
| ps->GetBoolean(autofill::prefs::kAutofillWalletSyncExperimentEnabled) &&
|
|
|