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

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

Issue 1285223002: Add metrics for tracking LoginDatabase::Init failure. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 4 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
« no previous file with comments | « no previous file | tools/metrics/histograms/histograms.xml » ('j') | tools/metrics/histograms/histograms.xml » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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;
« no previous file with comments | « no previous file | tools/metrics/histograms/histograms.xml » ('j') | tools/metrics/histograms/histograms.xml » ('J')

Powered by Google App Engine
This is Rietveld 408576698