summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/password_manager/password_manager_unittest.cc2
-rw-r--r--chrome/browser/password_manager/password_store.cc5
-rw-r--r--chrome/browser/password_manager/password_store.h5
-rw-r--r--chrome/browser/password_manager/password_store_default.cc4
-rw-r--r--chrome/browser/password_manager/password_store_default.h1
-rw-r--r--chrome/browser/password_manager/password_store_mac.cc3
-rw-r--r--chrome/browser/password_manager/password_store_mac.h1
-rw-r--r--chrome/browser/sync/profile_sync_service_password_unittest.cc2
8 files changed, 23 insertions, 0 deletions
diff --git a/chrome/browser/password_manager/password_manager_unittest.cc b/chrome/browser/password_manager/password_manager_unittest.cc
index 7d21c47..e8430f7 100644
--- a/chrome/browser/password_manager/password_manager_unittest.cc
+++ b/chrome/browser/password_manager/password_manager_unittest.cc
@@ -45,6 +45,8 @@ class MockPasswordStore : public PasswordStore {
MOCK_METHOD2(GetLogins, int(const PasswordForm&, PasswordStoreConsumer*));
MOCK_METHOD1(AddLogin, void(const PasswordForm&));
MOCK_METHOD1(UpdateLogin, void(const PasswordForm&));
+ MOCK_METHOD0(ReportMetrics, void());
+ MOCK_METHOD0(ReportMetricsImpl, void());
MOCK_METHOD1(AddLoginImpl, void(const PasswordForm&));
MOCK_METHOD1(UpdateLoginImpl, void(const PasswordForm&));
MOCK_METHOD1(RemoveLoginImpl, void(const PasswordForm&));
diff --git a/chrome/browser/password_manager/password_store.cc b/chrome/browser/password_manager/password_store.cc
index 9277b68..4615e42 100644
--- a/chrome/browser/password_manager/password_store.cc
+++ b/chrome/browser/password_manager/password_store.cc
@@ -16,6 +16,7 @@ PasswordStore::PasswordStore() : handle_(0) {
}
bool PasswordStore::Init() {
+ ReportMetrics();
return true;
}
@@ -23,6 +24,10 @@ void PasswordStore::ScheduleTask(Task* task) {
ChromeThread::PostTask(ChromeThread::DB, FROM_HERE, task);
}
+void PasswordStore::ReportMetrics() {
+ ScheduleTask(NewRunnableMethod(this, &PasswordStore::ReportMetricsImpl));
+}
+
void PasswordStore::AddLogin(const PasswordForm& form) {
ScheduleTask(NewRunnableMethod(this, &PasswordStore::AddLoginImpl, form));
}
diff --git a/chrome/browser/password_manager/password_store.h b/chrome/browser/password_manager/password_store.h
index 14203fd..90ce7f3 100644
--- a/chrome/browser/password_manager/password_store.h
+++ b/chrome/browser/password_manager/password_store.h
@@ -74,6 +74,9 @@ class PasswordStore : public base::RefCountedThreadSafe<PasswordStore> {
// Cancels a previous Get*Logins query (async)
void CancelLoginsQuery(int handle);
+ // Reports usage metrics for the database.
+ virtual void ReportMetrics();
+
protected:
friend class base::RefCountedThreadSafe<PasswordStore>;
friend class browser_sync::PasswordDataTypeController;
@@ -104,6 +107,8 @@ class PasswordStore : public base::RefCountedThreadSafe<PasswordStore> {
void ScheduleTask(Task* task);
// These will be run in PasswordStore's own thread.
+ // Synchronous implementation that reports usage metrics.
+ virtual void ReportMetricsImpl() = 0;
// Synchronous implementation to add the given login.
virtual void AddLoginImpl(const webkit_glue::PasswordForm& form) = 0;
// Synchronous implementation to update the given login.
diff --git a/chrome/browser/password_manager/password_store_default.cc b/chrome/browser/password_manager/password_store_default.cc
index dc58f56..465f889 100644
--- a/chrome/browser/password_manager/password_store_default.cc
+++ b/chrome/browser/password_manager/password_store_default.cc
@@ -33,6 +33,10 @@ PasswordStoreDefault::PasswordStoreDefault(LoginDatabase* login_db,
PasswordStoreDefault::~PasswordStoreDefault() {
}
+void PasswordStoreDefault::ReportMetricsImpl() {
+ DCHECK(ChromeThread::CurrentlyOn(ChromeThread::DB));
+}
+
void PasswordStoreDefault::AddLoginImpl(const PasswordForm& form) {
if (login_db_->AddLogin(form)) {
PasswordStoreChangeList changes;
diff --git a/chrome/browser/password_manager/password_store_default.h b/chrome/browser/password_manager/password_store_default.h
index 43fa1c1..ac5dbe5 100644
--- a/chrome/browser/password_manager/password_store_default.h
+++ b/chrome/browser/password_manager/password_store_default.h
@@ -29,6 +29,7 @@ class PasswordStoreDefault : public PasswordStore,
virtual ~PasswordStoreDefault();
// Implements PasswordStore interface.
+ void ReportMetricsImpl();
void AddLoginImpl(const webkit_glue::PasswordForm& form);
void UpdateLoginImpl(const webkit_glue::PasswordForm& form);
void RemoveLoginImpl(const webkit_glue::PasswordForm& form);
diff --git a/chrome/browser/password_manager/password_store_mac.cc b/chrome/browser/password_manager/password_store_mac.cc
index d31e89b..6571082 100644
--- a/chrome/browser/password_manager/password_store_mac.cc
+++ b/chrome/browser/password_manager/password_store_mac.cc
@@ -744,6 +744,9 @@ void PasswordStoreMac::ScheduleTask(Task* task) {
}
}
+void PasswordStoreMac::ReportMetricsImpl() {
+}
+
void PasswordStoreMac::AddLoginImpl(const PasswordForm& form) {
if (AddToKeychainIfNecessary(form)) {
if (login_metadata_db_->AddLogin(form)) {
diff --git a/chrome/browser/password_manager/password_store_mac.h b/chrome/browser/password_manager/password_store_mac.h
index 381cb81..fe7e2b9 100644
--- a/chrome/browser/password_manager/password_store_mac.h
+++ b/chrome/browser/password_manager/password_store_mac.h
@@ -36,6 +36,7 @@ class PasswordStoreMac : public PasswordStore {
virtual void ScheduleTask(Task* task);
private:
+ void ReportMetricsImpl();
void AddLoginImpl(const webkit_glue::PasswordForm& form);
void UpdateLoginImpl(const webkit_glue::PasswordForm& form);
void RemoveLoginImpl(const webkit_glue::PasswordForm& form);
diff --git a/chrome/browser/sync/profile_sync_service_password_unittest.cc b/chrome/browser/sync/profile_sync_service_password_unittest.cc
index 89766ff..b54bfb2 100644
--- a/chrome/browser/sync/profile_sync_service_password_unittest.cc
+++ b/chrome/browser/sync/profile_sync_service_password_unittest.cc
@@ -84,6 +84,8 @@ class MockPasswordStore : public PasswordStore {
MOCK_METHOD2(GetLogins, int(const PasswordForm&, PasswordStoreConsumer*));
MOCK_METHOD1(AddLogin, void(const PasswordForm&));
MOCK_METHOD1(UpdateLogin, void(const PasswordForm&));
+ MOCK_METHOD0(ReportMetrics, void());
+ MOCK_METHOD0(ReportMetricsImpl, void());
MOCK_METHOD1(AddLoginImpl, void(const PasswordForm&));
MOCK_METHOD1(UpdateLoginImpl, void(const PasswordForm&));
MOCK_METHOD1(RemoveLoginImpl, void(const PasswordForm&));