diff options
author | erg@chromium.org <erg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-10 19:59:06 +0000 |
---|---|---|
committer | erg@chromium.org <erg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-10 19:59:06 +0000 |
commit | 6fe1a1310d47287d88e920c5cc54c3c2be3431d5 (patch) | |
tree | 17c884e3a9febf2ff4eb80e2c581dbd6d3435290 /chrome/browser/user_data_manager.h | |
parent | 3354d3e0ebe826027b315011f24e4f661f25af17 (diff) | |
download | chromium_src-6fe1a1310d47287d88e920c5cc54c3c2be3431d5.zip chromium_src-6fe1a1310d47287d88e920c5cc54c3c2be3431d5.tar.gz chromium_src-6fe1a1310d47287d88e920c5cc54c3c2be3431d5.tar.bz2 |
Rip out the multiprofile implementation.
Requested by Ben. Never worked on linux or OSX and apparently broken on Windows. Removal of the multiprofile code will make switching out the old AppMenuModel with the new WrenchMenuModel trivial.
BUG=27177
TEST=none
Review URL: http://codereview.chromium.org/2736001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49440 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/user_data_manager.h')
-rw-r--r-- | chrome/browser/user_data_manager.h | 159 |
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_ |