Chromium Code Reviews| 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 c6f8eef8b0205bce729cdcf3c88c53aed5e7530b..e190ffd22ac3f982f2c6e560a2d8e4698d3ba569 100644 |
| --- a/components/autofill/core/browser/personal_data_manager_mac.mm |
| +++ b/components/autofill/core/browser/personal_data_manager_mac.mm |
| @@ -31,6 +31,10 @@ |
| namespace autofill { |
| namespace { |
| +// The maximum number of instances when the access Address Book prompt should |
| +// be shown. |
| +int kMaxTimesToShowMacAddressBook = 5; |
| + |
| // There is an uncommon sequence of events that causes the Address Book |
| // permissions dialog to appear more than once for a given install of Chrome. |
| // 1. Chrome has previously presented the Address Book permissions dialog. |
| @@ -374,6 +378,9 @@ bool PersonalDataManager::ShouldShowAccessAddressBookSuggestion( |
| if (HasPromptedForAccessToAddressBook(pref_service_)) |
|
Evan Stade
2014/09/18 22:06:09
this is pretty confusing function naming. HasPromp
erikchen
2014/09/18 22:49:50
I went with the name of the preference, which uses
|
| return false; |
| + if (AccessAddressBookPromptCount() >= kMaxTimesToShowMacAddressBook) |
| + return false; |
| + |
| switch (type.group()) { |
| case ADDRESS_BILLING: |
| case ADDRESS_HOME: |
| @@ -394,6 +401,15 @@ bool PersonalDataManager::ShouldShowAccessAddressBookSuggestion( |
| return false; |
| } |
| +void PersonalDataManager::ShowedAccessAddressBookPrompt() { |
| + pref_service_->SetInteger(prefs::kAutofillMacAddressBookShowedCount, |
| + AccessAddressBookPromptCount() + 1); |
| +} |
| + |
| +int PersonalDataManager::AccessAddressBookPromptCount() { |
| + return pref_service_->GetInteger(prefs::kAutofillMacAddressBookShowedCount); |
| +} |
| + |
| void PersonalDataManager::BinaryChanging() { |
| g_binary_changed = true; |
| } |