summaryrefslogtreecommitdiffstats
path: root/chrome/browser/user_data_manager.h
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/user_data_manager.h')
-rw-r--r--chrome/browser/user_data_manager.h159
1 files changed, 0 insertions, 159 deletions
diff --git a/chrome/browser/user_data_manager.h b/chrome/browser/user_data_manager.h
deleted file mode 100644
index ddcc43b..0000000
--- a/chrome/browser/user_data_manager.h
+++ /dev/null
@@ -1,159 +0,0 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// This class encapsulates the implementation of multiple profiles by using
-// the user-data-dir functionality.
-
-#ifndef CHROME_BROWSER_USER_DATA_MANAGER_H_
-#define CHROME_BROWSER_USER_DATA_MANAGER_H_
-
-#include <string>
-#include <vector>
-
-#include "base/basictypes.h"
-#include "base/file_path.h"
-#include "base/ref_counted.h"
-
-class MessageLoop;
-
-// Provides an abstraction of profiles on top of the user data directory
-// feature. Given the root of the user data directories, it provides
-// functionality to enumerate the existing profiles and start Chrome in a
-// given profile.
-// Also holds a shared instance of its own for convenience though it's not a
-// singleton class. The shared instance should be created by the main thread,
-// then other threads can access and use the shared instance.
-class UserDataManager {
- public:
- // Creates the shared instance of this class. This method is not thread-safe,
- // so the shared instance should be created on the main thread.
- static UserDataManager* Create();
-
- // Returns the shared instance. CreateInstance must be called before callling
- // this method.
- static UserDataManager* Get();
-
- // Creates a new instance with the given root folder for storing user data
- // folders.
- explicit UserDataManager(const FilePath& user_data_root);
-
- ~UserDataManager();
-
- // Returns the name of the current profile.
- std::wstring current_profile_name() const { return current_profile_name_; }
-
- // Returns whether the current profile is the default profile or not.
- bool is_current_profile_default() const {
- return is_current_profile_default_;
- }
-
- // Populates the given vector with a list of all the profiles.
- // This function should be called on the file thread.
- void GetProfiles(std::vector<std::wstring>* profiles) const;
-
- // Creates a shortcut for the given profile name in |folder|.
- // Returns false if the shortcut creation fails; true otherwise.
- bool CreateShortcutForProfileInFolder(const FilePath& folder,
- const std::wstring& profile_name) const;
-
- // Creates a desktop shortcut for the given profile name.
- // Returns false if the shortcut creation fails; true otherwise.
- bool CreateDesktopShortcutForProfile(const std::wstring& profile_name) const;
-
- // Starts a new Chrome instance in the given profile name.
- void LaunchChromeForProfile(const std::wstring& profile_name) const;
-
- // Starts a new Chrome instance in the profile with the given index. The
- // index is zero based, and refers to the position of the profile in the
- // list of profile names in alphabetical order.
- // This method launches Chrome asynchornously since it enumerates profiles
- // on a separate thread.
- void LaunchChromeForProfile(int index) const;
-
- // Updates global user data dir profile list stored in g_browser_process.
- void RefreshUserDataDirProfiles() const;
-
- private:
- // Gets the name of the profile from the name of the folder.
- // Returns false if the folder does not correspond to a profile folder, true
- // otherwise.
- static bool GetProfileNameFromFolderName(const std::wstring& folder_name,
- std::wstring* profile_name);
-
- // Returns the name of the folder from the name of the profile.
- static std::wstring GetFolderNameFromProfileName(
- const std::wstring& profile_name);
-
- // Returns the path of the user data folder for the given profile.
- std::wstring GetUserDataFolderForProfile(
- const std::wstring& profile_name) const;
-
- // Shared instance.
- static UserDataManager* instance_;
-
- // Root folder.
- FilePath user_data_root_;
-
- // Current user data folder.
- std::wstring current_folder_name_;
-
- // Whether the current profile is the default profile.
- bool is_current_profile_default_;
-
- // Current profile name.
- std::wstring current_profile_name_;
-
- DISALLOW_COPY_AND_ASSIGN(UserDataManager);
-};
-
-// Helper class to enumerate the profiles asynchronously on the file thread.
-// It calls the given delegate instance when the enumeration is complete.
-// USAGE: Create an instance of the helper with a delegate instance, call the
-// asynchronous method GetProfiles. The delegate instance will be called when
-// enumerating profiles is done.
-// IMPORTANT: It's the responsibility of the caller to call OnDelegateDeleted
-// method when the delegate instance is deleted. Typically OnDelegateDeleted
-// should be called in the destructor of the delegate. This is the way to
-// tell the helper to not call the delegate when enumerating profiles is done.
-class GetProfilesHelper
- : public base::RefCountedThreadSafe<GetProfilesHelper> {
- public:
- // Interface the delegate classes should implement.
- class Delegate {
- public:
- virtual void OnGetProfilesDone(
- const std::vector<std::wstring>& profiles) = 0;
- virtual ~Delegate() { }
- };
-
- explicit GetProfilesHelper(Delegate* delegate);
-
- // Asynchronous call to get the list of profiles. Calls the delegate when done
- // on either the given target loop or the message loop on which this function
- // is called if target loop is NULL.
- void GetProfiles(MessageLoop* target_loop);
-
- // Records that the delegate is deleted.
- void OnDelegateDeleted();
-
- private:
- friend class base::RefCountedThreadSafe<GetProfilesHelper>;
-
- ~GetProfilesHelper() {}
-
- // Helper to get the profiles from user data manager.
- void GetProfilesFromManager();
-
- // Helper to invoke the delegate.
- void InvokeDelegate(std::vector<std::wstring>* profiles);
-
- // Delegate to call.
- Delegate* delegate_;
- // Message loop to post tasks on completion of loading profiles.
- MessageLoop* message_loop_;
-
- DISALLOW_COPY_AND_ASSIGN(GetProfilesHelper);
-};
-
-#endif // CHROME_BROWSER_USER_DATA_MANAGER_H_