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 | |
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
35 files changed, 4 insertions, 1299 deletions
diff --git a/chrome/app/chrome_dll.rc b/chrome/app/chrome_dll.rc index 3235ba3..03aa3b8 100644 --- a/chrome/app/chrome_dll.rc +++ b/chrome/app/chrome_dll.rc @@ -62,28 +62,6 @@ BEGIN "N", IDC_NEW_INCOGNITO_WINDOW, VIRTKEY, CONTROL, SHIFT "T", IDC_NEW_TAB, VIRTKEY, CONTROL "N", IDC_NEW_WINDOW, VIRTKEY, CONTROL - // NOTE: IDC_NEW_WINDOW_PROFILE_N is bound to the key ctrl-shift-(N+1), and - // opens a new window using profile number N. For example, - // IDC_NEW_WINDOW_PROFILE_0 is bound to ctrl-shift-1, and opens a window in - // profile 0. - "1", IDC_NEW_WINDOW_PROFILE_0, VIRTKEY, CONTROL, SHIFT - VK_NUMPAD1, IDC_NEW_WINDOW_PROFILE_0, VIRTKEY, CONTROL, SHIFT - "2", IDC_NEW_WINDOW_PROFILE_1, VIRTKEY, CONTROL, SHIFT - VK_NUMPAD2, IDC_NEW_WINDOW_PROFILE_1, VIRTKEY, CONTROL, SHIFT - "3", IDC_NEW_WINDOW_PROFILE_2, VIRTKEY, CONTROL, SHIFT - VK_NUMPAD3, IDC_NEW_WINDOW_PROFILE_2, VIRTKEY, CONTROL, SHIFT - "4", IDC_NEW_WINDOW_PROFILE_3, VIRTKEY, CONTROL, SHIFT - VK_NUMPAD4, IDC_NEW_WINDOW_PROFILE_3, VIRTKEY, CONTROL, SHIFT - "5", IDC_NEW_WINDOW_PROFILE_4, VIRTKEY, CONTROL, SHIFT - VK_NUMPAD5, IDC_NEW_WINDOW_PROFILE_4, VIRTKEY, CONTROL, SHIFT - "6", IDC_NEW_WINDOW_PROFILE_5, VIRTKEY, CONTROL, SHIFT - VK_NUMPAD6, IDC_NEW_WINDOW_PROFILE_5, VIRTKEY, CONTROL, SHIFT - "7", IDC_NEW_WINDOW_PROFILE_6, VIRTKEY, CONTROL, SHIFT - VK_NUMPAD7, IDC_NEW_WINDOW_PROFILE_6, VIRTKEY, CONTROL, SHIFT - "8", IDC_NEW_WINDOW_PROFILE_7, VIRTKEY, CONTROL, SHIFT - VK_NUMPAD8, IDC_NEW_WINDOW_PROFILE_7, VIRTKEY, CONTROL, SHIFT - "9", IDC_NEW_WINDOW_PROFILE_8, VIRTKEY, CONTROL, SHIFT - VK_NUMPAD9, IDC_NEW_WINDOW_PROFILE_8, VIRTKEY, CONTROL, SHIFT "O", IDC_OPEN_FILE, VIRTKEY, CONTROL "P", IDC_PRINT, VIRTKEY, CONTROL "R", IDC_RELOAD, VIRTKEY, CONTROL @@ -100,7 +78,6 @@ BEGIN VK_NEXT, IDC_SELECT_NEXT_TAB, VIRTKEY, CONTROL VK_TAB, IDC_SELECT_PREVIOUS_TAB, VIRTKEY, CONTROL, SHIFT VK_PRIOR, IDC_SELECT_PREVIOUS_TAB, VIRTKEY, CONTROL - "M", IDC_SELECT_PROFILE, VIRTKEY, CONTROL // NOTE: IDC_SELECT_TAB_N is bound to the key ctrl-(N+1), and selects the // tab at index N. For example, IDC_SELECT_TAB_0 is bound to ctrl-1, and // selects the tab at index 0. diff --git a/chrome/app/chrome_dll_resource.h b/chrome/app/chrome_dll_resource.h index c72cf1a..a1055ed 100644 --- a/chrome/app/chrome_dll_resource.h +++ b/chrome/app/chrome_dll_resource.h @@ -81,19 +81,6 @@ // Window management commands #define IDC_NEW_WINDOW 34000 #define IDC_NEW_INCOGNITO_WINDOW 34001 -#define IDC_PROFILE_MENU 34002 -// Insert any additional profile values before _LAST; these have to be -// consecutive. -#define IDC_NEW_WINDOW_PROFILE_0 34003 -#define IDC_NEW_WINDOW_PROFILE_1 34004 -#define IDC_NEW_WINDOW_PROFILE_2 34005 -#define IDC_NEW_WINDOW_PROFILE_3 34006 -#define IDC_NEW_WINDOW_PROFILE_4 34007 -#define IDC_NEW_WINDOW_PROFILE_5 34008 -#define IDC_NEW_WINDOW_PROFILE_6 34009 -#define IDC_NEW_WINDOW_PROFILE_7 34010 -#define IDC_NEW_WINDOW_PROFILE_8 34011 -#define IDC_NEW_WINDOW_PROFILE_LAST IDC_NEW_WINDOW_PROFILE_8 #define IDC_CLOSE_WINDOW 34012 #define IDC_ALWAYS_ON_TOP 34013 #define IDC_NEW_TAB 34014 @@ -202,8 +189,6 @@ #define IDC_DEV_TOOLS 40003 #define IDC_DEV_TOOLS_CONSOLE 40004 #define IDC_TASK_MANAGER 40005 -#define IDC_SELECT_PROFILE 40006 -#define IDC_NEW_PROFILE 40007 #define IDC_REPORT_BUG 40008 #define IDC_SHOW_BOOKMARK_BAR 40009 #define IDC_SHOW_HISTORY 40010 diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd index f90ff1d..0551a07 100644 --- a/chrome/app/generated_resources.grd +++ b/chrome/app/generated_resources.grd @@ -712,12 +712,6 @@ each locale. --> <message name="IDS_NEW_WINDOW" desc="The text label of the New Window menu item"> &New window </message> - <message name="IDS_PROFILE_MENU" desc="The text label of the New profile Window menu item"> - New window in &profile - </message> - <message name="IDS_SELECT_PROFILE" desc="The text label of the menu item to select a profile other than the ones displayed directly in the Profile submenu."> - Other... - </message> <message name="IDS_NEW_INCOGNITO_WINDOW" desc="The text label of the New incognito window menu item"> New &incognito window </message> @@ -777,12 +771,6 @@ each locale. --> <message name="IDS_NEW_WINDOW" desc="In Title Case: The text label of the New Window menu item"> &New Window </message> - <message name="IDS_PROFILE_MENU" desc="In Title Case: The text label of the New profile Window menu item"> - New Window in &Profile - </message> - <message name="IDS_SELECT_PROFILE" desc="In Title Case: The text label of the menu item to select a profile other than the ones displayed directly in the Profile submenu."> - Other... - </message> <message name="IDS_NEW_INCOGNITO_WINDOW" desc="In Title Case: The text label of the New incognito window menu item"> New &Incognito Window </message> @@ -6022,18 +6010,10 @@ Keep your key file in a safe place. You will need it to create new versions of y desc="Title of the new tab page, this is only shown while loading, then the title comes from the page"> New Tab </message> - <message name="IDS_NEW_TAB_TITLE_WITH_PROFILE_NAME" - desc="Title of the new tab page with profile name, this is only shown while loading, then the title comes from the page"> - New Tab [<ph name="PROFILE_NAME">$1</ph>] - </message> <message name="IDS_NEW_TAB_MOST_VISITED" desc="The 'Most Visited' heading on the new tab page"> Most visited </message> - <message name="IDS_NEW_TAB_MOST_VISITED_WITH_PROFILE_NAME" - desc="The 'Most Visited' heading on the new tab page"> - Most visited [<ph name="PROFILE_NAME">$1</ph>] - </message> <message name="IDS_NEW_TAB_RESTORE_THUMBNAILS_LINK" desc="The link that restores previously removed thumbnails"> Restore all removed thumbnails @@ -6474,31 +6454,6 @@ Keep your key file in a safe place. You will need it to create new versions of y Choose Another Directory... </message> - <!-- User data directory profiles dialog --> - <message name="IDS_SELECT_PROFILE_DIALOG_TITLE" desc="Title of the dialog that lets the user select a profile to open a new window."> - Select a Profile - </message> - <message name="IDS_SELECT_PROFILE_DIALOG_LABEL_TEXT" desc="The label for the combo box that shows all the available profiles."> - Select a profile to open a new window - </message> - <message name="IDS_SELECT_PROFILE_DIALOG_NEW_PROFILE_ENTRY" desc="Text for an extra entry in the profiles combo box. The user can select this entry to create a new profile."> - <New Profile>... - </message> - <message name="IDS_START_IN_PROFILE_SHORTCUT_NAME" desc="Name of the desktop shortcut to start the application in a specific profile."> - <ph name="app_name">$1<ex>Google Chrome</ex></ph> for <ph name="profile_name">$2<ex>My Second Profile</ex></ph> - </message> - - <!-- User data directory new profile dialog --> - <message name="IDS_NEW_PROFILE_DIALOG_TITLE" desc="Title of dialog that lets the user enter a new profile name to open new window."> - Enter a Profile Name - </message> - <message name="IDS_NEW_PROFILE_DIALOG_LABEL_TEXT" desc="The label for the text box that lets the user enter a new profile name."> - Enter a new profile name - </message> - <message name="IDS_NEW_PROFILE_DIALOG_CREATE_SHORTCUT_TEXT" desc="The label for the text box that lets the user enter a new profile name."> - Create a desktop shortcut for this profile - </message> - <!-- Advanced Section Titles --> <message name="IDS_OPTIONS_ADVANCED_SECTION_TITLE_PRIVACY"> Privacy diff --git a/chrome/app/resources/locale_settings.grd b/chrome/app/resources/locale_settings.grd index c693bba..6c48c12 100644 --- a/chrome/app/resources/locale_settings.grd +++ b/chrome/app/resources/locale_settings.grd @@ -539,20 +539,6 @@ 52 </message> - <!-- The width and height of the Select Profile dialog in characters and lines --> - <!-- (See above). --> - <message name="IDS_SELECT_PROFILE_DIALOG_WIDTH_CHARS" use_name_for_id="true"> - 60 - </message> - <message name="IDS_SELECT_PROFILE_DIALOG_HEIGHT_LINES" use_name_for_id="true"> - 5 - </message> - - <!-- The width of the New Profile dialog in characters (See above). --> - <message name="IDS_NEW_PROFILE_DIALOG_WIDTH_CHARS" use_name_for_id="true"> - 60 - </message> - <!-- The URL for Chromium project used in About dialog. --> <message name="IDS_CHROMIUM_PROJECT_URL" translateable="false"> http://code.google.com/chromium/?hl=[GRITLANGCODE] diff --git a/chrome/browser/app_menu_model.cc b/chrome/browser/app_menu_model.cc index ac418b7..456c6d9 100644 --- a/chrome/browser/app_menu_model.cc +++ b/chrome/browser/app_menu_model.cc @@ -65,18 +65,6 @@ void AppMenuModel::Build() { AddItemWithStringId(IDC_NEW_TAB, IDS_NEW_TAB); AddItemWithStringId(IDC_NEW_WINDOW, IDS_NEW_WINDOW); AddItemWithStringId(IDC_NEW_INCOGNITO_WINDOW, IDS_NEW_INCOGNITO_WINDOW); - // Enumerate profiles asynchronously and then create the parent menu item. - // We will create the child menu items for this once the asynchronous call is - // done. See OnGetProfilesDone(). - const CommandLine& command_line = *CommandLine::ForCurrentProcess(); - if (command_line.HasSwitch(switches::kEnableUserDataDirProfiles)) { - if (!profiles_menu_contents_.get()) { - profiles_menu_contents_.reset(new menus::SimpleMenuModel(delegate())); - BuildProfileSubMenu(); - } - AddSubMenuWithStringId(IDC_PROFILE_MENU, IDS_PROFILE_MENU, - profiles_menu_contents_.get()); - } AddSeparator(); AddCheckItemWithStringId(IDC_SHOW_BOOKMARK_BAR, IDS_SHOW_BOOKMARK_BAR); @@ -125,60 +113,6 @@ void AppMenuModel::Build() { } } -bool AppMenuModel::BuildProfileSubMenu() { - // Nothing to do if the menu has gone away. - if (!profiles_menu_contents_.get()) - return false; - - // Triggers profile list refresh in case it's changed. - UserDataManager::Get()->RefreshUserDataDirProfiles(); - - // Use the list of profiles in the browser. - const std::vector<std::wstring>& profiles = - browser_->user_data_dir_profiles(); - - // Check if profiles have changed. - if (!ProfilesChanged(profiles)) - return false; - - // Update known profiles. - known_profiles_.assign(profiles.begin(), profiles.end()); - - // Clear old profile menu items. - profiles_menu_contents_->Clear(); - - // Add direct submenu items for profiles. - std::vector<std::wstring>::const_iterator iter = profiles.begin(); - for (int i = IDC_NEW_WINDOW_PROFILE_0; - i <= IDC_NEW_WINDOW_PROFILE_LAST && iter != profiles.end(); - ++i, ++iter) - profiles_menu_contents_->AddItem(i, WideToUTF16Hack(*iter)); - - // If there are more profiles then show "Other" link. - if (iter != profiles.end()) { - profiles_menu_contents_->AddSeparator(); - profiles_menu_contents_->AddItemWithStringId(IDC_SELECT_PROFILE, - IDS_SELECT_PROFILE); - } - - // Always show a link to select a new profile. - profiles_menu_contents_->AddSeparator(); - profiles_menu_contents_->AddItemWithStringId( - IDC_NEW_PROFILE, - IDS_SELECT_PROFILE_DIALOG_NEW_PROFILE_ENTRY); - - return true; -} - -bool AppMenuModel::ProfilesChanged( - const std::vector<std::wstring>& profiles) const { - if (profiles.size() != known_profiles_.size()) - return true; - - return !std::equal(profiles.begin(), profiles.end(), - known_profiles_.begin()); -} - string16 AppMenuModel::GetSyncMenuLabel() const { return sync_ui_util::GetSyncMenuLabel( browser_->profile()->GetOriginalProfile()->GetProfileSyncService()); diff --git a/chrome/browser/app_menu_model.h b/chrome/browser/app_menu_model.h index 962368e..60483f8 100644 --- a/chrome/browser/app_menu_model.h +++ b/chrome/browser/app_menu_model.h @@ -11,7 +11,6 @@ #include "app/menus/simple_menu_model.h" #include "base/ref_counted.h" #include "base/scoped_ptr.h" -#include "chrome/browser/user_data_manager.h" class Browser; @@ -28,22 +27,13 @@ class AppMenuModel : public menus::SimpleMenuModel { virtual bool HasIcons() const { return true; } virtual bool GetIconAt(int index, SkBitmap* icon) const; - // Build/update profile submenu. Return true if profiles submenu is built or - // updated. False otherwise. - bool BuildProfileSubMenu(); - private: void Build(); - bool ProfilesChanged(const std::vector<std::wstring>& profiles) const; - string16 GetSyncMenuLabel() const; string16 GetAboutEntryMenuLabel() const; bool IsDynamicItem(int index) const; - // Contents of the profiles menu to populate with profile names. - scoped_ptr<menus::SimpleMenuModel> profiles_menu_contents_; - // Profile names that are in profiles_menu_contents_. This is used to // detect profile change. std::vector<std::wstring> known_profiles_; diff --git a/chrome/browser/browser.cc b/chrome/browser/browser.cc index a4620f6..49f5394 100644 --- a/chrome/browser/browser.cc +++ b/chrome/browser/browser.cc @@ -101,7 +101,6 @@ #include "chrome/browser/ssl/ssl_error_info.h" #include "chrome/browser/shell_integration.h" #include "chrome/browser/task_manager.h" -#include "chrome/browser/user_data_manager.h" #include "chrome/browser/view_ids.h" #include "chrome/browser/views/app_launcher.h" #include "chrome/browser/views/location_bar/location_bar_view.h" @@ -1024,7 +1023,6 @@ void Browser::UpdateCommandsForFullscreenMode(bool is_fullscreen) { command_updater_.UpdateCommandEnabled(IDC_OPEN_CURRENT_URL, show_main_ui); // Window management commands - command_updater_.UpdateCommandEnabled(IDC_PROFILE_MENU, show_main_ui); command_updater_.UpdateCommandEnabled(IDC_SHOW_AS_TAB, (type() & TYPE_POPUP) && !is_fullscreen); @@ -1038,7 +1036,6 @@ void Browser::UpdateCommandsForFullscreenMode(bool is_fullscreen) { // Show various bits of UI command_updater_.UpdateCommandEnabled(IDC_DEVELOPER_MENU, show_main_ui); - command_updater_.UpdateCommandEnabled(IDC_NEW_PROFILE, show_main_ui); command_updater_.UpdateCommandEnabled(IDC_REPORT_BUG, show_main_ui); command_updater_.UpdateCommandEnabled(IDC_SHOW_BOOKMARK_BAR, show_main_ui); command_updater_.UpdateCommandEnabled(IDC_IMPORT_SETTINGS, show_main_ui); @@ -1244,17 +1241,6 @@ void Browser::NewIncognitoWindow() { Browser::OpenEmptyWindow(profile_->GetOffTheRecordProfile()); } -void Browser::NewProfileWindowByIndex(int index) { -#if defined(OS_WIN) - const CommandLine& command_line = *CommandLine::ForCurrentProcess(); - if (!command_line.HasSwitch(switches::kEnableUserDataDirProfiles)) - return; - UserMetrics::RecordAction(UserMetricsAction("NewProfileWindowByIndex"), - profile_); - UserDataManager::Get()->LaunchChromeForProfile(index); -#endif -} - void Browser::CloseWindow() { UserMetrics::RecordAction(UserMetricsAction("CloseWindow"), profile_); window_->Close(); @@ -1620,22 +1606,6 @@ void Browser::OpenTaskManager() { window_->ShowTaskManager(); } -void Browser::OpenSelectProfileDialog() { - const CommandLine& command_line = *CommandLine::ForCurrentProcess(); - if (!command_line.HasSwitch(switches::kEnableUserDataDirProfiles)) - return; - UserMetrics::RecordAction(UserMetricsAction("SelectProfile"), profile_); - window_->ShowSelectProfileDialog(); -} - -void Browser::OpenNewProfileDialog() { - const CommandLine& command_line = *CommandLine::ForCurrentProcess(); - if (!command_line.HasSwitch(switches::kEnableUserDataDirProfiles)) - return; - UserMetrics::RecordAction(UserMetricsAction("CreateProfile"), profile_); - window_->ShowNewProfileDialog(); -} - void Browser::OpenBugReportDialog() { #if defined(OS_CHROMEOS) UserMetrics::RecordAction(UserMetricsAction("ReportBug"), profile_); @@ -1919,17 +1889,6 @@ void Browser::ExecuteCommandWithDisposition( // Window management commands case IDC_NEW_WINDOW: NewWindow(); break; case IDC_NEW_INCOGNITO_WINDOW: NewIncognitoWindow(); break; - case IDC_NEW_WINDOW_PROFILE_0: - case IDC_NEW_WINDOW_PROFILE_1: - case IDC_NEW_WINDOW_PROFILE_2: - case IDC_NEW_WINDOW_PROFILE_3: - case IDC_NEW_WINDOW_PROFILE_4: - case IDC_NEW_WINDOW_PROFILE_5: - case IDC_NEW_WINDOW_PROFILE_6: - case IDC_NEW_WINDOW_PROFILE_7: - case IDC_NEW_WINDOW_PROFILE_8: - NewProfileWindowByIndex(id - IDC_NEW_WINDOW_PROFILE_0); - break; case IDC_CLOSE_WINDOW: CloseWindow(); break; case IDC_NEW_TAB: NewTab(); break; case IDC_CLOSE_TAB: CloseTab(); break; @@ -2032,8 +1991,6 @@ void Browser::ExecuteCommandWithDisposition( case IDC_DEV_TOOLS: ToggleDevToolsWindow(false); break; case IDC_DEV_TOOLS_CONSOLE: ToggleDevToolsWindow(true); break; case IDC_TASK_MANAGER: OpenTaskManager(); break; - case IDC_SELECT_PROFILE: OpenSelectProfileDialog(); break; - case IDC_NEW_PROFILE: OpenNewProfileDialog(); break; case IDC_REPORT_BUG: OpenBugReportDialog(); break; case IDC_SHOW_BOOKMARK_BAR: ToggleBookmarkBar(); break; @@ -3009,17 +2966,6 @@ void Browser::InitCommandState() { // Window management commands command_updater_.UpdateCommandEnabled(IDC_NEW_WINDOW, true); command_updater_.UpdateCommandEnabled(IDC_NEW_INCOGNITO_WINDOW, true); - // TODO(pkasting): Perhaps the code that populates this submenu should do - // this? - command_updater_.UpdateCommandEnabled(IDC_NEW_WINDOW_PROFILE_0, true); - command_updater_.UpdateCommandEnabled(IDC_NEW_WINDOW_PROFILE_1, true); - command_updater_.UpdateCommandEnabled(IDC_NEW_WINDOW_PROFILE_2, true); - command_updater_.UpdateCommandEnabled(IDC_NEW_WINDOW_PROFILE_3, true); - command_updater_.UpdateCommandEnabled(IDC_NEW_WINDOW_PROFILE_4, true); - command_updater_.UpdateCommandEnabled(IDC_NEW_WINDOW_PROFILE_5, true); - command_updater_.UpdateCommandEnabled(IDC_NEW_WINDOW_PROFILE_6, true); - command_updater_.UpdateCommandEnabled(IDC_NEW_WINDOW_PROFILE_7, true); - command_updater_.UpdateCommandEnabled(IDC_NEW_WINDOW_PROFILE_8, true); command_updater_.UpdateCommandEnabled(IDC_CLOSE_WINDOW, true); command_updater_.UpdateCommandEnabled(IDC_NEW_TAB, true); command_updater_.UpdateCommandEnabled(IDC_CLOSE_TAB, true); @@ -3088,7 +3034,6 @@ void Browser::InitCommandState() { command_updater_.UpdateCommandEnabled(IDC_DEV_TOOLS, true); command_updater_.UpdateCommandEnabled(IDC_DEV_TOOLS_CONSOLE, true); command_updater_.UpdateCommandEnabled(IDC_TASK_MANAGER, true); - command_updater_.UpdateCommandEnabled(IDC_SELECT_PROFILE, true); command_updater_.UpdateCommandEnabled(IDC_SHOW_HISTORY, true); command_updater_.UpdateCommandEnabled(IDC_SHOW_BOOKMARK_MANAGER, true); command_updater_.UpdateCommandEnabled(IDC_SHOW_EXTENSION_SHELF, true); diff --git a/chrome/browser/browser.h b/chrome/browser/browser.h index 5a3a636..cfd9959 100644 --- a/chrome/browser/browser.h +++ b/chrome/browser/browser.h @@ -440,7 +440,6 @@ class Browser : public TabStripModelDelegate, // Window management commands void NewWindow(); void NewIncognitoWindow(); - void NewProfileWindowByIndex(int index); void CloseWindow(); void NewTab(); void CloseTab(); @@ -509,8 +508,6 @@ class Browser : public TabStripModelDelegate, void OpenCreateShortcutsDialog(); void ToggleDevToolsWindow(bool open_console); void OpenTaskManager(); - void OpenSelectProfileDialog(); - void OpenNewProfileDialog(); void OpenBugReportDialog(); void ToggleBookmarkBar(); diff --git a/chrome/browser/browser_init.cc b/chrome/browser/browser_init.cc index 9c343c2..8c6c8c6 100644 --- a/chrome/browser/browser_init.cc +++ b/chrome/browser/browser_init.cc @@ -37,7 +37,6 @@ #include "chrome/browser/tab_contents/tab_contents.h" #include "chrome/browser/tab_contents/tab_contents_view.h" #include "chrome/browser/tabs/pinned_tab_codec.h" -#include "chrome/browser/user_data_manager.h" #include "chrome/common/chrome_constants.h" #include "chrome/common/chrome_paths.h" #include "chrome/common/chrome_switches.h" @@ -1011,14 +1010,6 @@ bool BrowserInit::ProcessCmdLineImpl(const CommandLine& command_line, net::SetExplicitlyAllowedPorts(allowed_ports); } - if (command_line.HasSwitch(switches::kEnableUserDataDirProfiles)) { - // Update user data dir profiles when kEnableUserDataDirProfiles is enabled. - // Profile enumeration would be scheduled on file thread and when - // enumeration is done, the profile list in BrowserProcess would be - // updated on ui thread. - UserDataManager::Get()->RefreshUserDataDirProfiles(); - } - #if defined(OS_CHROMEOS) // The browser will be launched after the user logs in. if (command_line.HasSwitch(switches::kLoginManager)) diff --git a/chrome/browser/browser_main.cc b/chrome/browser/browser_main.cc index c801f98..6675bba 100644 --- a/chrome/browser/browser_main.cc +++ b/chrome/browser/browser_main.cc @@ -61,7 +61,6 @@ #else #include "chrome/browser/translate/translate_manager2.h" #endif -#include "chrome/browser/user_data_manager.h" #include "chrome/common/chrome_constants.h" #include "chrome/common/chrome_paths.h" #include "chrome/common/chrome_switches.h" @@ -974,9 +973,6 @@ int BrowserMain(const MainFunctionParams& parameters) { scoped_refptr<HistogramSynchronizer> histogram_synchronizer = new HistogramSynchronizer(); - // Initialize the shared instance of user data manager. - scoped_ptr<UserDataManager> user_data_manager(UserDataManager::Create()); - // Initialize the prefs of the local state. browser::RegisterLocalState(local_state); diff --git a/chrome/browser/browser_window.h b/chrome/browser/browser_window.h index 93ae25f..ff80ab7 100644 --- a/chrome/browser/browser_window.h +++ b/chrome/browser/browser_window.h @@ -214,12 +214,6 @@ class BrowserWindow { // Shows the Password Manager dialog box. virtual void ShowPasswordManager() = 0; - // Shows the Select Profile dialog box. - virtual void ShowSelectProfileDialog() = 0; - - // Shows the New Profile dialog box. - virtual void ShowNewProfileDialog() = 0; - // Shows the repost form confirmation dialog box. virtual void ShowRepostFormWarningDialog(TabContents* tab_contents) = 0; diff --git a/chrome/browser/cocoa/browser_window_cocoa.h b/chrome/browser/cocoa/browser_window_cocoa.h index 0b44fe1..b6aa455 100644 --- a/chrome/browser/cocoa/browser_window_cocoa.h +++ b/chrome/browser/cocoa/browser_window_cocoa.h @@ -77,8 +77,6 @@ class BrowserWindowCocoa : public BrowserWindow, virtual void ShowImportDialog(); virtual void ShowSearchEnginesDialog(); virtual void ShowPasswordManager(); - virtual void ShowSelectProfileDialog(); - virtual void ShowNewProfileDialog(); virtual void ShowRepostFormWarningDialog(TabContents* tab_contents); virtual void ShowContentSettingsWindow(ContentSettingsType content_type, Profile* profile); diff --git a/chrome/browser/cocoa/browser_window_cocoa.mm b/chrome/browser/cocoa/browser_window_cocoa.mm index 38bbd48..78f2221 100644 --- a/chrome/browser/cocoa/browser_window_cocoa.mm +++ b/chrome/browser/cocoa/browser_window_cocoa.mm @@ -307,14 +307,6 @@ void BrowserWindowCocoa::ShowPasswordManager() { NOTIMPLEMENTED(); } -void BrowserWindowCocoa::ShowSelectProfileDialog() { - NOTIMPLEMENTED(); -} - -void BrowserWindowCocoa::ShowNewProfileDialog() { - NOTIMPLEMENTED(); -} - void BrowserWindowCocoa::ShowRepostFormWarningDialog( TabContents* tab_contents) { RepostFormWarningMac::Create(GetNativeHandle(), tab_contents); diff --git a/chrome/browser/dom_ui/ntp_resource_cache.cc b/chrome/browser/dom_ui/ntp_resource_cache.cc index 3d4f98a..829a431 100644 --- a/chrome/browser/dom_ui/ntp_resource_cache.cc +++ b/chrome/browser/dom_ui/ntp_resource_cache.cc @@ -23,7 +23,6 @@ #include "chrome/browser/google_util.h" #include "chrome/browser/pref_service.h" #include "chrome/browser/profile.h" -#include "chrome/browser/user_data_manager.h" #include "chrome/common/chrome_switches.h" #include "chrome/common/extensions/extension.h" #include "chrome/common/extensions/extension_constants.h" @@ -241,21 +240,8 @@ void NTPResourceCache::CreateNewTabIncognitoHTML() { void NTPResourceCache::CreateNewTabHTML() { // Show the profile name in the title and most visited labels if the current // profile is not the default. - std::wstring title; - std::wstring most_visited; - if (UserDataManager::Get()->is_current_profile_default()) { - title = l10n_util::GetString(IDS_NEW_TAB_TITLE); - most_visited = l10n_util::GetString(IDS_NEW_TAB_MOST_VISITED); - } else { - // Get the current profile name. - std::wstring profile_name = - UserDataManager::Get()->current_profile_name(); - title = l10n_util::GetStringF(IDS_NEW_TAB_TITLE_WITH_PROFILE_NAME, - profile_name); - most_visited = l10n_util::GetStringF( - IDS_NEW_TAB_MOST_VISITED_WITH_PROFILE_NAME, - profile_name); - } + std::wstring title = l10n_util::GetString(IDS_NEW_TAB_TITLE); + std::wstring most_visited = l10n_util::GetString(IDS_NEW_TAB_MOST_VISITED); DictionaryValue localized_strings; localized_strings.SetString(L"bookmarkbarattached", profile_->GetPrefs()->GetBoolean(prefs::kShowBookmarkBar) ? diff --git a/chrome/browser/gtk/browser_window_gtk.cc b/chrome/browser/gtk/browser_window_gtk.cc index b7ed9b8..fbc4750 100644 --- a/chrome/browser/gtk/browser_window_gtk.cc +++ b/chrome/browser/gtk/browser_window_gtk.cc @@ -928,14 +928,6 @@ void BrowserWindowGtk::ShowPasswordManager() { NOTIMPLEMENTED(); } -void BrowserWindowGtk::ShowSelectProfileDialog() { - NOTIMPLEMENTED(); -} - -void BrowserWindowGtk::ShowNewProfileDialog() { - NOTIMPLEMENTED(); -} - void BrowserWindowGtk::ShowRepostFormWarningDialog(TabContents* tab_contents) { new RepostFormWarningGtk(GetNativeHandle(), tab_contents); } diff --git a/chrome/browser/gtk/browser_window_gtk.h b/chrome/browser/gtk/browser_window_gtk.h index 4120596..4ba7d33 100644 --- a/chrome/browser/gtk/browser_window_gtk.h +++ b/chrome/browser/gtk/browser_window_gtk.h @@ -95,8 +95,6 @@ class BrowserWindowGtk : public BrowserWindow, virtual void ShowImportDialog(); virtual void ShowSearchEnginesDialog(); virtual void ShowPasswordManager(); - virtual void ShowSelectProfileDialog(); - virtual void ShowNewProfileDialog(); virtual void ShowRepostFormWarningDialog(TabContents* tab_contents); virtual void ShowContentSettingsWindow(ContentSettingsType content_type, Profile* profile); diff --git a/chrome/browser/renderer_host/test/test_render_view_host.cc b/chrome/browser/renderer_host/test/test_render_view_host.cc index 7b4a11e..33c7529 100644 --- a/chrome/browser/renderer_host/test/test_render_view_host.cc +++ b/chrome/browser/renderer_host/test/test_render_view_host.cc @@ -161,8 +161,6 @@ void RenderViewHostTestHarness::SetUp() { SiteInstance* instance = SiteInstance::CreateSiteInstance(profile_.get()); contents_.reset(new TestTabContents(profile_.get(), instance)); - - user_data_manager_.reset(UserDataManager::Create()); } void RenderViewHostTestHarness::TearDown() { diff --git a/chrome/browser/renderer_host/test/test_render_view_host.h b/chrome/browser/renderer_host/test/test_render_view_host.h index 10a76bd..595b339 100644 --- a/chrome/browser/renderer_host/test/test_render_view_host.h +++ b/chrome/browser/renderer_host/test/test_render_view_host.h @@ -16,7 +16,6 @@ #include "chrome/browser/renderer_host/site_instance.h" #include "chrome/browser/tab_contents/navigation_controller.h" #include "chrome/browser/tab_contents/test_tab_contents.h" -#include "chrome/browser/user_data_manager.h" #include "chrome/test/testing_profile.h" #include "testing/gtest/include/gtest/gtest.h" @@ -296,8 +295,6 @@ class RenderViewHostTestHarness : public testing::Test { scoped_ptr<TestTabContents> contents_; - scoped_ptr<UserDataManager> user_data_manager_; - DISALLOW_COPY_AND_ASSIGN(RenderViewHostTestHarness); }; diff --git a/chrome/browser/user_data_manager.cc b/chrome/browser/user_data_manager.cc deleted file mode 100644 index ec35b19..0000000 --- a/chrome/browser/user_data_manager.cc +++ /dev/null @@ -1,382 +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. - -#include "build/build_config.h" - -#include "chrome/browser/user_data_manager.h" - -#include <string> - -#include "app/l10n_util.h" -#include "base/file_util.h" -#include "base/logging.h" -#include "base/message_loop.h" -#include "base/path_service.h" -#include "base/process_util.h" -#include "base/string_util.h" -#include "chrome/browser/browser_process.h" -#include "chrome/browser/chrome_thread.h" -#include "chrome/common/chrome_constants.h" -#include "chrome/common/chrome_paths.h" -#include "chrome/common/chrome_switches.h" -#include "grit/generated_resources.h" - -#if defined(OS_WIN) -#include <windows.h> -#include "chrome/browser/shell_integration.h" -#include "chrome/installer/util/browser_distribution.h" -#include "chrome/installer/util/shell_util.h" -#endif - -namespace { - -// Helper to start chrome for a given profile index. The helper takes care of -// enumerating profiles on the file thread and then it launches Chrome for the -// appropriate profile on the original thread. -// An instance of this class should always be created on the heap, and it will -// delete itself when the launch is done. -class LaunchChromeForProfileIndexHelper : GetProfilesHelper::Delegate { - public: - // Creates an instance with the given data manager and to launch chrome for - // the profile with the given index. - LaunchChromeForProfileIndexHelper(const UserDataManager* manager, int index); - virtual ~LaunchChromeForProfileIndexHelper(); - - // Starts the asynchronous launch. - void StartLaunch(); - - // GetProfilesHelper::Delegate method. - void OnGetProfilesDone(const std::vector<std::wstring>& profiles); - - private: - int index_; - const UserDataManager* manager_; - scoped_refptr<GetProfilesHelper> profiles_helper_; - - DISALLOW_COPY_AND_ASSIGN(LaunchChromeForProfileIndexHelper); -}; - -// Helper to update global user data dir profiles list. -class UserDataDirProfilesUpdater : GetProfilesHelper::Delegate { - public: - UserDataDirProfilesUpdater(); - virtual ~UserDataDirProfilesUpdater(); - - // Request profiles via GetProfilesHelper. - void Run(); - - // GetProfilesHelper::Delegate method. - void OnGetProfilesDone(const std::vector<std::wstring>& profiles); - - private: - scoped_refptr<GetProfilesHelper> profiles_helper_; - - DISALLOW_COPY_AND_ASSIGN(UserDataDirProfilesUpdater); -}; - -LaunchChromeForProfileIndexHelper::LaunchChromeForProfileIndexHelper( - const UserDataManager* manager, - int index) - : index_(index), - manager_(manager), - ALLOW_THIS_IN_INITIALIZER_LIST( - profiles_helper_(new GetProfilesHelper(this))) { - DCHECK(manager); -} - -LaunchChromeForProfileIndexHelper::~LaunchChromeForProfileIndexHelper() { - profiles_helper_->OnDelegateDeleted(); -} - -void LaunchChromeForProfileIndexHelper::StartLaunch() { - profiles_helper_->GetProfiles(NULL); -} - -void LaunchChromeForProfileIndexHelper::OnGetProfilesDone( - const std::vector<std::wstring>& profiles) { - if (index_ >= 0 && index_ < static_cast<int>(profiles.size())) - manager_->LaunchChromeForProfile(profiles[index_]); - - // We are done, delete ourselves. - delete this; -} - -UserDataDirProfilesUpdater::UserDataDirProfilesUpdater() - : ALLOW_THIS_IN_INITIALIZER_LIST( - profiles_helper_(new GetProfilesHelper(this))) { -} - -UserDataDirProfilesUpdater::~UserDataDirProfilesUpdater() { - profiles_helper_->OnDelegateDeleted(); -} - -void UserDataDirProfilesUpdater::Run() { - profiles_helper_->GetProfiles(NULL); -} - -void UserDataDirProfilesUpdater::OnGetProfilesDone( - const std::vector<std::wstring>& profiles) { - g_browser_process->user_data_dir_profiles() = profiles; - - // We are done, delete ourselves. - delete this; -} - -} // namespace - -// Separator used in folder names between the prefix and the profile name. -// For e.g. a folder for the profile "Joe" would be named "User Data-Joe". -static const wchar_t kProfileFolderSeparator[] = L"-"; - -// static -UserDataManager* UserDataManager::instance_ = NULL; - -// static -UserDataManager* UserDataManager::Create() { - DCHECK(!instance_); - FilePath user_path; - PathService::Get(chrome::DIR_USER_DATA, &user_path); - instance_ = new UserDataManager(user_path); - return instance_; -} - -// static -UserDataManager* UserDataManager::Get() { - DCHECK(instance_); - return instance_; -} - -UserDataManager::UserDataManager(const FilePath& user_data_root) - : user_data_root_(user_data_root) { - // Determine current profile name and current folder name. - current_folder_name_ = user_data_root.BaseName().ToWStringHack(); - bool success = GetProfileNameFromFolderName(current_folder_name_, - ¤t_profile_name_); - // The current profile is a default profile if the current user data folder - // name is just kUserDataDirname or when the folder name doesn't have the - // kUserDataDirname as prefix. - is_current_profile_default_ = - !success || (current_folder_name_ == chrome::kUserDataDirname); - - // (TODO:munjal) Fix issue 5070: - // http://code.google.com/p/chromium/issues/detail?id=5070 - - user_data_root_ = user_data_root_.DirName(); -} - -UserDataManager::~UserDataManager() { - if (instance_ == this) - instance_ = NULL; -} - -// static -bool UserDataManager::GetProfileNameFromFolderName( - const std::wstring& folder_name, - std::wstring* profile_name) { - // The folder name should start with a specific prefix for it to be a valid - // profile folder. - if (folder_name.find(chrome::kUserDataDirname) != 0) - return false; - - // Seems like we cannot use arraysize macro for externally defined constants. - // Is there a way? - unsigned int prefix_length = wcslen(chrome::kUserDataDirname); - // Subtract 1 from the size of the array for trailing null character. - unsigned int separator_length = arraysize(kProfileFolderSeparator) - 1; - - // It's safe to use profile_name variable for intermediate values since we - // will always return true now. - *profile_name = folder_name.substr(prefix_length); - // Remove leading separator if present. - if (profile_name->find_first_of(kProfileFolderSeparator) == 0) - *profile_name = profile_name->substr(separator_length); - - if (profile_name->empty()) - *profile_name = chrome::kNotSignedInProfile; - - return true; -} - -// static -std::wstring UserDataManager::GetFolderNameFromProfileName( - const std::wstring& profile_name) { - std::wstring folder_name = chrome::kUserDataDirname; - if (profile_name != chrome::kNotSignedInProfile) { - folder_name += kProfileFolderSeparator; - folder_name += profile_name; - } - return folder_name; -} - -std::wstring UserDataManager::GetUserDataFolderForProfile( - const std::wstring& profile_name) const { - std::wstring folder_name = GetFolderNameFromProfileName(profile_name); - FilePath folder_path = user_data_root_.Append( - FilePath::FromWStringHack(folder_name)); - return folder_path.ToWStringHack(); -} - -void UserDataManager::LaunchChromeForProfile( - const std::wstring& profile_name) const { - std::wstring user_data_dir = GetUserDataFolderForProfile(profile_name); - FilePath command; - PathService::Get(base::FILE_EXE, &command); - CommandLine command_line(command); - command_line.AppendSwitch(switches::kEnableUserDataDirProfiles); - command_line.AppendSwitchWithValue(switches::kUserDataDir, - user_data_dir); - FilePath local_state_path; - PathService::Get(chrome::FILE_LOCAL_STATE, &local_state_path); - command_line.AppendSwitchWithValue(switches::kParentProfile, - local_state_path.ToWStringHack()); - base::LaunchApp(command_line, false, false, NULL); -} - -void UserDataManager::LaunchChromeForProfile(int index) const { - // Helper deletes itself when done. - LaunchChromeForProfileIndexHelper* helper = - new LaunchChromeForProfileIndexHelper(this, index); - helper->StartLaunch(); -} - -void UserDataManager::GetProfiles(std::vector<std::wstring>* profiles) const { - // This function should be called on the file thread. - DCHECK(ChromeThread::CurrentlyOn(ChromeThread::FILE)); - file_util::FileEnumerator file_enum(user_data_root_, false, - file_util::FileEnumerator::DIRECTORIES); - std::wstring folder_name; - while (!(folder_name = file_enum.Next().ToWStringHack()).empty()) { - folder_name = file_util::GetFilenameFromPath(folder_name); - std::wstring profile_name; - if (GetProfileNameFromFolderName(folder_name, &profile_name)) - profiles->push_back(profile_name); - } -} - -bool UserDataManager::CreateShortcutForProfileInFolder( - const FilePath& folder, - const std::wstring& profile_name) const { -#if defined(OS_WIN) - FilePath exe_path; - if (!PathService::Get(base::FILE_EXE, &exe_path)) - return false; - - BrowserDistribution* dist = BrowserDistribution::GetDistribution(); - - // Working directory. - FilePath exe_folder = exe_path.DirName(); - - // Command and arguments. - std::wstring cmd; - cmd = StringPrintf(L"\"%ls\"", exe_path.value().c_str()); - std::wstring user_data_dir = GetUserDataFolderForProfile(profile_name); - std::wstring args = CommandLine::PrefixedSwitchStringWithValue( - switches::kUserDataDir, - user_data_dir); - args = StringPrintf(L"\"%ls\"", args.c_str()); - - // Shortcut path. - std::wstring shortcut_name = l10n_util::GetStringF( - IDS_START_IN_PROFILE_SHORTCUT_NAME, - dist->GetAppShortCutName(), - profile_name); - shortcut_name.append(L".lnk"); - FilePath shortcut_path = folder.Append(shortcut_name); - - // Profile path from user_data_dir. - FilePath profile_path = FilePath(user_data_dir).Append( - chrome::kNotSignedInProfile); - - return file_util::CreateShortcutLink( - cmd.c_str(), - shortcut_path.value().c_str(), - exe_folder.value().c_str(), - args.c_str(), - NULL, - exe_path.value().c_str(), - dist->GetIconIndex(), - ShellIntegration::GetChromiumAppId(profile_path).c_str()); -#else - // TODO(port): should probably use freedesktop.org standard for desktop files. - // See shell_integration.h for an implementation; but this code is reportedly - // obsolete. - NOTIMPLEMENTED(); - return false; -#endif -} - -bool UserDataManager::CreateDesktopShortcutForProfile( - const std::wstring& profile_name) const { -#if defined(OS_WIN) - std::wstring desktop_path; - if (!ShellUtil::GetDesktopPath(false, &desktop_path)) - return false; - - return CreateShortcutForProfileInFolder(FilePath(desktop_path), profile_name); -#else - // TODO(port): should probably use freedesktop.org standard for desktop files. - // See shell_integration.h for an implementation; but this code is reportedly - // obsolete. - NOTIMPLEMENTED(); - return false; -#endif -} - -void UserDataManager::RefreshUserDataDirProfiles() const { - // UserDataDirProfilesUpdater will delete itself when done. - UserDataDirProfilesUpdater* updater = new UserDataDirProfilesUpdater(); - updater->Run(); -} - -GetProfilesHelper::GetProfilesHelper(Delegate* delegate) - : delegate_(delegate), - message_loop_(NULL) { -} - -void GetProfilesHelper::GetProfiles(MessageLoop* target_loop) { - // If the target loop is not NULL then use the target loop, or if it's NULL - // then use the current message loop to post a task on it later when we are - // done building a list of profiles. - if (target_loop) { - message_loop_ = target_loop; - } else { - message_loop_ = MessageLoop::current(); - } - DCHECK(message_loop_); - ChromeThread::PostTask( - ChromeThread::FILE, FROM_HERE, - NewRunnableMethod(this, &GetProfilesHelper::GetProfilesFromManager)); -} - -// Records that the delegate is closed. -void GetProfilesHelper::OnDelegateDeleted() { - delegate_ = NULL; -} - -void GetProfilesHelper::GetProfilesFromManager() { - // This function should be called on the file thread. - DCHECK(ChromeThread::CurrentlyOn(ChromeThread::FILE)); - - // If the delegate is gone by now, no need to do any work. - if (!delegate_) - return; - - scoped_ptr< std::vector<std::wstring> > profiles( - new std::vector<std::wstring>); - UserDataManager::Get()->GetProfiles(profiles.get()); - - // Post a task on the original thread to call the delegate. - message_loop_->PostTask( - FROM_HERE, - NewRunnableMethod(this, - &GetProfilesHelper::InvokeDelegate, - profiles.release())); -} - -void GetProfilesHelper::InvokeDelegate(std::vector<std::wstring>* profiles) { - scoped_ptr< std::vector<std::wstring> > udd_profiles(profiles); - // If the delegate is gone by now, no need to do any work. - if (delegate_) - delegate_->OnGetProfilesDone(*udd_profiles.get()); -} 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_ diff --git a/chrome/browser/views/browser_dialogs.h b/chrome/browser/views/browser_dialogs.h index b0075fb..1697f13 100644 --- a/chrome/browser/views/browser_dialogs.h +++ b/chrome/browser/views/browser_dialogs.h @@ -48,9 +48,6 @@ void ShowBugReportView(views::Window* parent, void ShowClearBrowsingDataView(gfx::NativeWindow parent, Profile* profile); -// Shows the "Select profile" dialog. See SelectProfileDialog. -void ShowSelectProfileDialog(); - // Shows the "Importer" dialog. See ImporterView. void ShowImporterView(views::Widget* parent, Profile* profile); diff --git a/chrome/browser/views/dialog_stubs_gtk.cc b/chrome/browser/views/dialog_stubs_gtk.cc index ce19fa6..7e06c23 100644 --- a/chrome/browser/views/dialog_stubs_gtk.cc +++ b/chrome/browser/views/dialog_stubs_gtk.cc @@ -30,12 +30,6 @@ void ShowClearBrowsingDataView(views::Widget* parent, profile); } -void ShowSelectProfileDialog() { - // Only matters if we're going to support profile switching - // (switches::kEnableUserDataDirProfiles). - NOTIMPLEMENTED(); -} - void ShowImporterView(views::Widget* parent, Profile* profile) { // Import currently doesn't matter. NOTIMPLEMENTED(); diff --git a/chrome/browser/views/frame/browser_view.cc b/chrome/browser/views/frame/browser_view.cc index 2aec7e8..7bc300f 100644 --- a/chrome/browser/views/frame/browser_view.cc +++ b/chrome/browser/views/frame/browser_view.cc @@ -1037,14 +1037,6 @@ void BrowserView::ShowPasswordManager() { browser::ShowPasswordsExceptionsWindowView(browser_->profile()); } -void BrowserView::ShowSelectProfileDialog() { - browser::ShowSelectProfileDialog(); -} - -void BrowserView::ShowNewProfileDialog() { - browser::ShowNewProfileDialog(); -} - void BrowserView::ShowRepostFormWarningDialog(TabContents* tab_contents) { browser::ShowRepostFormWarningDialog(GetNativeHandle(), tab_contents); } diff --git a/chrome/browser/views/frame/browser_view.h b/chrome/browser/views/frame/browser_view.h index b017939..a4cdd57 100644 --- a/chrome/browser/views/frame/browser_view.h +++ b/chrome/browser/views/frame/browser_view.h @@ -309,8 +309,6 @@ class BrowserView : public BrowserBubbleHost, virtual void ShowImportDialog(); virtual void ShowSearchEnginesDialog(); virtual void ShowPasswordManager(); - virtual void ShowSelectProfileDialog(); - virtual void ShowNewProfileDialog(); virtual void ShowRepostFormWarningDialog(TabContents* tab_contents); virtual void ShowContentSettingsWindow(ContentSettingsType content_type, Profile* profile); diff --git a/chrome/browser/views/new_profile_dialog.cc b/chrome/browser/views/new_profile_dialog.cc deleted file mode 100644 index 9672a7a..0000000 --- a/chrome/browser/views/new_profile_dialog.cc +++ /dev/null @@ -1,136 +0,0 @@ -// Copyright (c) 2009 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. - -#include "chrome/browser/views/new_profile_dialog.h" - -#include <string> - -#include "app/l10n_util.h" -#include "app/message_box_flags.h" -#include "base/file_util.h" -#include "base/i18n/file_util_icu.h" -#include "base/logging.h" -#include "base/path_service.h" -#include "chrome/browser/user_data_manager.h" -#include "grit/chromium_strings.h" -#include "grit/generated_resources.h" -#include "grit/locale_settings.h" -#include "views/controls/message_box_view.h" -#include "views/controls/textfield/textfield.h" -#include "views/view.h" -#include "views/window/window.h" - -#if defined(OS_WIN) -#include "base/win_util.h" -#endif // defined(OS_WIN) - -namespace browser { - -// Declared in browser_dialogs.h so others don't have to depend on our header. -void ShowNewProfileDialog() { - NewProfileDialog::RunDialog(); -} - -} // namespace browser - -// static -void NewProfileDialog::RunDialog() { - NewProfileDialog* dlg = new NewProfileDialog(); - views::Window::CreateChromeWindow(NULL, gfx::Rect(), dlg)->Show(); -} - -NewProfileDialog::NewProfileDialog() { - std::wstring message_text = l10n_util::GetString( - IDS_NEW_PROFILE_DIALOG_LABEL_TEXT); - const int kDialogWidth = views::Window::GetLocalizedContentsWidth( - IDS_NEW_PROFILE_DIALOG_WIDTH_CHARS); - const int kMessageBoxFlags = MessageBoxFlags::kFlagHasOKButton | - MessageBoxFlags::kFlagHasCancelButton | - MessageBoxFlags::kFlagHasPromptField; - message_box_view_ = new MessageBoxView(kMessageBoxFlags, - message_text.c_str(), - std::wstring(), - kDialogWidth); - message_box_view_->SetCheckBoxLabel( - l10n_util::GetString(IDS_NEW_PROFILE_DIALOG_CREATE_SHORTCUT_TEXT)); - message_box_view_->SetCheckBoxSelected(true); - message_box_view_->text_box()->SetController(this); -} - -NewProfileDialog::~NewProfileDialog() { -} - -views::View* NewProfileDialog::GetInitiallyFocusedView() { - views::Textfield* text_box = message_box_view_->text_box(); - DCHECK(text_box); - return text_box; -} - -bool NewProfileDialog::IsDialogButtonEnabled( - MessageBoxFlags::DialogButton button) const { - if (button == MessageBoxFlags::DIALOGBUTTON_OK) { - std::wstring profile_name = message_box_view_->GetInputText(); - -#if defined(OS_POSIX) - std::string profile_name_narrow = WideToUTF8(profile_name); - file_util::ReplaceIllegalCharactersInPath(&profile_name_narrow, '_'); - profile_name = UTF8ToWide(profile_name_narrow); -#else - file_util::ReplaceIllegalCharactersInPath(&profile_name, '_'); -#endif - return !profile_name.empty() && - profile_name == message_box_view_->GetInputText(); - } - return true; -} - -std::wstring NewProfileDialog::GetWindowTitle() const { - return l10n_util::GetString(IDS_NEW_PROFILE_DIALOG_TITLE); -} - -void NewProfileDialog::DeleteDelegate() { - delete this; -} - -void NewProfileDialog::ContentsChanged(views::Textfield* sender, - const std::wstring& new_contents) { - GetDialogClientView()->UpdateDialogButtons(); -} - -bool NewProfileDialog::Accept() { - std::wstring profile_name = message_box_view_->GetInputText(); - if (profile_name.empty()) { - NOTREACHED(); - return true; - } - // Create a desktop shortcut if the corresponding checkbox is checked. - if (message_box_view_->IsCheckBoxSelected()) { - UserDataManager::Get()->CreateDesktopShortcutForProfile( - profile_name); - } else { -#if defined(OS_WIN) - if (win_util::GetWinVersion() >= win_util::WINVERSION_WIN7) { - // For Win7, we need to have a shortcut in a place that Windows would - // index to provide correct relaunch info. - // See http://crbug.com/32106 - FilePath temp_path; - if (PathService::Get(base::DIR_APP_DATA, &temp_path)) { - temp_path = temp_path.Append( - L"Microsoft\\Internet Explorer\\Quick Launch\\User Pinned"); - UserDataManager::Get()->CreateShortcutForProfileInFolder( - temp_path, - profile_name); - } - } -#endif // defined(OS_WIN) - } - - UserDataManager::Get()->LaunchChromeForProfile(profile_name); - UserDataManager::Get()->RefreshUserDataDirProfiles(); - return true; -} - -views::View* NewProfileDialog::GetContentsView() { - return message_box_view_; -} diff --git a/chrome/browser/views/new_profile_dialog.h b/chrome/browser/views/new_profile_dialog.h deleted file mode 100644 index 2ce169e..0000000 --- a/chrome/browser/views/new_profile_dialog.h +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright (c) 2009 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. -// -// A dialog box that prompts the user to enter a profile name, and opens a new -// window in that profile. - -#ifndef CHROME_BROWSER_VIEWS_NEW_PROFILE_DIALOG_H_ -#define CHROME_BROWSER_VIEWS_NEW_PROFILE_DIALOG_H_ - -#include "base/basictypes.h" -#include "base/message_loop.h" -#include "chrome/browser/shell_dialogs.h" -#include "views/controls/textfield/textfield.h" -#include "views/window/dialog_delegate.h" - -class MessageBoxView; -namespace views { -class View; -class Window; -} - -// Dialog that prompts the user to create a new profile. -class NewProfileDialog : public views::DialogDelegate, - public views::Textfield::Controller { - public: - // Creates and runs the dialog. - static void RunDialog(); - virtual ~NewProfileDialog(); - - // views::DialogDelegate methods. - virtual bool Accept(); - virtual views::View* GetInitiallyFocusedView(); - virtual bool IsDialogButtonEnabled( - MessageBoxFlags::DialogButton button) const; - virtual std::wstring GetWindowTitle() const; - virtual void DeleteDelegate(); - - // views::Textfield::Controller methods. - virtual void ContentsChanged(views::Textfield* sender, - const std::wstring& new_contents); - virtual bool HandleKeystroke(views::Textfield* sender, - const views::Textfield::Keystroke& key) { - return false; - } - - // views::WindowDelegate methods. - virtual views::View* GetContentsView(); - virtual bool IsAlwaysOnTop() const { return false; } - virtual bool IsModal() const { return false; } - - private: - NewProfileDialog(); - - MessageBoxView* message_box_view_; - - DISALLOW_COPY_AND_ASSIGN(NewProfileDialog); -}; - -#endif // CHROME_BROWSER_VIEWS_NEW_PROFILE_DIALOG_H_ diff --git a/chrome/browser/views/select_profile_dialog.cc b/chrome/browser/views/select_profile_dialog.cc deleted file mode 100644 index f57fe6f..0000000 --- a/chrome/browser/views/select_profile_dialog.cc +++ /dev/null @@ -1,146 +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. - -#include "chrome/browser/views/select_profile_dialog.h" - -#include <string> - -#include "app/l10n_util.h" -#include "base/logging.h" -#include "base/string_util.h" -#include "chrome/browser/user_data_manager.h" -#include "chrome/browser/views/new_profile_dialog.h" -#include "grit/chromium_strings.h" -#include "grit/generated_resources.h" -#include "grit/locale_settings.h" -#include "views/controls/label.h" -#include "views/controls/message_box_view.h" -#include "views/grid_layout.h" -#include "views/standard_layout.h" -#include "views/view.h" -#include "views/window/window.h" - -using views::ColumnSet; -using views::GridLayout; - -namespace browser { - -// Defined in browser_dialogs so callers don't have to depend on our header. -void ShowSelectProfileDialog() { - SelectProfileDialog::RunDialog(); -} - -} // namespace browser - -// static -void SelectProfileDialog::RunDialog() { - // When the window closes, it will delete itself. - SelectProfileDialog* dlg = new SelectProfileDialog(); - views::Window::CreateChromeWindow(NULL, gfx::Rect(), dlg)->Show(); -} - -SelectProfileDialog::SelectProfileDialog() - : ALLOW_THIS_IN_INITIALIZER_LIST(helper_(new GetProfilesHelper(this))) { - // We first create an instance of the helper and then setup controls. This - // doesn't lead to race condition because once the helper is done with - // enumerating profiles by examining the file system, it posts a task on the - // thread it was called on. This is the same thread that the current code is - // running on. So that task wouldn't get executed until we are done with - // setup controls. Given that, we start the helper before setup controls so - // that file enumeration can be done as soon as possible. - helper_->GetProfiles(NULL); - SetupControls(); -} - -SelectProfileDialog::~SelectProfileDialog() { - helper_->OnDelegateDeleted(); -} - -gfx::Size SelectProfileDialog::GetPreferredSize() { - return gfx::Size(views::Window::GetLocalizedContentsSize( - IDS_SELECT_PROFILE_DIALOG_WIDTH_CHARS, - IDS_SELECT_PROFILE_DIALOG_HEIGHT_LINES)); -} - -void SelectProfileDialog::PopulateProfilesComboBox( - const std::vector<std::wstring>& profiles) { - profiles_.insert(profiles_.begin(), profiles.begin(), profiles.end()); - profile_combobox_->ModelChanged(); - GetDialogClientView()->UpdateDialogButtons(); -} - -void SelectProfileDialog::Layout() { - GetLayoutManager()->Layout(this); -} - -views::View* SelectProfileDialog::GetInitiallyFocusedView() { - return profile_combobox_; -} - -std::wstring SelectProfileDialog::GetWindowTitle() const { - return l10n_util::GetString(IDS_SELECT_PROFILE_DIALOG_TITLE); -} - -bool SelectProfileDialog::Accept() { - size_t index = profile_combobox_->selected_item(); - DCHECK_LE(index, profiles_.size()); - if (index == profiles_.size()) - NewProfileDialog::RunDialog(); - else - UserDataManager::Get()->LaunchChromeForProfile(profiles_[index]); - return true; -} - -bool SelectProfileDialog::Cancel() { - return true; -} - -views::View* SelectProfileDialog::GetContentsView() { - return this; -} - -int SelectProfileDialog::GetItemCount() { - // Always show one more item in the combo box that allows the user to select - // <New Profile>. - return profiles_.size() + 1; -} - -std::wstring SelectProfileDialog::GetItemAt(int index) { - size_t index_size_t = index; - DCHECK_LE(index_size_t, profiles_.size()); - // For the last item in the drop down, return the <New Profile> text, - // otherwise return the corresponding profile name from the vector. - return index_size_t == profiles_.size() ? - l10n_util::GetString(IDS_SELECT_PROFILE_DIALOG_NEW_PROFILE_ENTRY) : - profiles_[index]; -} - -void SelectProfileDialog::OnGetProfilesDone( - const std::vector<std::wstring>& profiles) { - PopulateProfilesComboBox(profiles); -} - -void SelectProfileDialog::SetupControls() { - // Adds all controls. - select_profile_label_ = new views::Label( - l10n_util::GetString(IDS_SELECT_PROFILE_DIALOG_LABEL_TEXT)); - profile_combobox_ = new views::Combobox(this); - - // Arranges controls by using GridLayout. - const int column_set_id = 0; - GridLayout* layout = CreatePanelGridLayout(this); - SetLayoutManager(layout); - ColumnSet* column_set = layout->AddColumnSet(column_set_id); - column_set->AddColumn(GridLayout::LEADING, GridLayout::CENTER, 0, - GridLayout::USE_PREF, 0, 0); - column_set->AddPaddingColumn(0, kRelatedControlHorizontalSpacing); - column_set->AddColumn(GridLayout::FILL, GridLayout::CENTER, 0, - GridLayout::FIXED, 200, 0); - - layout->StartRow(0, column_set_id); - layout->AddView(select_profile_label_); - layout->AddPaddingRow(0, kRelatedControlVerticalSpacing); - layout->StartRow(0, column_set_id); - layout->AddView(profile_combobox_); -} diff --git a/chrome/browser/views/select_profile_dialog.h b/chrome/browser/views/select_profile_dialog.h deleted file mode 100644 index 9c309de..0000000 --- a/chrome/browser/views/select_profile_dialog.h +++ /dev/null @@ -1,84 +0,0 @@ -// Copyright (c) 2006-2008 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. -// -// A dialog box that shows the user various profiles that currently exist -// and lets the user select one. - -#ifndef CHROME_BROWSER_VIEWS_SELECT_PROFILE_DIALOG_H_ -#define CHROME_BROWSER_VIEWS_SELECT_PROFILE_DIALOG_H_ - -#include <vector> - -#include "app/combobox_model.h" -#include "base/basictypes.h" -#include "base/message_loop.h" -#include "base/ref_counted.h" -#include "chrome/browser/shell_dialogs.h" -#include "chrome/browser/user_data_manager.h" -#include "views/controls/combobox/combobox.h" -#include "views/window/dialog_delegate.h" - -class SelectProfileDialogHelper; -namespace views { -class Label; -class Window; -} - -// Dialog to allow the user to select a profile to open a new window. -class SelectProfileDialog - : public views::DialogDelegate, - public views::View, - public ComboboxModel, - public GetProfilesHelper::Delegate { - public: - // Creates and runs the dialog. - static void RunDialog(); - - virtual ~SelectProfileDialog(); - - // Populates the list of profiles from the given vector. - void PopulateProfilesComboBox(const std::vector<std::wstring>& profiles); - - // Returns the profile name selected by the user. - std::wstring profile_name() { return profile_name_; } - - // views::View methods. - virtual gfx::Size GetPreferredSize(); - virtual void Layout(); - - // views::DialogDelegate Methods: - virtual bool Accept(); - virtual bool Cancel(); - virtual views::View* GetContentsView(); - virtual views::View* GetInitiallyFocusedView(); - virtual std::wstring GetWindowTitle() const; - virtual bool IsModal() const { return false; } - - // ComboboxModel methods. - virtual int GetItemCount(); - virtual std::wstring GetItemAt(int index); - - // GetProfilesHelper::Delegate method. - virtual void OnGetProfilesDone(const std::vector<std::wstring>& profiles); - - private: - SelectProfileDialog(); - - // Sets up all UI controls for the dialog. - void SetupControls(); - - // UI controls. - views::Combobox* profile_combobox_; - views::Label* select_profile_label_; - - std::vector<std::wstring> profiles_; - std::wstring profile_name_; - - // Helper instance that handles all task posting activities. - scoped_refptr<GetProfilesHelper> helper_; - - DISALLOW_COPY_AND_ASSIGN(SelectProfileDialog); -}; - -#endif // CHROME_BROWSER_VIEWS_SELECT_PROFILE_DIALOG_H_ diff --git a/chrome/browser/views/toolbar_view.cc b/chrome/browser/views/toolbar_view.cc index 05f892d..62f8ea7 100644 --- a/chrome/browser/views/toolbar_view.cc +++ b/chrome/browser/views/toolbar_view.cc @@ -835,8 +835,6 @@ void ToolbarView::RunAppMenu(const gfx::Point& pt) { bool destroyed_flag = false; destroyed_flag_ = &destroyed_flag; - if (app_menu_model_->BuildProfileSubMenu()) - app_menu_menu_->Rebuild(); for (size_t i = 0; i < menu_listeners_.size(); i++) app_menu_menu_->AddMenuListener(menu_listeners_[i]); app_menu_menu_->RunMenuAt(pt, views::Menu2::ALIGN_TOPRIGHT); diff --git a/chrome/browser/views/toolbar_view.h b/chrome/browser/views/toolbar_view.h index 4b389c6..a2bc4df 100644 --- a/chrome/browser/views/toolbar_view.h +++ b/chrome/browser/views/toolbar_view.h @@ -215,8 +215,8 @@ class ToolbarView : public AccessibleToolbarView, DisplayMode display_mode_; // The contents of the various menus. - scoped_ptr<PageMenuModel> page_menu_model_; - scoped_ptr<AppMenuModel> app_menu_model_; + scoped_ptr<menus::SimpleMenuModel> page_menu_model_; + scoped_ptr<menus::SimpleMenuModel> app_menu_model_; // TODO(beng): build these into MenuButton. scoped_ptr<views::Menu2> page_menu_menu_; diff --git a/chrome/browser/wrench_menu_model.h b/chrome/browser/wrench_menu_model.h index d010518..8bd65ff 100644 --- a/chrome/browser/wrench_menu_model.h +++ b/chrome/browser/wrench_menu_model.h @@ -11,7 +11,6 @@ #include "app/menus/simple_menu_model.h" #include "base/ref_counted.h" #include "base/scoped_ptr.h" -#include "chrome/browser/user_data_manager.h" class Browser; class EncodingMenuModel; @@ -59,10 +58,6 @@ class WrenchMenuModel : public menus::SimpleMenuModel { string16 GetAboutEntryMenuLabel() const; bool IsDynamicItem(int index) const; - // Profile names that are in profiles_menu_contents_. This is used to - // detect profile change. - std::vector<std::wstring> known_profiles_; - // Tools menu. scoped_ptr<ToolsMenuModel> tools_menu_model_; diff --git a/chrome/chrome_browser.gypi b/chrome/chrome_browser.gypi index 35b82ca..3131dcb 100755 --- a/chrome/chrome_browser.gypi +++ b/chrome/chrome_browser.gypi @@ -2247,8 +2247,6 @@ 'browser/translate/translate_prefs.h', 'browser/upgrade_detector.cc', 'browser/upgrade_detector.h', - 'browser/user_data_manager.cc', - 'browser/user_data_manager.h', 'browser/user_style_sheet_watcher.cc', 'browser/user_style_sheet_watcher.h', 'browser/utility_process_host.cc', @@ -2472,8 +2470,6 @@ 'browser/views/login_view.h', 'browser/views/modal_dialog_delegate.cc', 'browser/views/modal_dialog_delegate.h', - 'browser/views/new_profile_dialog.cc', - 'browser/views/new_profile_dialog.h', 'browser/views/notifications/balloon_view_host.cc', 'browser/views/notifications/balloon_view_host.h', 'browser/views/notifications/balloon_view.cc', @@ -2531,8 +2527,6 @@ 'browser/views/sad_tab_view.cc', 'browser/views/sad_tab_view.h', 'browser/views/select_file_dialog.cc', - 'browser/views/select_profile_dialog.cc', - 'browser/views/select_profile_dialog.h', 'browser/views/shell_dialogs_win.cc', 'browser/views/status_bubble_views.cc', 'browser/views/status_bubble_views.h', diff --git a/chrome/common/chrome_switches.cc b/chrome/common/chrome_switches.cc index 404c18c..1645ba1 100644 --- a/chrome/common/chrome_switches.cc +++ b/chrome/common/chrome_switches.cc @@ -372,10 +372,6 @@ const char kEnableSyncTypedUrls[] = "enable-sync-typed-urls"; // Whether or not the touch events API is exposed. const char kEnableTouch[] = "enable-touch"; -// Whether the multiple profiles feature based on the user-data-dir flag is -// enabled or not. -const char kEnableUserDataDirProfiles[] = "enable-udd-profiles"; - // Enables the option to show tabs as a vertical stack down the side of the // browser window. const char kEnableVerticalTabs[] = "enable-vertical-tabs"; diff --git a/chrome/common/chrome_switches.h b/chrome/common/chrome_switches.h index e7d3ec2..57e6d15 100644 --- a/chrome/common/chrome_switches.h +++ b/chrome/common/chrome_switches.h @@ -123,7 +123,6 @@ extern const char kEnableSyncPreferences[]; extern const char kEnableSyncThemes[]; extern const char kEnableSyncTypedUrls[]; extern const char kEnableTouch[]; -extern const char kEnableUserDataDirProfiles[]; extern const char kEnableVerticalTabs[]; extern const char kEnableVideoLayering[]; extern const char kEnableVideoLogging[]; diff --git a/chrome/test/test_browser_window.h b/chrome/test/test_browser_window.h index 77874e6..b35e070 100644 --- a/chrome/test/test_browser_window.h +++ b/chrome/test/test_browser_window.h @@ -80,8 +80,6 @@ class TestBrowserWindow : public BrowserWindow { virtual void ShowImportDialog() {} virtual void ShowSearchEnginesDialog() {} virtual void ShowPasswordManager() {} - virtual void ShowSelectProfileDialog() {} - virtual void ShowNewProfileDialog() {} virtual void ShowRepostFormWarningDialog(TabContents* tab_contents) {} virtual void ShowContentSettingsWindow(ContentSettingsType content_type, Profile* profile) {} |