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

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: Address comments from isherman. Created 6 years, 7 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..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;

Powered by Google App Engine
This is Rietveld 408576698