| Index: components/autofill/core/browser/autofill_manager.cc
|
| diff --git a/components/autofill/core/browser/autofill_manager.cc b/components/autofill/core/browser/autofill_manager.cc
|
| index 8bceedd686b0bc8d9a61a4f6bee5dcdac12f4ca8..60783ebbd005180e90e77113d9d6ad688a05a204 100644
|
| --- a/components/autofill/core/browser/autofill_manager.cc
|
| +++ b/components/autofill/core/browser/autofill_manager.cc
|
| @@ -214,7 +214,7 @@ void AutofillManager::RegisterProfilePrefs(
|
| #endif // defined(OS_MACOSX) || defined(OS_ANDROID)
|
| #if defined(OS_MACOSX)
|
| registry->RegisterBooleanPref(
|
| - prefs::kAutofillAuxiliaryProfilesQueried,
|
| + prefs::kAutofillMacAddressBookQueried,
|
| false,
|
| user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
|
| #endif // defined(OS_MACOSX)
|
| @@ -226,7 +226,49 @@ void AutofillManager::RegisterProfilePrefs(
|
| prefs::kAutofillNegativeUploadRate,
|
| kAutofillNegativeUploadRateDefaultValue,
|
| user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
|
| +
|
| +#if defined(OS_MACOSX) && !defined(OS_IOS)
|
| + registry->RegisterBooleanPref(
|
| + prefs::kAutofillUseMacAddressBook,
|
| + false,
|
| + user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
|
| +#endif // defined(OS_MACOSX) && !defined(OS_IOS)
|
| +}
|
| +
|
| +#if defined(OS_MACOSX) && !defined(OS_IOS)
|
| +void AutofillManager::MigrateUserPrefs(PrefService* prefs) {
|
| + const PrefService::Preference* pref =
|
| + prefs->FindPreference(prefs::kAutofillUseMacAddressBook);
|
| + DCHECK(pref);
|
| +
|
| + // If the pref is not its default value, then the migration has already been
|
| + // performed.
|
| + if (!pref->IsDefaultValue())
|
| + return;
|
| +
|
| + // Whether Chrome has already tried to access the user's Address Book.
|
| + const PrefService::Preference* pref_accessed =
|
| + prefs->FindPreference(prefs::kAutofillMacAddressBookQueried);
|
| + // Whether the user wants to use the Address Book to populate Autofill.
|
| + const PrefService::Preference* pref_enabled =
|
| + prefs->FindPreference(prefs::kAutofillAuxiliaryProfilesEnabled);
|
| + DCHECK(pref_accessed);
|
| + DCHECK(pref_enabled);
|
| +
|
| + // This is likely a new user. Reset the default value to prevent the migration
|
| + // from happening again.
|
| + if (pref_accessed->IsDefaultValue() && pref_enabled->IsDefaultValue()) {
|
| + prefs->SetBoolean(prefs::kAutofillUseMacAddressBook,
|
| + prefs->GetBoolean(prefs::kAutofillUseMacAddressBook));
|
| + return;
|
| + }
|
| +
|
| + bool accessed = pref_accessed->GetValue();
|
| + bool enabled = pref_enabled->GetValue();
|
| +
|
| + prefs->SetBoolean(prefs::kAutofillUseMacAddressBook, accessed && enabled);
|
| }
|
| +#endif // defined(OS_MACOSX) && !defined(OS_IOS)
|
|
|
| void AutofillManager::SetExternalDelegate(AutofillExternalDelegate* delegate) {
|
| // TODO(jrg): consider passing delegate into the ctor. That won't
|
|
|