summaryrefslogtreecommitdiffstats
path: root/chrome/browser/password_manager
diff options
context:
space:
mode:
authordpranke@chromium.org <dpranke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-07 23:45:09 +0000
committerdpranke@chromium.org <dpranke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-07 23:45:09 +0000
commit3fbd619881f7be355ee112e86a97ab4d1abb7a87 (patch)
tree59b190123e24f6ca9db7113386b8afcd2d87b553 /chrome/browser/password_manager
parent94b2c5e86633303b7feb5492f66ef512a66492ac (diff)
downloadchromium_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.cc25
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() {