Index: components/autofill/core/browser/personal_data_manager.cc |
diff --git a/components/autofill/core/browser/personal_data_manager.cc b/components/autofill/core/browser/personal_data_manager.cc |
index 9ddff255d5d02a45fe313608f00bb692857541bf..c3bd991fc104d269de6474cb802aa27849d7fd9f 100644 |
--- a/components/autofill/core/browser/personal_data_manager.cc |
+++ b/components/autofill/core/browser/personal_data_manager.cc |
@@ -726,7 +726,7 @@ bool PersonalDataManager::IsValidLearnableProfile( |
} |
// static |
-bool PersonalDataManager::MergeProfile( |
+std::string PersonalDataManager::MergeProfile( |
const AutofillProfile& new_profile, |
const std::vector<AutofillProfile*>& existing_profiles, |
const std::string& app_locale, |
@@ -735,6 +735,7 @@ bool PersonalDataManager::MergeProfile( |
// Set to true if |existing_profiles| already contains an equivalent profile. |
bool matching_profile_found = false; |
+ std::string guid = new_profile.guid(); |
// If we have already saved this address, merge in any missing values. |
// Only merge with the first match. |
@@ -751,6 +752,7 @@ bool PersonalDataManager::MergeProfile( |
// data. If an automatically aggregated profile would overwrite a |
// verified profile, just drop it. |
matching_profile_found = true; |
+ guid = existing_profile->guid(); |
if (!existing_profile->IsVerified() || new_profile.IsVerified()) |
existing_profile->OverwriteWithOrAddTo(new_profile, app_locale); |
} |
@@ -761,7 +763,7 @@ bool PersonalDataManager::MergeProfile( |
if (!matching_profile_found) |
merged_profiles->push_back(new_profile); |
- return matching_profile_found; |
+ return guid; |
} |
void PersonalDataManager::SetProfiles(std::vector<AutofillProfile>* profiles) { |
@@ -962,10 +964,10 @@ void PersonalDataManager::CancelPendingQuery( |
*handle = 0; |
} |
-void PersonalDataManager::SaveImportedProfile( |
+std::string PersonalDataManager::SaveImportedProfile( |
const AutofillProfile& imported_profile) { |
if (browser_context_->IsOffTheRecord()) |
- return; |
+ return std::string(); |
// Don't save a web profile if the data in the profile is a subset of an |
// auxiliary profile. |
@@ -973,32 +975,39 @@ void PersonalDataManager::SaveImportedProfile( |
auxiliary_profiles_.begin(); |
iter != auxiliary_profiles_.end(); ++iter) { |
if (imported_profile.IsSubsetOf(**iter, app_locale_)) |
- return; |
+ return (*iter)->guid(); |
} |
std::vector<AutofillProfile> profiles; |
- MergeProfile(imported_profile, web_profiles_.get(), app_locale_, &profiles); |
+ std::string guid = |
+ MergeProfile(imported_profile, web_profiles_.get(), app_locale_, |
+ &profiles); |
SetProfiles(&profiles); |
+ return guid; |
} |
-void PersonalDataManager::SaveImportedCreditCard( |
+std::string PersonalDataManager::SaveImportedCreditCard( |
const CreditCard& imported_card) { |
DCHECK(!imported_card.number().empty()); |
if (browser_context_->IsOffTheRecord()) |
- return; |
+ return std::string(); |
// Set to true if |imported_card| is merged into the credit card list. |
bool merged = false; |
+ std::string guid = imported_card.guid(); |
std::vector<CreditCard> credit_cards; |
for (std::vector<CreditCard*>::const_iterator card = credit_cards_.begin(); |
card != credit_cards_.end(); |
++card) { |
// If |imported_card| has not yet been merged, check whether it should be |
// with the current |card|. |
- if (!merged && (*card)->UpdateFromImportedCard(imported_card, app_locale_)) |
+ if (!merged && |
+ (*card)->UpdateFromImportedCard(imported_card, app_locale_)) { |
+ guid = (*card)->guid(); |
merged = true; |
+ } |
credit_cards.push_back(**card); |
} |
@@ -1007,6 +1016,7 @@ void PersonalDataManager::SaveImportedCreditCard( |
credit_cards.push_back(imported_card); |
SetCreditCards(&credit_cards); |
+ return guid; |
} |
void PersonalDataManager::LogProfileCount() const { |