Chromium Code Reviews| Index: chrome/browser/profiles/profile_statistics.h |
| diff --git a/chrome/browser/profiles/profile_statistics.h b/chrome/browser/profiles/profile_statistics.h |
| index c24393a5105f1a84ba84e057ed4e9bf6bfe28843..5cf884bce29d7cacad1c2f6e1fbf29257c5ad75c 100644 |
| --- a/chrome/browser/profiles/profile_statistics.h |
| +++ b/chrome/browser/profiles/profile_statistics.h |
| @@ -5,61 +5,50 @@ |
| #ifndef CHROME_BROWSER_PROFILES_PROFILE_STATISTICS_H_ |
| #define CHROME_BROWSER_PROFILES_PROFILE_STATISTICS_H_ |
| +#include <map> |
| #include <string> |
| #include <utility> |
| -#include <vector> |
| -#include "base/files/file_path.h" |
| -#include "base/task/cancelable_task_tracker.h" |
| -#include "chrome/browser/profiles/profile.h" |
| -namespace profiles { |
| - |
| -// Constants for the categories in ProfileCategoryStats |
| -extern const char kProfileStatisticsBrowsingHistory[]; |
| -extern const char kProfileStatisticsPasswords[]; |
| -extern const char kProfileStatisticsBookmarks[]; |
| -extern const char kProfileStatisticsSettings[]; |
| - |
| -// Definition of a single return value of |ProfileStatisticsCallback|. If |
| -// |success| is false, the statistics failed to load and |count| is undefined. |
| -// The data look like these: {"BrowsingHistory", 912, true}, |
| -// {"Passwords", 71, true}, {"Bookmarks", 120, true}, {"Settings", 200, true} |
| -struct ProfileCategoryStat { |
| - std::string category; |
| - int count; |
| - bool success; |
| +#include "chrome/browser/profiles/profile_statistics_types.h" |
| + |
| +namespace base { |
| +class FilePath; |
| +} // namespace base |
| +class Profile; |
| +class ProfileStatisticsAggregator; |
| + |
| +class ProfileStatistics { |
| + public: |
| + // Profile Statistics -------------------------------------------------------- |
| + |
| + // This function collects statistical information about |profile|, also |
| + // returns the information via |callback| if |callback| is not null. The |
| + // statistical information is also copied to ProfileInfoCache. Currently |
| + // bookmarks, history, logins and preferences are counted. The callback |
| + // function will probably be called more than once, so binding parameters with |
| + // bind::Passed() is prohibited. Most of the async tasks involved in this |
| + // function can be cancelled if |tracker| is not null. |
| + static void GatherProfileStatistics(Profile* profile, |
| + const profiles::ProfileStatisticsCallback& callback); |
| + |
| + // ProfileInfoCache ---------------------------------------------------------- |
| + |
| + // Gets statistical information from ProfileInfoCache. |
| + static profiles::ProfileCategoryStats GetProfileStatisticsFromCache( |
| + const base::FilePath& profile_path); |
| + |
| + // Sets an individual statistic to ProfileInfoCache. |
| + static void SetProfileStatisticsInCache(const base::FilePath& profile_path, |
| + const std::string& category, int count); |
| + |
| + static bool HasAggregator(void* profile); |
| + static ProfileStatisticsAggregator* const GetAggregator(void* profile); |
| + static void RegisterAggregator(void* profile, |
| + ProfileStatisticsAggregator* const aggregator); |
| + static void DeregisterAggregator(void* profile); |
| + |
| + private: |
| + static std::map<void*, ProfileStatisticsAggregator*> aggregators_; |
|
lwchkg
2016/01/25 21:35:53
Having a static member here is not good. Which of
Mike Lerman
2016/02/01 16:42:01
I think this could be a ProfileKeyedService.
|
| }; |
| -// Definition of the return value of |ProfileStatisticsCallback|. |
| -using ProfileCategoryStats = std::vector<ProfileCategoryStat>; |
| - |
| -// Definition of the callback function. Note that a copy of |
| -// |ProfileCategoryStats| is made each time the callback is called. |
| -using ProfileStatisticsCallback = base::Callback<void(ProfileCategoryStats)>; |
| - |
| -// Profile Statistics ---------------------------------------------------------- |
| - |
| -// This function collects statistical information about |profile|, also returns |
| -// the information via |callback| if |callback| is not null. The statistical |
| -// information is also copied to ProfileInfoCache. Currently bookmarks, history, |
| -// logins and preferences are counted. The callback function will probably be |
| -// called more than once, so binding parameters with bind::Passed() is |
| -// prohibited. Most of the async tasks involved in this function can be |
| -// cancelled if |tracker| is not null. |
| -void GatherProfileStatistics(Profile* profile, |
| - const ProfileStatisticsCallback& callback, |
| - base::CancelableTaskTracker* tracker); |
| - |
| -// ProfileInfoCache ------------------------------------------------------------ |
| - |
| -// Gets statistical information from ProfileInfoCache. |
| -ProfileCategoryStats GetProfileStatisticsFromCache( |
| - const base::FilePath& profile_path); |
| - |
| -// Sets an individual statistic to ProfileInfoCache. |
| -void SetProfileStatisticsInCache(const base::FilePath& profile_path, |
| - const std::string& category, int count); |
| - |
| -} // namespace profiles |
| - |
| #endif // CHROME_BROWSER_PROFILES_PROFILE_STATISTICS_H_ |