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..91ddfc35bb0b3c9d8caf76c9bf69c557c59c0ca4 100644 |
--- a/components/autofill/core/browser/personal_data_manager_mac.mm |
+++ b/components/autofill/core/browser/personal_data_manager_mac.mm |
@@ -38,6 +38,11 @@ const char kAddressBookOrigin[] = "OS X Address Book"; |
bool HasPromptedForAccessToAddressBook(PrefService* pref_service) { |
return pref_service->GetBoolean(prefs::kAutofillAuxiliaryProfilesQueried); |
} |
Ilya Sherman
2014/06/02 22:54:27
nit: Please leave a blank line after this one.
erikchen
2014/06/03 01:34:19
Done.
|
+// 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) { |
bool first_access = !HasPromptedForAccessToAddressBook(pref_service); |
@@ -110,10 +115,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 +308,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); |
erikchen
2014/06/02 21:21:17
I've intentionally removed the check against the p
|
// Request permissions. |
GetAddressBook(pref_service_); |
@@ -317,9 +320,6 @@ bool PersonalDataManager::AccessAddressBook() { |
bool PersonalDataManager::ShouldShowAccessAddressBookSuggestion( |
AutofillType type) { |
- if (!pref_service_->GetBoolean(prefs::kAutofillAuxiliaryProfilesEnabled)) |
- return false; |
- |
if (HasPromptedForAccessToAddressBook(pref_service_)) |
return false; |