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 e1cf8a2f928901493ad163d1cf42c37bad08f5dd..9eb7e3f718612b1dd7bf9e2040fe055a9b245fa3 100644 |
| --- a/components/password_manager/core/browser/login_database.cc |
| +++ b/components/password_manager/core/browser/login_database.cc |
| @@ -311,8 +311,9 @@ void LoginDatabase::ReportMetrics(const std::string& sync_username, |
| bool custom_passphrase_sync_enabled) { |
| sql::Statement s(db_.GetCachedStatement( |
| SQL_FROM_HERE, |
| - "SELECT signon_realm, blacklisted_by_user, COUNT(username_value) " |
| - "FROM logins GROUP BY signon_realm, blacklisted_by_user")); |
| + "SELECT signon_realm, password_type, blacklisted_by_user," |
| + "COUNT(username_value) FROM logins GROUP BY " |
| + "signon_realm, password_type, blacklisted_by_user")); |
| if (!s.is_valid()) |
| return; |
| @@ -323,22 +324,37 @@ void LoginDatabase::ReportMetrics(const std::string& sync_username, |
| } |
| int total_accounts = 0; |
|
Ilya Sherman
2014/11/13 01:54:53
Perhaps this should be renamed to something like "
Garrett Casto
2014/11/18 22:30:24
Done.
|
| + int total_generated_accounts = 0; |
| int blacklisted_sites = 0; |
| while (s.Step()) { |
| - int blacklisted = s.ColumnInt(1); |
| - int accounts_per_site = s.ColumnInt(2); |
| + PasswordForm::Type password_type = |
| + static_cast<PasswordForm::Type>(s.ColumnInt(1)); |
| + int blacklisted = s.ColumnInt(2); |
| + int accounts_per_site = s.ColumnInt(3); |
| if (blacklisted) { |
| ++blacklisted_sites; |
| + } else if (password_type == PasswordForm::TYPE_GENERATED) { |
| + total_generated_accounts += accounts_per_site; |
| + LogAccountStat( |
| + base::StringPrintf("PasswordManager.AccountsPerSite.AutoGenerated.%s", |
| + custom_passphrase.c_str()), |
| + accounts_per_site); |
| } else { |
| total_accounts += accounts_per_site; |
| - LogAccountStat(base::StringPrintf("PasswordManager.AccountsPerSite.%s", |
| - custom_passphrase.c_str()), |
| - accounts_per_site); |
| + LogAccountStat( |
| + base::StringPrintf("PasswordManager.AccountsPerSite.UserCreated.%s", |
| + custom_passphrase.c_str()), |
| + accounts_per_site); |
| } |
| } |
| - LogAccountStat(base::StringPrintf("PasswordManager.TotalAccounts.%s", |
| - custom_passphrase.c_str()), |
| - total_accounts); |
| + LogAccountStat( |
| + base::StringPrintf("PasswordManager.TotalAccounts.UserCreated.%s", |
| + custom_passphrase.c_str()), |
| + total_accounts); |
| + LogAccountStat( |
| + base::StringPrintf("PasswordManager.TotalAccounts.AutoGenerated.%s", |
| + custom_passphrase.c_str()), |
| + total_generated_accounts); |
| LogAccountStat(base::StringPrintf("PasswordManager.BlacklistedSites.%s", |
| custom_passphrase.c_str()), |
| blacklisted_sites); |
| @@ -355,13 +371,13 @@ void LoginDatabase::ReportMetrics(const std::string& sync_username, |
| usage_statement.ColumnInt(0)); |
| if (type == PasswordForm::TYPE_GENERATED) { |
| - LogTimesUsedStat( |
| - base::StringPrintf("PasswordManager.TimesGeneratedPasswordUsed.%s", |
| - custom_passphrase.c_str()), |
| - usage_statement.ColumnInt(1)); |
| + LogTimesUsedStat(base::StringPrintf( |
| + "PasswordManager.TimesPasswordUsed.AutoGenerated.%s", |
| + custom_passphrase.c_str()), |
| + usage_statement.ColumnInt(1)); |
| } else { |
| LogTimesUsedStat( |
| - base::StringPrintf("PasswordManager.TimesPasswordUsed.%s", |
| + base::StringPrintf("PasswordManager.TimesPasswordUsed.UserCreated.%s", |
| custom_passphrase.c_str()), |
| usage_statement.ColumnInt(1)); |
| } |