diff options
author | erikchen <erikchen@chromium.org> | 2014-09-18 14:59:33 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-09-18 22:00:07 +0000 |
commit | ca7fd5a44b5ce2ad379ec7dc54e14d0d00c83a8a (patch) | |
tree | b67992caf1089385abdb2bb2bf8f44f52330f369 /components | |
parent | d5770d216672950727a76e546aab7b610f78050b (diff) | |
download | chromium_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')
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) |