Index: chrome/browser/ui/autofill/autofill_dialog_controller_impl.cc |
diff --git a/chrome/browser/ui/autofill/autofill_dialog_controller_impl.cc b/chrome/browser/ui/autofill/autofill_dialog_controller_impl.cc |
index 059027f06883b74e691ccb469f204fb9adeaa073..4fa6b089191bd2a26613c9446737affd5daf3c81 100644 |
--- a/chrome/browser/ui/autofill/autofill_dialog_controller_impl.cc |
+++ b/chrome/browser/ui/autofill/autofill_dialog_controller_impl.cc |
@@ -2675,7 +2675,8 @@ void AutofillDialogControllerImpl::FillOutputForSectionWithComparator( |
GetValueFromSection(SECTION_BILLING, NAME_FULL)); |
if (ShouldSaveDetailsLocally()) { |
- GetManager()->SaveImportedCreditCard(card); |
+ std::string guid = GetManager()->SaveImportedCreditCard(card); |
+ newly_saved_data_model_guids_[section] = guid; |
DCHECK(!profile()->IsOffTheRecord()); |
newly_saved_card_.reset(new CreditCard(card)); |
} |
@@ -2692,8 +2693,10 @@ void AutofillDialogControllerImpl::FillOutputForSectionWithComparator( |
profile.set_origin(kAutofillDialogOrigin); |
FillFormGroupFromOutputs(output, &profile); |
- if (ShouldSaveDetailsLocally()) |
- SaveProfileGleanedFromSection(profile, section); |
+ if (ShouldSaveDetailsLocally()) { |
+ std::string guid = GetManager()->SaveImportedProfile(profile); |
+ newly_saved_data_model_guids_[section] = guid; |
+ } |
AutofillProfileWrapper profile_wrapper(&profile); |
profile_wrapper.FillFormStructure(inputs, compare, &form_structure_); |
@@ -2746,12 +2749,6 @@ string16 AutofillDialogControllerImpl::GetValueFromSection( |
return string16(); |
} |
-void AutofillDialogControllerImpl::SaveProfileGleanedFromSection( |
- const AutofillProfile& profile, |
- DialogSection section) { |
- GetManager()->SaveImportedProfile(profile); |
-} |
- |
SuggestionsMenuModel* AutofillDialogControllerImpl:: |
SuggestionsMenuModelForSection(DialogSection section) { |
switch (section) { |
@@ -3140,8 +3137,12 @@ void AutofillDialogControllerImpl::DoFinishSubmit() { |
SuggestionsMenuModel* model = SuggestionsMenuModelForSection(section); |
std::string item_key = model->GetItemKeyForCheckedItem(); |
- if (IsASuggestionItemKey(item_key) || item_key == kSameAsBillingKey) |
+ if (IsASuggestionItemKey(item_key) || item_key == kSameAsBillingKey) { |
PersistAutofillChoice(section, item_key); |
+ } else if (item_key == kAddNewItemKey && ShouldSaveDetailsLocally()) { |
+ DCHECK(newly_saved_data_model_guids_.count(section)); |
+ PersistAutofillChoice(section, newly_saved_data_model_guids_[section]); |
+ } |
} |
profile_->GetPrefs()->SetBoolean(::prefs::kAutofillDialogSaveData, |