diff options
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&)); |