Index: chrome/browser/autofill/autofill_manager.cc |
diff --git a/chrome/browser/autofill/autofill_manager.cc b/chrome/browser/autofill/autofill_manager.cc |
index efb9b338a896f29a349f6b4aba4413e039fca77a..8559b92d76a8fb290064252b915807e44d097eaa 100644 |
--- a/chrome/browser/autofill/autofill_manager.cc |
+++ b/chrome/browser/autofill/autofill_manager.cc |
@@ -63,6 +63,7 @@ |
#include "ui/base/l10n/l10n_util.h" |
#include "ui/gfx/rect.h" |
+typedef PersonalDataManager::GUIDPair GUIDPair; |
using base::TimeTicks; |
using content::BrowserThread; |
using content::RenderViewHost; |
@@ -1129,83 +1130,19 @@ void AutofillManager::GetProfileSuggestions( |
std::vector<string16>* labels, |
std::vector<string16>* icons, |
std::vector<int>* unique_ids) const { |
- const std::vector<AutofillProfile*>& profiles = personal_data_->GetProfiles(); |
- const std::string app_locale = AutofillCountry::ApplicationLocale(); |
- if (!field.is_autofilled) { |
- std::vector<AutofillProfile*> matched_profiles; |
- for (std::vector<AutofillProfile*>::const_iterator iter = profiles.begin(); |
- iter != profiles.end(); ++iter) { |
- AutofillProfile* profile = *iter; |
- |
- // The value of the stored data for this field type in the |profile|. |
- std::vector<string16> multi_values; |
- profile->GetMultiInfo(type, app_locale, &multi_values); |
- |
- for (size_t i = 0; i < multi_values.size(); ++i) { |
- if (!multi_values[i].empty() && |
- StartsWith(multi_values[i], field.value, false)) { |
- matched_profiles.push_back(profile); |
- values->push_back(multi_values[i]); |
- unique_ids->push_back(PackGUIDs(GUIDPair(std::string(), 0), |
- GUIDPair(profile->guid(), i))); |
- } |
- } |
- } |
- |
- std::vector<AutofillFieldType> form_fields; |
- form_fields.reserve(form->field_count()); |
- for (std::vector<AutofillField*>::const_iterator iter = form->begin(); |
- iter != form->end(); ++iter) { |
- form_fields.push_back((*iter)->type()); |
- } |
- |
- AutofillProfile::CreateInferredLabels(&matched_profiles, &form_fields, |
- type, 1, labels); |
- |
- // No icons for profile suggestions. |
- icons->resize(values->size()); |
- } else { |
- for (std::vector<AutofillProfile*>::const_iterator iter = profiles.begin(); |
- iter != profiles.end(); ++iter) { |
- AutofillProfile* profile = *iter; |
- |
- // The value of the stored data for this field type in the |profile|. |
- std::vector<string16> multi_values; |
- profile->GetMultiInfo(type, app_locale, &multi_values); |
- |
- for (size_t i = 0; i < multi_values.size(); ++i) { |
- if (multi_values[i].empty()) |
- continue; |
- string16 profile_value_lower_case(StringToLowerASCII(multi_values[i])); |
- string16 field_value_lower_case(StringToLowerASCII(field.value)); |
- // Phone numbers could be split in US forms, so field value could be |
- // either prefix or suffix of the phone. |
- bool matched_phones = false; |
- if (type == PHONE_HOME_NUMBER && !field_value_lower_case.empty() && |
- (profile_value_lower_case.find(field_value_lower_case) != |
- string16::npos)) { |
- matched_phones = true; |
- } |
- if (matched_phones || |
- profile_value_lower_case == field_value_lower_case) { |
- for (size_t j = 0; j < multi_values.size(); ++j) { |
- if (!multi_values[j].empty()) { |
- values->push_back(multi_values[j]); |
- unique_ids->push_back(PackGUIDs(GUIDPair(std::string(), 0), |
- GUIDPair(profile->guid(), j))); |
- } |
- } |
- // We've added all the values for this profile so move on to the next. |
- break; |
- } |
- } |
- } |
+ std::vector<AutofillFieldType> field_types(form->field_count()); |
+ for (size_t i = 0; i < form->field_count(); ++i) { |
+ field_types[i] = form->field(i)->type(); |
+ } |
+ std::vector<GUIDPair> guid_pairs; |
- // No labels for previously filled fields. |
- labels->resize(values->size()); |
+ personal_data_->GetProfileSuggestions( |
+ type, field.value, field.is_autofilled, field_types, |
+ values, labels, icons, &guid_pairs); |
- // No icons for profile suggestions. |
- icons->resize(values->size()); |
+ for (size_t i = 0; i < guid_pairs.size(); ++i) { |
+ unique_ids->push_back(PackGUIDs(GUIDPair(std::string(), 0), |
+ guid_pairs[i])); |
Ilya Sherman
2012/12/20 21:57:42
This diff is not related to this CL...
|
} |
} |
@@ -1302,7 +1239,7 @@ int AutofillManager::GUIDToID(const GUIDPair& guid) const { |
} |
} |
-const AutofillManager::GUIDPair AutofillManager::IDToGUID(int id) const { |
+const GUIDPair AutofillManager::IDToGUID(int id) const { |
if (id == 0) |
return GUIDPair(std::string(), 0); |