Index: chrome/browser/ui/app_list/app_list_service_impl.h |
diff --git a/chrome/browser/ui/app_list/app_list_service_impl.h b/chrome/browser/ui/app_list/app_list_service_impl.h |
index 878b5ea181323f457a5f239f136e2d145e61c790..cfcff005c6ff56ce07283e773145b3496fcc8b79 100644 |
--- a/chrome/browser/ui/app_list/app_list_service_impl.h |
+++ b/chrome/browser/ui/app_list/app_list_service_impl.h |
@@ -8,13 +8,17 @@ |
#include <string> |
#include "base/basictypes.h" |
+#include "base/command_line.h" |
#include "base/compiler_specific.h" |
#include "base/memory/scoped_ptr.h" |
#include "base/memory/weak_ptr.h" |
#include "chrome/browser/profiles/profile.h" |
#include "chrome/browser/profiles/profile_info_cache_observer.h" |
-#include "chrome/browser/profiles/profile_loader.h" |
#include "chrome/browser/ui/app_list/app_list_service.h" |
+#include "chrome/browser/ui/app_list/keep_alive_service.h" |
+#include "chrome/browser/ui/app_list/profile_loader.h" |
+ |
+class ProfileStore; |
namespace base { |
class FilePath; |
@@ -26,37 +30,44 @@ class AppListServiceImpl : public AppListService, |
public: |
static void RecordAppListLaunch(); |
static void RecordAppListAppLaunch(); |
+ virtual ~AppListServiceImpl(); |
+ |
+ // Constructor used for testing. |
+ AppListServiceImpl(const CommandLine& command_line, |
+ PrefService* local_state, |
+ scoped_ptr<ProfileStore> profile_store, |
+ scoped_ptr<KeepAliveService> keep_alive_service); |
+ |
+ // AppListService overrides: |
+ virtual void SetAppListNextPaintCallback( |
+ const base::Closure& callback) OVERRIDE; |
+ virtual void HandleFirstRun() OVERRIDE; |
+ virtual void Init(Profile* initial_profile) OVERRIDE; |
+ virtual base::FilePath GetProfilePath( |
+ const base::FilePath& user_data_dir) OVERRIDE; |
+ virtual void SetProfilePath(const base::FilePath& profile_path) OVERRIDE; |
+ virtual void Show() OVERRIDE; |
+ virtual void EnableAppList(Profile* initial_profile) OVERRIDE; |
protected: |
AppListServiceImpl(); |
- virtual ~AppListServiceImpl(); |
Profile* profile() const { return profile_; } |
void SetProfile(Profile* new_profile); |
void InvalidatePendingProfileLoads(); |
- ProfileLoader& profile_loader() { return profile_loader_; } |
- const ProfileLoader& profile_loader() const { return profile_loader_; } |
+ ProfileLoader& profile_loader() { return *profile_loader_; } |
+ const ProfileLoader& profile_loader() const { return *profile_loader_; } |
// Process command line flags shared between desktop implementations of the |
// app list. Currently this allows for enabling or disabling the app list. |
void HandleCommandLineFlags(Profile* initial_profile); |
+ // Records UMA stats that try to approximate usage after a delay. |
+ void SendUsageStats(); |
+ |
// Create a platform-specific shortcut for the app list. |
virtual void CreateShortcut(); |
- // AppListService overrides: |
- virtual void SetAppListNextPaintCallback( |
- const base::Closure& callback) OVERRIDE; |
- virtual void HandleFirstRun() OVERRIDE; |
- virtual void Init(Profile* initial_profile) OVERRIDE; |
- |
- // Returns the app list path configured in BrowserProcess::local_state(). |
- virtual base::FilePath GetProfilePath( |
- const base::FilePath& user_data_dir) OVERRIDE; |
- virtual void SetProfilePath(const base::FilePath& profile_path) OVERRIDE; |
- virtual void Show() OVERRIDE; |
- virtual void EnableAppList(Profile* initial_profile) OVERRIDE; |
- |
private: |
static void SendAppListStats(); |
@@ -76,16 +87,13 @@ class AppListServiceImpl : public AppListService, |
// The profile the AppList is currently displaying. |
Profile* profile_; |
- |
- // Incremented to indicate that pending profile loads are no longer valid. |
- int profile_load_sequence_id_; |
- |
- // How many profile loads are pending. |
- int pending_profile_loads_; |
+ scoped_ptr<ProfileStore> profile_store_; |
base::WeakPtrFactory<AppListServiceImpl> weak_factory_; |
- ProfileLoader profile_loader_; |
+ CommandLine command_line_; |
+ PrefService* local_state_; |
+ scoped_ptr<ProfileLoader> profile_loader_; |
DISALLOW_COPY_AND_ASSIGN(AppListServiceImpl); |
}; |