Chromium Code Reviews| Index: chrome/browser/profiles/profile_loader.h |
| diff --git a/chrome/browser/ui/app_list/profile_loader.h b/chrome/browser/profiles/profile_loader.h |
| similarity index 55% |
| rename from chrome/browser/ui/app_list/profile_loader.h |
| rename to chrome/browser/profiles/profile_loader.h |
| index f2b12fdeda8675cc6270533c1483f99c50db36d9..cd973d424086cb8c722fafc7b462d4d8ceea7c10 100644 |
| --- a/chrome/browser/ui/app_list/profile_loader.h |
| +++ b/chrome/browser/profiles/profile_loader.h |
| @@ -2,12 +2,13 @@ |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| -#ifndef CHROME_BROWSER_UI_APP_LIST_PROFILE_LOADER_H_ |
| -#define CHROME_BROWSER_UI_APP_LIST_PROFILE_LOADER_H_ |
| +#ifndef CHROME_BROWSER_PROFILES_PROFILE_LOADER_H_ |
| +#define CHROME_BROWSER_PROFILES_PROFILE_LOADER_H_ |
| #include "base/callback.h" |
| #include "base/memory/weak_ptr.h" |
| #include "chrome/browser/profiles/profile.h" |
| +#include "chrome/browser/profiles/profile_manager.h" |
| namespace base { |
| class FilePath; |
| @@ -15,17 +16,32 @@ class FilePath; |
| class ProfileManager; |
| +// This class loads profiles asynchronously and calls the provided callback once |
| +// the profile is ready. Only the callback for the most recent load request is |
|
sail
2013/06/14 17:05:46
Maybe mention that the callback is not called if l
jackhou1
2013/06/17 04:40:15
Done.
|
| +// called. I.e. calling LoadProfileInvalidatingOtherLoads assumes you no longer |
| +// care about previous load requests. |
| class ProfileLoader { |
| public: |
| explicit ProfileLoader(ProfileManager* profile_manager); |
| ~ProfileLoader(); |
| - bool AnyProfilesLoading() const; |
| + bool IsAnyProfileLoading() const; |
| void InvalidatePendingProfileLoads(); |
| void LoadProfileInvalidatingOtherLoads( |
| const base::FilePath& profile_file_path, |
| base::Callback<void(Profile*)> callback); |
| + protected: |
| + // These just call through to the ProfileManager. |
| + // Virtual so they can be mocked out in tests. |
| + virtual Profile* GetProfileByPath(const base::FilePath& path); |
| + virtual void CreateProfileAsync( |
| + const base::FilePath& profile_path, |
| + const ProfileManager::CreateCallback& callback, |
| + const string16& name, |
| + const string16& icon_url, |
| + bool is_managed); |
| + |
| private: |
| void OnProfileLoaded(int profile_load_sequence_id, |
| base::Callback<void(Profile*)> callback, |
| @@ -35,7 +51,6 @@ class ProfileLoader { |
| void IncrementPendingProfileLoads(); |
| void DecrementPendingProfileLoads(); |
| - private: |
| ProfileManager* profile_manager_; |
| int profile_load_sequence_id_; |
| int pending_profile_loads_; |
| @@ -45,4 +60,4 @@ class ProfileLoader { |
| DISALLOW_COPY_AND_ASSIGN(ProfileLoader); |
| }; |
| -#endif // CHROME_BROWSER_UI_APP_LIST_PROFILE_LOADER_H_ |
| +#endif // CHROME_BROWSER_PROFILES_PROFILE_LOADER_H_ |