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; |
} |