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

Unified Diff: components/password_manager/core/browser/login_database.cc

Issue 299443002: Password Login Database: report correct changes from UpdateLogin(). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Added UpdateNonexistentLogin tests Created 6 years, 7 months 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
Index: components/password_manager/core/browser/login_database.cc
diff --git a/components/password_manager/core/browser/login_database.cc b/components/password_manager/core/browser/login_database.cc
index 7623762711d7a6ea6235b2c850ca526c917e6b64..f344de99d90d01fa22f59a510bea3438f987e2a7 100644
--- a/components/password_manager/core/browser/login_database.cc
+++ b/components/password_manager/core/browser/login_database.cc
@@ -335,11 +335,11 @@ PasswordStoreChangeList LoginDatabase::AddLogin(const PasswordForm& form) {
return list;
}
-bool LoginDatabase::UpdateLogin(const PasswordForm& form, int* items_changed) {
+PasswordStoreChangeList LoginDatabase::UpdateLogin(const PasswordForm& form) {
std::string encrypted_password;
if (EncryptedString(form.password_value, &encrypted_password) !=
ENCRYPTION_RESULT_SUCCESS)
- return false;
+ return PasswordStoreChangeList();
// Replacement is necessary to deal with updating imported credentials. See
// crbug.com/349138 for details.
@@ -351,14 +351,11 @@ bool LoginDatabase::UpdateLogin(const PasswordForm& form, int* items_changed) {
"preferred = ?, "
"possible_usernames = ?, "
"times_used = ?, "
- "username_element = ?, "
- "password_element = ?, "
"submit_element = ? "
"WHERE origin_url = ? AND "
- "(username_element = ? OR username_element = '') AND "
+ "username_element = ? AND "
"username_value = ? AND "
- "(password_element = ? OR password_element = '') AND "
- "(submit_element = ? OR submit_element = '') AND "
+ "password_element = ? AND "
"signon_realm = ?"));
s.BindString(0, form.action.spec());
s.BindBlob(1, encrypted_password.data(),
@@ -368,24 +365,22 @@ bool LoginDatabase::UpdateLogin(const PasswordForm& form, int* items_changed) {
Pickle pickle = SerializeVector(form.other_possible_usernames);
s.BindBlob(4, pickle.data(), pickle.size());
s.BindInt(5, form.times_used);
- s.BindString16(6, form.username_element);
- s.BindString16(7, form.password_element);
- s.BindString16(8, form.submit_element);
+ s.BindString16(6, form.submit_element);
- s.BindString(9, form.origin.spec());
- s.BindString16(10, form.username_element);
- s.BindString16(11, form.username_value);
- s.BindString16(12, form.password_element);
- s.BindString16(13, form.submit_element);
- s.BindString(14, form.signon_realm);
+ s.BindString(7, form.origin.spec());
+ s.BindString16(8, form.username_element);
+ s.BindString16(9, form.username_value);
+ s.BindString16(10, form.password_element);
+ s.BindString(11, form.signon_realm);
if (!s.Run())
- return false;
+ return PasswordStoreChangeList();
- if (items_changed)
- *items_changed = db_.GetLastChangeCount();
+ PasswordStoreChangeList list;
+ if (db_.GetLastChangeCount())
+ list.push_back(PasswordStoreChange(PasswordStoreChange::UPDATE, form));
- return true;
+ return list;
}
bool LoginDatabase::RemoveLogin(const PasswordForm& form) {

Powered by Google App Engine
This is Rietveld 408576698