Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(126)

Unified Diff: components/autofill/core/browser/personal_data_manager_mac.mm

Issue 301343002: mac: Clean up autofill integration with Address Book. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@autofill_cleanup2_base
Patch Set: Autofill test failures on Android. Undo a change to autofill_test_utils.cc. Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;
« no previous file with comments | « components/autofill/core/browser/personal_data_manager.cc ('k') | components/autofill/core/common/autofill_pref_names.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698