Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(598)

Unified Diff: components/autofill/core/browser/autofill_profile.cc

Issue 347183005: autofill names - dont parse when calling SetRawInfo(FULL_NAME) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: subtle change Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/autofill/core/browser/autofill_profile.cc
diff --git a/components/autofill/core/browser/autofill_profile.cc b/components/autofill/core/browser/autofill_profile.cc
index 3b242a953e44b315816de8d3b78d5aa84ae0e0f4..05641184ba2560a3bae1301967b7eb5d379947aa 100644
--- a/components/autofill/core/browser/autofill_profile.cc
+++ b/components/autofill/core/browser/autofill_profile.cc
@@ -165,10 +165,11 @@ void CollapseCompoundFieldTypes(ServerFieldTypeSet* type_set) {
for (ServerFieldTypeSet::iterator it = type_set->begin();
it != type_set->end(); ++it) {
switch (*it) {
- case NAME_FIRST:
case NAME_MIDDLE:
- case NAME_LAST:
case NAME_MIDDLE_INITIAL:
+ collapsed_set.insert(NAME_MIDDLE);
+ break;
+
case NAME_FULL:
case NAME_SUFFIX:
collapsed_set.insert(NAME_FULL);
@@ -577,7 +578,7 @@ void AutofillProfile::OverwriteWithOrAddTo(const AutofillProfile& profile,
ServerFieldTypeSet field_types;
profile.GetNonEmptyTypes(app_locale, &field_types);
- // Only transfer "full" types (e.g. full name) and not fragments (e.g.
+ // Only transfer "full" types (e.g. full phone number) and not fragments (e.g.
// first name, last name).
Ilya Sherman 2014/06/24 07:21:37 This comment needs more updating.
Evan Stade 2014/06/27 00:06:18 reverted
CollapseCompoundFieldTypes(&field_types);
Ilya Sherman 2014/06/24 07:21:37 I'm concerned that treating first, middle, last, a
Evan Stade 2014/06/27 00:06:19 Quite right, I didn't look at this closely enough
@@ -643,10 +644,11 @@ bool AutofillProfile::SupportsMultiValue(ServerFieldType type) {
// static
void AutofillProfile::CreateDifferentiatingLabels(
const std::vector<AutofillProfile*>& profiles,
+ const std::string& app_locale,
std::vector<base::string16>* labels) {
const size_t kMinimalFieldsShown = 2;
CreateInferredLabels(profiles, NULL, UNKNOWN_TYPE, kMinimalFieldsShown,
- labels);
+ app_locale, labels);
DCHECK_EQ(profiles.size(), labels->size());
}
@@ -656,6 +658,7 @@ void AutofillProfile::CreateInferredLabels(
const std::vector<ServerFieldType>* suggested_fields,
ServerFieldType excluded_field,
size_t minimal_fields_shown,
+ const std::string& app_locale,
std::vector<base::string16>* labels) {
std::vector<ServerFieldType> fields_to_use;
GetFieldsForDistinguishingProfiles(suggested_fields, excluded_field,
@@ -668,7 +671,8 @@ void AutofillProfile::CreateInferredLabels(
for (size_t i = 0; i < profiles.size(); ++i) {
base::string16 label =
profiles[i]->ConstructInferredLabel(fields_to_use,
- minimal_fields_shown);
+ minimal_fields_shown,
+ app_locale);
labels_to_profiles[label].push_back(i);
}
@@ -685,7 +689,7 @@ void AutofillProfile::CreateInferredLabels(
// We have more than one profile with the same label, so add
// differentiating fields.
CreateInferredLabelsHelper(profiles, it->second, fields_to_use,
- minimal_fields_shown, labels);
+ minimal_fields_shown, app_locale, labels);
}
}
}
@@ -737,7 +741,8 @@ void AutofillProfile::AddPhoneIfUnique(
base::string16 AutofillProfile::ConstructInferredLabel(
const std::vector<ServerFieldType>& included_fields,
- size_t num_fields_to_use) const {
+ size_t num_fields_to_use,
+ const std::string& app_locale) const {
const base::string16 separator =
l10n_util::GetStringUTF16(IDS_AUTOFILL_ADDRESS_SUMMARY_SEPARATOR);
@@ -747,7 +752,7 @@ base::string16 AutofillProfile::ConstructInferredLabel(
included_fields.begin();
it != included_fields.end() && num_fields_used < num_fields_to_use;
++it) {
- base::string16 field = GetRawInfo(*it);
+ base::string16 field = GetInfo(AutofillType(*it), app_locale);
if (field.empty())
continue;
@@ -772,6 +777,7 @@ void AutofillProfile::CreateInferredLabelsHelper(
const std::list<size_t>& indices,
const std::vector<ServerFieldType>& fields,
size_t num_fields_to_include,
+ const std::string& app_locale,
std::vector<base::string16>* labels) {
// For efficiency, we first construct a map of fields to their text values and
// each value's frequency.
@@ -837,8 +843,8 @@ void AutofillProfile::CreateInferredLabelsHelper(
break;
}
- (*labels)[*it] =
- profile->ConstructInferredLabel(label_fields, label_fields.size());
+ (*labels)[*it] = profile->ConstructInferredLabel(
+ label_fields, label_fields.size(), app_locale);
}
}

Powered by Google App Engine
This is Rietveld 408576698