| Index: chrome/browser/webdata/web_database.cc
|
| diff --git a/chrome/browser/webdata/web_database.cc b/chrome/browser/webdata/web_database.cc
|
| index 67699f02987ab15ca9e1fec775a152253d80e011..948dc8c259c20bd5a31047779ab2c4cc0b65c070 100644
|
| --- a/chrome/browser/webdata/web_database.cc
|
| +++ b/chrome/browser/webdata/web_database.cc
|
| @@ -1075,12 +1075,21 @@ bool WebDatabase::AddFormFieldValues(const std::vector<FormField>& elements,
|
| bool WebDatabase::AddFormFieldValuesTime(const std::vector<FormField>& elements,
|
| std::vector<AutofillChange>* changes,
|
| base::Time time) {
|
| + // Only add one new entry for each unique element name. Use |seen_names| to
|
| + // track this. Add up to |kMaximumUniqueNames| unique entries per form.
|
| + const size_t kMaximumUniqueNames = 256;
|
| + std::set<string16> seen_names;
|
| bool result = true;
|
| for (std::vector<FormField>::const_iterator
|
| itr = elements.begin();
|
| itr != elements.end();
|
| itr++) {
|
| + if (seen_names.size() >= kMaximumUniqueNames)
|
| + break;
|
| + if (seen_names.find(itr->name()) != seen_names.end())
|
| + continue;
|
| result = result && AddFormFieldValueTime(*itr, changes, time);
|
| + seen_names.insert(itr->name());
|
| }
|
| return result;
|
| }
|
|
|