| 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 53%
|
| rename from chrome/browser/ui/app_list/profile_loader.h
|
| rename to chrome/browser/profiles/profile_loader.h
|
| index f2b12fdeda8675cc6270533c1483f99c50db36d9..b9b9038606e4a3049160eb67a9a8014763784d9e 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,34 @@ 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
|
| +// called, and only if the load was successful.
|
| +//
|
| +// This is useful for loading profiles in response to user interaction where
|
| +// only the latest requested profile is required.
|
| 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 +53,6 @@ class ProfileLoader {
|
| void IncrementPendingProfileLoads();
|
| void DecrementPendingProfileLoads();
|
|
|
| - private:
|
| ProfileManager* profile_manager_;
|
| int profile_load_sequence_id_;
|
| int pending_profile_loads_;
|
| @@ -45,4 +62,4 @@ class ProfileLoader {
|
| DISALLOW_COPY_AND_ASSIGN(ProfileLoader);
|
| };
|
|
|
| -#endif // CHROME_BROWSER_UI_APP_LIST_PROFILE_LOADER_H_
|
| +#endif // CHROME_BROWSER_PROFILES_PROFILE_LOADER_H_
|
|
|