Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7369)

Unified Diff: chrome/browser/profiles/profile_loader.h

Issue 16766003: Move ProfileLoader to chrome/browser/profiles. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: gyp-def out profile_loader* on android Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chrome/browser/profiles/profile_loader.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_
« no previous file with comments | « no previous file | chrome/browser/profiles/profile_loader.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698