Chromium Code Reviews| 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 aed24009203c7047b2f94d5c500efe68c4e3d4e5..0719a61e314c32a7e92ef182aeb87b2582ae69cc 100644 |
| --- a/components/password_manager/core/browser/login_database.cc |
| +++ b/components/password_manager/core/browser/login_database.cc |
| @@ -84,6 +84,19 @@ enum LoginTableColumns { |
| enum class HistogramSize { SMALL, LARGE }; |
| +enum DatabaseInitError { |
|
Ilya Sherman
2015/08/13 00:34:18
Please document that this is used to back an UMA h
vasilii
2015/08/13 09:04:33
Done.
|
| + OPEN_FILE_ERROR, |
| + START_TRANSACTION_ERROR, |
| + META_TABLE_INIT_ERROR, |
| + INCOMPATIBLE_VERSION, |
| + INIT_LOGINS_ERROR, |
| + INIT_STATS_ERROR, |
| + MIGRATION_ERROR, |
| + COMMIT_TRANSACTION_ERROR, |
| + |
| + DATABASE_INIT_ERROR_COUNT, |
| +}; |
| + |
| void BindAddStatement(const PasswordForm& form, |
| const std::string& encrypted_password, |
| sql::Statement* s) { |
| @@ -297,12 +310,17 @@ bool LoginDatabase::Init() { |
| db_.set_histogram_tag("Passwords"); |
| if (!db_.Open(db_path_)) { |
| + UMA_HISTOGRAM_ENUMERATION("PasswordManager.LoginDatabaseInit", |
| + OPEN_FILE_ERROR, DATABASE_INIT_ERROR_COUNT); |
|
Ilya Sherman
2015/08/13 00:34:18
Please create a wrapper function for emitting to t
vasilii
2015/08/13 09:04:33
Done.
|
| LOG(ERROR) << "Unable to open the password store database."; |
| return false; |
| } |
| sql::Transaction transaction(&db_); |
| if (!transaction.Begin()) { |
| + UMA_HISTOGRAM_ENUMERATION("PasswordManager.LoginDatabaseInit", |
| + START_TRANSACTION_ERROR, |
| + DATABASE_INIT_ERROR_COUNT); |
| LOG(ERROR) << "Unable to start a transaction."; |
| db_.Close(); |
| return false; |
| @@ -311,11 +329,15 @@ bool LoginDatabase::Init() { |
| // Check the database version. |
| if (!meta_table_.Init(&db_, kCurrentVersionNumber, |
| kCompatibleVersionNumber)) { |
| + UMA_HISTOGRAM_ENUMERATION("PasswordManager.LoginDatabaseInit", |
| + META_TABLE_INIT_ERROR, DATABASE_INIT_ERROR_COUNT); |
| LOG(ERROR) << "Unable to create the meta table."; |
| db_.Close(); |
| return false; |
| } |
| if (meta_table_.GetCompatibleVersionNumber() > kCurrentVersionNumber) { |
| + UMA_HISTOGRAM_ENUMERATION("PasswordManager.LoginDatabaseInit", |
| + INCOMPATIBLE_VERSION, DATABASE_INIT_ERROR_COUNT); |
| LOG(ERROR) << "Password store database is too new, kCurrentVersionNumber=" |
| << kCurrentVersionNumber << ", GetCompatibleVersionNumber=" |
| << meta_table_.GetCompatibleVersionNumber(); |
| @@ -325,12 +347,16 @@ bool LoginDatabase::Init() { |
| // Initialize the tables. |
| if (!InitLoginsTable()) { |
| + UMA_HISTOGRAM_ENUMERATION("PasswordManager.LoginDatabaseInit", |
| + INIT_LOGINS_ERROR, DATABASE_INIT_ERROR_COUNT); |
| LOG(ERROR) << "Unable to initialize the logins table."; |
| db_.Close(); |
| return false; |
| } |
| if (!stats_table_.Init(&db_)) { |
| + UMA_HISTOGRAM_ENUMERATION("PasswordManager.LoginDatabaseInit", |
| + INIT_STATS_ERROR, DATABASE_INIT_ERROR_COUNT); |
| LOG(ERROR) << "Unable to initialize the stats table."; |
| db_.Close(); |
| return false; |
| @@ -338,6 +364,10 @@ bool LoginDatabase::Init() { |
| // If the file on disk is an older database version, bring it up to date. |
| if (!MigrateOldVersionsAsNeeded()) { |
| + UMA_HISTOGRAM_ENUMERATION("PasswordManager.LoginDatabaseInit", |
| + MIGRATION_ERROR, DATABASE_INIT_ERROR_COUNT); |
| + UMA_HISTOGRAM_CUSTOM_COUNTS("PasswordManager.LoginDatabaseFailedVersion", |
| + meta_table_.GetVersionNumber(), 1, 30, 30); |
|
Ilya Sherman
2015/08/13 00:34:18
nit: Would a sparse histogram be appropriate here?
vasilii
2015/08/13 09:04:33
Done.
|
| LOG(ERROR) << "Unable to migrate database from " |
| << meta_table_.GetVersionNumber() << " to " |
| << kCurrentVersionNumber; |
| @@ -346,6 +376,9 @@ bool LoginDatabase::Init() { |
| } |
| if (!transaction.Commit()) { |
| + UMA_HISTOGRAM_ENUMERATION("PasswordManager.LoginDatabaseInit", |
| + COMMIT_TRANSACTION_ERROR, |
| + DATABASE_INIT_ERROR_COUNT); |
| LOG(ERROR) << "Unable to commit a transaction."; |
| db_.Close(); |
| return false; |