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

Side by Side Diff: components/password_manager/core/browser/login_database.cc

Issue 377223003: LoginDatabase::Update should touch all the fields which are synced. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix the test on Mac Created 6 years, 5 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | components/password_manager/core/browser/login_database_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/password_manager/core/browser/login_database.h" 5 #include "components/password_manager/core/browser/login_database.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <limits> 8 #include <limits>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 344 matching lines...) Expand 10 before | Expand all | Expand 10 after
355 // crbug.com/349138 for details. 355 // crbug.com/349138 for details.
356 sql::Statement s(db_.GetCachedStatement(SQL_FROM_HERE, 356 sql::Statement s(db_.GetCachedStatement(SQL_FROM_HERE,
357 "UPDATE OR REPLACE logins SET " 357 "UPDATE OR REPLACE logins SET "
358 "action_url = ?, " 358 "action_url = ?, "
359 "password_value = ?, " 359 "password_value = ?, "
360 "ssl_valid = ?, " 360 "ssl_valid = ?, "
361 "preferred = ?, " 361 "preferred = ?, "
362 "possible_usernames = ?, " 362 "possible_usernames = ?, "
363 "times_used = ?, " 363 "times_used = ?, "
364 "submit_element = ?, " 364 "submit_element = ?, "
365 "date_synced = ? " 365 "date_synced = ?, "
366 "date_created = ?, "
367 "blacklisted_by_user = ?, "
368 "scheme = ?, "
369 "password_type = ? "
366 "WHERE origin_url = ? AND " 370 "WHERE origin_url = ? AND "
367 "username_element = ? AND " 371 "username_element = ? AND "
368 "username_value = ? AND " 372 "username_value = ? AND "
369 "password_element = ? AND " 373 "password_element = ? AND "
370 "signon_realm = ?")); 374 "signon_realm = ?"));
371 s.BindString(0, form.action.spec()); 375 s.BindString(0, form.action.spec());
372 s.BindBlob(1, encrypted_password.data(), 376 s.BindBlob(1, encrypted_password.data(),
373 static_cast<int>(encrypted_password.length())); 377 static_cast<int>(encrypted_password.length()));
374 s.BindInt(2, form.ssl_valid); 378 s.BindInt(2, form.ssl_valid);
375 s.BindInt(3, form.preferred); 379 s.BindInt(3, form.preferred);
376 Pickle pickle = SerializeVector(form.other_possible_usernames); 380 Pickle pickle = SerializeVector(form.other_possible_usernames);
377 s.BindBlob(4, pickle.data(), pickle.size()); 381 s.BindBlob(4, pickle.data(), pickle.size());
378 s.BindInt(5, form.times_used); 382 s.BindInt(5, form.times_used);
379 s.BindString16(6, form.submit_element); 383 s.BindString16(6, form.submit_element);
380 s.BindInt64(7, form.date_synced.ToInternalValue()); 384 s.BindInt64(7, form.date_synced.ToInternalValue());
385 s.BindInt64(8, form.date_created.ToTimeT());
386 s.BindInt(9, form.blacklisted_by_user);
387 s.BindInt(10, form.scheme);
388 s.BindInt(11, form.type);
381 389
382 s.BindString(8, form.origin.spec()); 390 s.BindString(12, form.origin.spec());
383 s.BindString16(9, form.username_element); 391 s.BindString16(13, form.username_element);
384 s.BindString16(10, form.username_value); 392 s.BindString16(14, form.username_value);
385 s.BindString16(11, form.password_element); 393 s.BindString16(15, form.password_element);
386 s.BindString(12, form.signon_realm); 394 s.BindString(16, form.signon_realm);
387 395
388 if (!s.Run()) 396 if (!s.Run())
389 return PasswordStoreChangeList(); 397 return PasswordStoreChangeList();
390 398
391 PasswordStoreChangeList list; 399 PasswordStoreChangeList list;
392 if (db_.GetLastChangeCount()) 400 if (db_.GetLastChangeCount())
393 list.push_back(PasswordStoreChange(PasswordStoreChange::UPDATE, form)); 401 list.push_back(PasswordStoreChange(PasswordStoreChange::UPDATE, form));
394 402
395 return list; 403 return list;
396 } 404 }
(...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after
689 697
690 bool LoginDatabase::DeleteAndRecreateDatabaseFile() { 698 bool LoginDatabase::DeleteAndRecreateDatabaseFile() {
691 DCHECK(db_.is_open()); 699 DCHECK(db_.is_open());
692 meta_table_.Reset(); 700 meta_table_.Reset();
693 db_.Close(); 701 db_.Close();
694 sql::Connection::Delete(db_path_); 702 sql::Connection::Delete(db_path_);
695 return Init(db_path_); 703 return Init(db_path_);
696 } 704 }
697 705
698 } // namespace password_manager 706 } // namespace password_manager
OLDNEW
« no previous file with comments | « no previous file | components/password_manager/core/browser/login_database_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698