summaryrefslogtreecommitdiffstats
path: root/components
diff options
context:
space:
mode:
authorerikchen <erikchen@chromium.org>2014-09-18 14:59:33 -0700
committerCommit bot <commit-bot@chromium.org>2014-09-18 22:00:07 +0000
commitca7fd5a44b5ce2ad379ec7dc54e14d0d00c83a8a (patch)
treeb67992caf1089385abdb2bb2bf8f44f52330f369 /components
parentd5770d216672950727a76e546aab7b610f78050b (diff)
downloadchromium_src-ca7fd5a44b5ce2ad379ec7dc54e14d0d00c83a8a.zip
chromium_src-ca7fd5a44b5ce2ad379ec7dc54e14d0d00c83a8a.tar.gz
chromium_src-ca7fd5a44b5ce2ad379ec7dc54e14d0d00c83a8a.tar.bz2
mac: Two small changes to Access Addres Book prompt.
- Don't show access Address Book prompt if user has any Autofill state. - Eliminate flickering of the access Address Book prompt. BUG=414359 Review URL: https://codereview.chromium.org/575283003 Cr-Commit-Position: refs/heads/master@{#295573}
Diffstat (limited to 'components')
-rw-r--r--components/autofill/core/browser/autofill_manager_unittest.cc16
-rw-r--r--components/autofill/core/browser/personal_data_manager_mac.mm5
-rw-r--r--components/autofill/core/browser/personal_data_manager_unittest.cc16
3 files changed, 30 insertions, 7 deletions
diff --git a/components/autofill/core/browser/autofill_manager_unittest.cc b/components/autofill/core/browser/autofill_manager_unittest.cc
index 99faf6f..963da43 100644
--- a/components/autofill/core/browser/autofill_manager_unittest.cc
+++ b/components/autofill/core/browser/autofill_manager_unittest.cc
@@ -95,15 +95,13 @@ class TestPersonalDataManager : public PersonalDataManager {
CreditCard* credit_card = GetCreditCardWithGUID(guid.c_str());
if (credit_card) {
credit_cards_.erase(
- std::remove(credit_cards_.begin(), credit_cards_.end(), credit_card),
- credit_cards_.end());
+ std::find(credit_cards_.begin(), credit_cards_.end(), credit_card));
}
AutofillProfile* profile = GetProfileWithGUID(guid.c_str());
if (profile) {
web_profiles_.erase(
- std::remove(web_profiles_.begin(), web_profiles_.end(), profile),
- web_profiles_.end());
+ std::find(web_profiles_.begin(), web_profiles_.end(), profile));
}
}
@@ -2787,14 +2785,20 @@ TEST_F(AutofillManagerTest, AccessAddressBookPrompt) {
std::vector<FormData> forms(1, form);
FormsSeen(forms);
FormFieldData& field = form.fields[0];
+ field.should_autocomplete = true;
- field.should_autocomplete = false;
+ // A profile already exists.
EXPECT_FALSE(
autofill_manager_->ShouldShowAccessAddressBookSuggestion(form, field));
- field.should_autocomplete = true;
+ // Remove all profiles.
+ personal_data_.ClearAutofillProfiles();
EXPECT_TRUE(
autofill_manager_->ShouldShowAccessAddressBookSuggestion(form, field));
+
+ field.should_autocomplete = false;
+ EXPECT_FALSE(
+ autofill_manager_->ShouldShowAccessAddressBookSuggestion(form, field));
}
#endif // defined(OS_MACOSX) && !defined(OS_IOS)
diff --git a/components/autofill/core/browser/personal_data_manager_mac.mm b/components/autofill/core/browser/personal_data_manager_mac.mm
index 4080d3c..c6f8eef 100644
--- a/components/autofill/core/browser/personal_data_manager_mac.mm
+++ b/components/autofill/core/browser/personal_data_manager_mac.mm
@@ -363,6 +363,11 @@ bool PersonalDataManager::AccessAddressBook() {
bool PersonalDataManager::ShouldShowAccessAddressBookSuggestion(
AutofillType type) {
+ // Don't show the access Address Book prompt if the user has built up any
+ // Autofill state.
+ if (!web_profiles_.empty())
+ return false;
+
if (!enabled_pref_->GetValue())
return false;
diff --git a/components/autofill/core/browser/personal_data_manager_unittest.cc b/components/autofill/core/browser/personal_data_manager_unittest.cc
index c5e0065..50eb51e 100644
--- a/components/autofill/core/browser/personal_data_manager_unittest.cc
+++ b/components/autofill/core/browser/personal_data_manager_unittest.cc
@@ -2706,10 +2706,24 @@ TEST_F(PersonalDataManagerTest, ShowAddressBookPrompt) {
AutofillType type(ADDRESS_HOME_STREET_ADDRESS);
+ prefs_->SetBoolean(prefs::kAutofillEnabled, false);
+ EXPECT_FALSE(personal_data_->ShouldShowAccessAddressBookSuggestion(type));
+
prefs_->SetBoolean(prefs::kAutofillEnabled, true);
EXPECT_TRUE(personal_data_->ShouldShowAccessAddressBookSuggestion(type));
- prefs_->SetBoolean(prefs::kAutofillEnabled, false);
+ // Adding an Autofill Profile should prevent the prompt from appearing.
+ AutofillProfile profile(base::GenerateGUID(), "https://www.example.com/");
+ test::SetProfileInfo(&profile,
+ "Marion", "Mitchell", "Morrison",
+ "johnwayne@me.xyz", "Fox", "123 Zoo St.", "unit 5", "Hollywood", "CA",
+ "91601", "US", "12345678910");
+ personal_data_->AddProfile(profile);
+
+ EXPECT_CALL(personal_data_observer_, OnPersonalDataChanged())
+ .WillOnce(QuitMainMessageLoop());
+ base::MessageLoop::current()->Run();
+
EXPECT_FALSE(personal_data_->ShouldShowAccessAddressBookSuggestion(type));
}
#endif // defined(OS_MACOSX) && !defined(OS_IOS)