Index: components/password_manager/core/browser/password_store.h |
diff --git a/components/password_manager/core/browser/password_store.h b/components/password_manager/core/browser/password_store.h |
index 74ff469f51d9c978af08b50f22be4882832baa7a..c1194cfc2792a8e9e7f47d19ebc344f4e841a5d3 100644 |
--- a/components/password_manager/core/browser/password_store.h |
+++ b/components/password_manager/core/browser/password_store.h |
@@ -15,6 +15,7 @@ |
#include "base/time/time.h" |
#include "components/password_manager/core/browser/password_store_change.h" |
#include "components/password_manager/core/browser/password_store_sync.h" |
+#include "components/password_manager/core/browser/statistics_table.h" |
#include "sync/api/syncable_service.h" |
namespace autofill { |
@@ -128,6 +129,16 @@ class PasswordStore : protected PasswordStoreSync, |
virtual void ReportMetrics(const std::string& sync_username, |
bool custom_passphrase_sync_enabled); |
+ // Adds or replaces the statistics for the domain |stats.origin_domain|. |
+ void AddSiteStats(const InteractionsStats& stats); |
+ |
+ // Removes the statistics for |origin_domain|. |
+ void RemoveSiteStats(const GURL& origin_domain); |
+ |
+ // Retrieves the statistics for |origin_domain| and notifies |consumer| on |
+ // completion. The request will be cancelled if the consumer is destroyed. |
+ void GetSiteStats(const GURL& origin_domain, PasswordStoreConsumer* consumer); |
+ |
// Adds an observer to be notified when the password store data changes. |
void AddObserver(Observer* observer); |
@@ -162,6 +173,8 @@ class PasswordStore : protected PasswordStoreSync, |
void NotifyConsumerWithResults( |
ScopedVector<autofill::PasswordForm> results); |
+ void NotifyWithSiteStatistics(scoped_ptr<InteractionsStats> stats); |
+ |
void set_ignore_logins_cutoff(base::Time cutoff) { |
ignore_logins_cutoff_ = cutoff; |
} |
@@ -235,6 +248,13 @@ class PasswordStore : protected PasswordStoreSync, |
// Finds all blacklist PasswordForms, and notifies the consumer. |
virtual void GetBlacklistLoginsImpl(scoped_ptr<GetLoginsRequest> request) = 0; |
+ // Synchronous implementation for manipulating with statistics. |
+ virtual void AddSiteStatsImpl(const InteractionsStats& stats) = 0; |
+ virtual void RemoveSiteStatsImpl(const GURL& origin_domain) = 0; |
+ // Returns a raw pointer so that InteractionsStats can be forward declared. |
+ virtual scoped_ptr<InteractionsStats> GetSiteStatsImpl( |
+ const GURL& origin_domain) WARN_UNUSED_RESULT = 0; |
+ |
// Log UMA stats for number of bulk deletions. |
void LogStatsForBulkDeletion(int num_deletions); |
@@ -288,6 +308,10 @@ class PasswordStore : protected PasswordStoreSync, |
void RemoveLoginsSyncedBetweenInternal(base::Time delete_begin, |
base::Time delete_end); |
+ // Notifies |request| about the stats for |origin_domain|. |
+ void NotifySiteStats(const GURL& origin_domain, |
+ scoped_ptr<GetLoginsRequest> request); |
+ |
// Extended version of GetLoginsImpl that also returns credentials stored for |
// the specified affiliated Android applications. That is, it finds all |
// PasswordForms with a signon_realm that is either: |