Index: chrome/browser/webdata/web_data_service.cc |
diff --git a/chrome/browser/webdata/web_data_service.cc b/chrome/browser/webdata/web_data_service.cc |
index 5ca9c313db0b684944e90269c6b9e72c6e85a12f..4407cdd0a467fc6d2b63dff4b058ecc0c8f27b8a 100644 |
--- a/chrome/browser/webdata/web_data_service.cc |
+++ b/chrome/browser/webdata/web_data_service.cc |
@@ -634,17 +634,9 @@ void WebDataService::AddFormFieldValuesImpl( |
InitializeDatabaseIfNecessary(); |
const std::vector<FormField>& form_fields = request->GetArgument(); |
if (db_ && !request->IsCancelled()) { |
- if (!db_->AddFormFieldValues(form_fields)) |
- NOTREACHED(); |
- |
AutofillChangeList changes; |
- for (std::vector<FormField>::const_iterator itr = form_fields.begin(); |
- itr != form_fields.end(); |
- itr++) { |
- changes.push_back( |
- AutofillChange(AutofillChange::ADD, |
- AutofillKey(itr->name(), itr->value()))); |
- } |
+ if (!db_->AddFormFieldValues(form_fields, &changes)) |
+ NOTREACHED(); |
request->SetResult( |
new WDResult<AutofillChangeList>(AUTOFILL_CHANGES, changes)); |
ScheduleCommit(); |
@@ -672,8 +664,13 @@ void WebDataService::RemoveFormElementsAddedBetweenImpl( |
AutofillChangeList changes; |
if (db_->RemoveFormElementsAddedBetween(request->GetArgument1(), |
request->GetArgument2(), |
- &changes)) |
+ &changes)) { |
+ if (changes.size() > 0) { |
+ request->SetResult( |
+ new WDResult<AutofillChangeList>(AUTOFILL_CHANGES, changes)); |
+ } |
ScheduleCommit(); |
+ } |
} |
request->RequestComplete(); |
} |