diff options
author | dpranke@chromium.org <dpranke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-07 23:45:09 +0000 |
---|---|---|
committer | dpranke@chromium.org <dpranke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-07 23:45:09 +0000 |
commit | 3fbd619881f7be355ee112e86a97ab4d1abb7a87 (patch) | |
tree | 59b190123e24f6ca9db7113386b8afcd2d87b553 /chrome/browser/password_manager | |
parent | 94b2c5e86633303b7feb5492f66ef512a66492ac (diff) | |
download | chromium_src-3fbd619881f7be355ee112e86a97ab4d1abb7a87.zip chromium_src-3fbd619881f7be355ee112e86a97ab4d1abb7a87.tar.gz chromium_src-3fbd619881f7be355ee112e86a97ab4d1abb7a87.tar.bz2 |
Modify the password manager code to report at startup whether it is enabled
(by generating one of two UserActions).
BUG=none
R=tim@chromium.org, jar@chromium.org
TEST=none
Review URL: http://codereview.chromium.org/2638001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49123 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/password_manager')
-rw-r--r-- | chrome/browser/password_manager/password_manager.cc | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/chrome/browser/password_manager/password_manager.cc b/chrome/browser/password_manager/password_manager.cc index 43e18b0..6aabce5 100644 --- a/chrome/browser/password_manager/password_manager.cc +++ b/chrome/browser/password_manager/password_manager.cc @@ -8,8 +8,10 @@ #include "app/l10n_util.h" #include "app/resource_bundle.h" +#include "base/platform_thread.h" #include "base/stl_util-inl.h" #include "base/utf_string_conversions.h" +#include "chrome/browser/metrics/user_metrics.h" #include "chrome/browser/password_manager/password_form_manager.h" #include "chrome/browser/pref_service.h" #include "chrome/browser/profile.h" @@ -26,6 +28,27 @@ void PasswordManager::RegisterUserPrefs(PrefService* prefs) { prefs->RegisterBooleanPref(prefs::kPasswordManagerEnabled, true); } +// This routine is called when PasswordManagers are constructed. +// +// Currently we report metrics only once at startup. We require +// that this is only ever called from a single thread in order to +// avoid needing to lock (a static boolean flag is then sufficient to +// guarantee running only once). +static void ReportMetrics(bool password_manager_enabled) { + static PlatformThreadId initial_thread_id = PlatformThread::CurrentId(); + DCHECK(initial_thread_id == PlatformThread::CurrentId()); + + static bool ran_once = false; + if (ran_once) + return; + ran_once = true; + + if (password_manager_enabled) + UserMetrics::RecordAction(UserMetricsAction("PasswordManager_Enabled")); + else + UserMetrics::RecordAction(UserMetricsAction("PasswordManager_Disabled")); +} + PasswordManager::PasswordManager(Delegate* delegate) : login_managers_deleter_(&pending_login_managers_), delegate_(delegate), @@ -33,6 +56,8 @@ PasswordManager::PasswordManager(Delegate* delegate) DCHECK(delegate_); password_manager_enabled_.Init(prefs::kPasswordManagerEnabled, delegate_->GetProfileForPasswordManager()->GetPrefs(), NULL); + + ReportMetrics(*password_manager_enabled_); } PasswordManager::~PasswordManager() { |