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

Unified Diff: chrome/browser/webdata/web_database.cc

Issue 507053: Differentiate between ADD and CHANGED when adding new autofill entries. (Closed)
Patch Set: Created 11 years 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
« no previous file with comments | « chrome/browser/webdata/web_database.h ('k') | chrome/browser/webdata/web_database_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/webdata/web_database.cc
diff --git a/chrome/browser/webdata/web_database.cc b/chrome/browser/webdata/web_database.cc
index edeb0d685fd073837d84dcdc1e8dcddc179437e0..2ecf827891c5ce5d07f86b6daa66ab053a66c67e 100644
--- a/chrome/browser/webdata/web_database.cc
+++ b/chrome/browser/webdata/web_database.cc
@@ -804,18 +804,20 @@ bool WebDatabase::GetAllLogins(std::vector<PasswordForm*>* forms,
return s.Succeeded();
}
-bool WebDatabase::AddFormFieldValues(const std::vector<FormField>& elements) {
- return AddFormFieldValuesTime(elements, Time::Now());
+bool WebDatabase::AddFormFieldValues(const std::vector<FormField>& elements,
+ std::vector<AutofillChange>* changes) {
+ return AddFormFieldValuesTime(elements, changes, Time::Now());
}
bool WebDatabase::AddFormFieldValuesTime(const std::vector<FormField>& elements,
+ std::vector<AutofillChange>* changes,
base::Time time) {
bool result = true;
for (std::vector<FormField>::const_iterator
itr = elements.begin();
itr != elements.end();
itr++) {
- result = result && AddFormFieldValueTime(*itr, time);
+ result = result && AddFormFieldValueTime(*itr, changes, time);
}
return result;
}
@@ -945,11 +947,13 @@ bool WebDatabase::SetCountOfFormElement(int64 pair_id, int count) {
return true;
}
-bool WebDatabase::AddFormFieldValue(const FormField& element) {
- return AddFormFieldValueTime(element, base::Time::Now());
+bool WebDatabase::AddFormFieldValue(const FormField& element,
+ std::vector<AutofillChange>* changes) {
+ return AddFormFieldValueTime(element, changes, base::Time::Now());
}
bool WebDatabase::AddFormFieldValueTime(const FormField& element,
+ std::vector<AutofillChange>* changes,
base::Time time) {
int count = 0;
int64 pair_id;
@@ -960,8 +964,18 @@ bool WebDatabase::AddFormFieldValueTime(const FormField& element,
if (count == 0 && !InsertFormElement(element, &pair_id))
return false;
- return SetCountOfFormElement(pair_id, count + 1) &&
- InsertPairIDAndDate(pair_id, time);
+ if (!SetCountOfFormElement(pair_id, count + 1))
+ return false;
+
+ if (!InsertPairIDAndDate(pair_id, time))
+ return false;
+
+ AutofillChange::Type change_type =
+ count == 0 ? AutofillChange::ADD : AutofillChange::UPDATE;
+ changes->push_back(
+ AutofillChange(change_type,
+ AutofillKey(element.name(), element.value())));
+ return true;
}
bool WebDatabase::GetFormValuesForElementName(const string16& name,
« no previous file with comments | « chrome/browser/webdata/web_database.h ('k') | chrome/browser/webdata/web_database_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698