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

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

Issue 894583003: Rename PasswordForm::is_zero_click to PasswordForm::skip_next_zero_click. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix linux Created 5 years, 10 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 4c65080b080dab0fcbc0947e8b477e872fcd4349..3ebadb6050d2bb7911961f8f4084f5861ad3e679 100644
--- a/components/password_manager/core/browser/login_database.cc
+++ b/components/password_manager/core/browser/login_database.cc
@@ -27,7 +27,7 @@ using autofill::PasswordForm;
namespace password_manager {
-const int kCurrentVersionNumber = 10;
+const int kCurrentVersionNumber = 11;
static const int kCompatibleVersionNumber = 1;
Pickle SerializeVector(const std::vector<base::string16>& vec) {
@@ -74,7 +74,7 @@ enum LoginTableColumns {
COLUMN_DISPLAY_NAME,
COLUMN_AVATAR_URL,
COLUMN_FEDERATION_URL,
- COLUMN_IS_ZERO_CLICK,
+ COLUMN_SKIP_ZERO_CLICK,
};
void BindAddStatement(const PasswordForm& form,
@@ -109,7 +109,7 @@ void BindAddStatement(const PasswordForm& form,
s->BindString16(COLUMN_DISPLAY_NAME, form.display_name);
s->BindString(COLUMN_AVATAR_URL, form.avatar_url.spec());
s->BindString(COLUMN_FEDERATION_URL, form.federation_url.spec());
- s->BindInt(COLUMN_IS_ZERO_CLICK, form.is_zero_click);
+ s->BindInt(COLUMN_SKIP_ZERO_CLICK, form.skip_zero_click);
}
void AddCallback(int err, sql::Statement* /*stmt*/) {
@@ -150,6 +150,43 @@ void LogTimesUsedStat(const std::string& name, int sample) {
LogDynamicUMAStat(name, sample, 0, 100, 10);
}
+// Creates a table named |table_name| using our current schema.
+bool CreateNewTable(sql::Connection* db, const char* table_name) {
+ std::string query = base::StringPrintf(
+ "CREATE TABLE %s ("
+ "origin_url VARCHAR NOT NULL, "
+ "action_url VARCHAR, "
+ "username_element VARCHAR, "
+ "username_value VARCHAR, "
+ "password_element VARCHAR, "
+ "password_value BLOB, "
+ "submit_element VARCHAR, "
+ "signon_realm VARCHAR NOT NULL,"
+ "ssl_valid INTEGER NOT NULL,"
+ "preferred INTEGER NOT NULL,"
+ "date_created INTEGER NOT NULL,"
+ "blacklisted_by_user INTEGER NOT NULL,"
+ "scheme INTEGER NOT NULL,"
+ "password_type INTEGER,"
+ "possible_usernames BLOB,"
+ "times_used INTEGER,"
+ "form_data BLOB,"
+ "date_synced INTEGER,"
+ "display_name VARCHAR,"
+ "avatar_url VARCHAR,"
+ "federation_url VARCHAR,"
+ "skip_zero_click INTEGER,"
+ "UNIQUE (origin_url, username_element, username_value, "
+ "password_element, signon_realm))", table_name);
+ return db->Execute(query.c_str());
+}
+
+bool CreateIndexOnSignonRealm(sql::Connection* db, const char* table_name) {
+ std::string query = base::StringPrintf(
+ "CREATE INDEX logins_signon ON %s (signon_realm)", table_name);
+ return db->Execute(query.c_str());
+}
+
} // namespace
LoginDatabase::LoginDatabase(const base::FilePath& db_path)
@@ -300,11 +337,30 @@ bool LoginDatabase::MigrateOldVersionsAsNeeded() {
("CREATE TABLE logins(" + fields_to_copy + ")").c_str()) ||
!db_.Execute(copy_data_query("logins_data", "logins").c_str()) ||
!db_.Execute("DROP TABLE logins_data") ||
- !db_.Execute("CREATE INDEX logins_signon ON logins (signon_realm)"))
+ !CreateIndexOnSignonRealm(&db_, "logins"))
return false;
meta_table_.SetVersionNumber(10);
}
+ case 10: {
+ // rename is_zero_click -> skip_zero_click and restore the unique key
+ // (origin_url, username_element, username_value, password_element,
+ // signon_realm).
+ const char copy_query[] = "INSERT OR REPLACE INTO logins_new SELECT "
+ "origin_url, action_url, username_element, username_value, "
+ "password_element, password_value, submit_element, signon_realm, "
+ "ssl_valid, preferred, date_created, blacklisted_by_user, scheme, "
+ "password_type, possible_usernames, times_used, form_data, "
+ "date_synced, display_name, avatar_url, federation_url, is_zero_click"
+ " FROM logins";
+ if (!CreateNewTable(&db_, "logins_new") ||
+ !db_.Execute(copy_query) ||
+ !db_.Execute("DROP TABLE logins") ||
+ !db_.Execute("ALTER TABLE logins_new RENAME TO logins") ||
+ !CreateIndexOnSignonRealm(&db_, "logins"))
+ return false;
+ meta_table_.SetVersionNumber(11);
+ }
case kCurrentVersionNumber:
// Already up to date
return true;
@@ -316,39 +372,11 @@ bool LoginDatabase::MigrateOldVersionsAsNeeded() {
bool LoginDatabase::InitLoginsTable() {
if (!db_.DoesTableExist("logins")) {
- if (!db_.Execute(
- "CREATE TABLE logins ("
- "origin_url VARCHAR NOT NULL, "
- "action_url VARCHAR, "
- "username_element VARCHAR, "
- "username_value VARCHAR, "
- "password_element VARCHAR, "
- "password_value BLOB, "
- "submit_element VARCHAR, "
- "signon_realm VARCHAR NOT NULL,"
- "ssl_valid INTEGER NOT NULL,"
- "preferred INTEGER NOT NULL,"
- "date_created INTEGER NOT NULL,"
- "blacklisted_by_user INTEGER NOT NULL,"
- "scheme INTEGER NOT NULL,"
- "password_type INTEGER,"
- "possible_usernames BLOB,"
- "times_used INTEGER,"
- "form_data BLOB,"
- "date_synced INTEGER,"
- "display_name VARCHAR,"
- "avatar_url VARCHAR,"
- "federation_url VARCHAR,"
- "is_zero_click INTEGER,"
- "UNIQUE "
- "(origin_url, username_element, "
- "username_value, password_element, "
- "submit_element, signon_realm))")) {
+ if (!CreateNewTable(&db_, "logins")) {
NOTREACHED();
return false;
}
- if (!db_.Execute("CREATE INDEX logins_signon ON "
- "logins (signon_realm)")) {
+ if (!CreateIndexOnSignonRealm(&db_, "logins")) {
NOTREACHED();
return false;
}
@@ -474,7 +502,7 @@ PasswordStoreChangeList LoginDatabase::AddLogin(const PasswordForm& form) {
" signon_realm, ssl_valid, preferred, date_created, blacklisted_by_user, "
" scheme, password_type, possible_usernames, times_used, form_data, "
" date_synced, display_name, avatar_url,"
- " federation_url, is_zero_click) VALUES "
+ " federation_url, skip_zero_click) VALUES "
"(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"));
BindAddStatement(form, encrypted_password, &s);
db_.set_error_callback(base::Bind(&AddCallback));
@@ -493,7 +521,7 @@ PasswordStoreChangeList LoginDatabase::AddLogin(const PasswordForm& form) {
" signon_realm, ssl_valid, preferred, date_created, blacklisted_by_user, "
" scheme, password_type, possible_usernames, times_used, form_data, "
" date_synced, display_name, avatar_url,"
- " federation_url, is_zero_click) VALUES "
+ " federation_url, skip_zero_click) VALUES "
"(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"));
BindAddStatement(form, encrypted_password, &s);
if (s.Run()) {
@@ -528,7 +556,7 @@ PasswordStoreChangeList LoginDatabase::UpdateLogin(const PasswordForm& form) {
"display_name = ?, "
"avatar_url = ?, "
"federation_url = ?, "
- "is_zero_click = ? "
+ "skip_zero_click = ? "
"WHERE origin_url = ? AND "
"username_element = ? AND "
"username_value = ? AND "
@@ -551,7 +579,7 @@ PasswordStoreChangeList LoginDatabase::UpdateLogin(const PasswordForm& form) {
s.BindString16(12, form.display_name);
s.BindString(13, form.avatar_url.spec());
s.BindString(14, form.federation_url.spec());
- s.BindInt(15, form.is_zero_click);
+ s.BindInt(15, form.skip_zero_click);
// WHERE starts here.
s.BindString(16, form.origin.spec());
@@ -672,7 +700,7 @@ LoginDatabase::EncryptionResult LoginDatabase::InitPasswordFormFromStatement(
form->display_name = s.ColumnString16(COLUMN_DISPLAY_NAME);
form->avatar_url = GURL(s.ColumnString(COLUMN_AVATAR_URL));
form->federation_url = GURL(s.ColumnString(COLUMN_FEDERATION_URL));
- form->is_zero_click = (s.ColumnInt(COLUMN_IS_ZERO_CLICK) > 0);
+ form->skip_zero_click = (s.ColumnInt(COLUMN_SKIP_ZERO_CLICK) > 0);
return ENCRYPTION_RESULT_SUCCESS;
}
@@ -688,7 +716,8 @@ bool LoginDatabase::GetLogins(
"signon_realm, ssl_valid, preferred, date_created, blacklisted_by_user, "
"scheme, password_type, possible_usernames, times_used, form_data, "
"date_synced, display_name, avatar_url, "
- "federation_url, is_zero_click FROM logins WHERE signon_realm == ? ";
+ "federation_url, skip_zero_click "
+ "FROM logins WHERE signon_realm == ? ";
sql::Statement s;
const GURL signon_realm(form.signon_realm);
std::string registered_domain = GetRegistryControlledDomain(signon_realm);
@@ -785,7 +814,7 @@ bool LoginDatabase::GetLoginsCreatedBetween(
"signon_realm, ssl_valid, preferred, date_created, blacklisted_by_user, "
"scheme, password_type, possible_usernames, times_used, form_data, "
"date_synced, display_name, avatar_url, "
- "federation_url, is_zero_click FROM logins "
+ "federation_url, skip_zero_click FROM logins "
"WHERE date_created >= ? AND date_created < ?"
"ORDER BY origin_url"));
s.BindInt64(0, begin.ToInternalValue());
@@ -817,7 +846,7 @@ bool LoginDatabase::GetLoginsSyncedBetween(
"ssl_valid, preferred, date_created, blacklisted_by_user, "
"scheme, password_type, possible_usernames, times_used, form_data, "
"date_synced, display_name, avatar_url, "
- "federation_url, is_zero_click FROM logins "
+ "federation_url, skip_zero_click FROM logins "
"WHERE date_synced >= ? AND date_synced < ?"
"ORDER BY origin_url"));
s.BindInt64(0, begin.ToInternalValue());
@@ -861,7 +890,7 @@ bool LoginDatabase::GetAllLoginsWithBlacklistSetting(
"signon_realm, ssl_valid, preferred, date_created, blacklisted_by_user, "
"scheme, password_type, possible_usernames, times_used, form_data, "
"date_synced, display_name, avatar_url, "
- "federation_url, is_zero_click FROM logins "
+ "federation_url, skip_zero_click FROM logins "
"WHERE blacklisted_by_user == ? ORDER BY origin_url"));
s.BindInt(0, blacklisted ? 1 : 0);
« no previous file with comments | « components/autofill/core/common/password_form.cc ('k') | components/password_manager/core/browser/login_database_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698