Index: chrome/browser/webdata/web_database.cc |
=================================================================== |
--- chrome/browser/webdata/web_database.cc (revision 55892) |
+++ chrome/browser/webdata/web_database.cc (working copy) |
@@ -1075,12 +1075,21 @@ |
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; |
} |