Index: components/autofill/core/browser/personal_data_manager_mac.mm |
diff --git a/components/autofill/core/browser/personal_data_manager_mac.mm b/components/autofill/core/browser/personal_data_manager_mac.mm |
index b5d475359602b9f516f5abfa86df4af2c4d51652..2be22fca949233856cad780c6f9aa4a3b575c3b0 100644 |
--- a/components/autofill/core/browser/personal_data_manager_mac.mm |
+++ b/components/autofill/core/browser/personal_data_manager_mac.mm |
@@ -36,7 +36,13 @@ const char kAddressBookOrigin[] = "OS X Address Book"; |
// Whether Chrome has prompted the user for permission to access the user's |
// address book. |
bool HasPromptedForAccessToAddressBook(PrefService* pref_service) { |
- return pref_service->GetBoolean(prefs::kAutofillAuxiliaryProfilesQueried); |
+ return pref_service->GetBoolean(prefs::kAutofillMacAddressBookQueried); |
+} |
+ |
+// Whether the user wants Chrome to use the AddressBook to populate Autofill |
+// entries. |
+bool ShouldUseAddressBook(PrefService* pref_service) { |
+ return pref_service->GetBoolean(prefs::kAutofillUseMacAddressBook); |
} |
ABAddressBook* GetAddressBook(PrefService* pref_service) { |
@@ -56,7 +62,7 @@ ABAddressBook* GetAddressBook(PrefService* pref_service) { |
addressBook != nil); |
} |
- pref_service->SetBoolean(prefs::kAutofillAuxiliaryProfilesQueried, true); |
+ pref_service->SetBoolean(prefs::kAutofillMacAddressBookQueried, true); |
return addressBook; |
} |
@@ -110,10 +116,9 @@ void AuxiliaryProfilesImpl::GetAddressBookMeCard(const std::string& app_locale, |
PrefService* pref_service) { |
profiles_.clear(); |
- // Chrome has not yet requested address book permissions. Attempting to do so |
- // presents a blocking modal dialog, which is undesirable. Instead, just show |
- // no results. |
- if (!HasPromptedForAccessToAddressBook(pref_service)) |
+ // The user does not want Chrome to use the AddressBook to populate Autofill |
+ // entries. |
+ if (!ShouldUseAddressBook(pref_service)) |
return; |
ABAddressBook* addressBook = GetAddressBook(pref_service); |
@@ -304,11 +309,10 @@ void PersonalDataManager::LoadAuxiliaryProfiles() const { |
} |
bool PersonalDataManager::AccessAddressBook() { |
- if (!pref_service_->GetBoolean(prefs::kAutofillAuxiliaryProfilesEnabled)) |
- return false; |
- |
- if (HasPromptedForAccessToAddressBook(pref_service_)) |
- return false; |
+ // The user is attempting to give Chrome access to the user's Address Book. |
+ // This implicitly acknowledges that the user wants to use auxiliary |
+ // profiles. |
+ pref_service_->SetBoolean(prefs::kAutofillUseMacAddressBook, true); |
// Request permissions. |
GetAddressBook(pref_service_); |
@@ -317,9 +321,6 @@ bool PersonalDataManager::AccessAddressBook() { |
bool PersonalDataManager::ShouldShowAccessAddressBookSuggestion( |
AutofillType type) { |
- if (!pref_service_->GetBoolean(prefs::kAutofillAuxiliaryProfilesEnabled)) |
- return false; |
- |
if (HasPromptedForAccessToAddressBook(pref_service_)) |
return false; |