summaryrefslogtreecommitdiffstats
path: root/chrome/browser/user_data_manager.h
diff options
context:
space:
mode:
authorxiyuan@chromium.org <xiyuan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-12-22 20:34:42 +0000
committerxiyuan@chromium.org <xiyuan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-12-22 20:34:42 +0000
commitb5c4ef70068ba850a5b3e6fc494bd2396c9bb1a0 (patch)
treefa82bd07b715dc7ee8a9bc16c9569586079aae4f /chrome/browser/user_data_manager.h
parent382048328177bcf0b0fe937319fd1b73a132229c (diff)
downloadchromium_src-b5c4ef70068ba850a5b3e6fc494bd2396c9bb1a0.zip
chromium_src-b5c4ef70068ba850a5b3e6fc494bd2396c9bb1a0.tar.gz
chromium_src-b5c4ef70068ba850a5b3e6fc494bd2396c9bb1a0.tar.bz2
Fix racing condition that blocks profiles menu showing up
Chrome should show profiles menu when "enable-udd-profiles" is supplied on command line. This is broken while refactoring app menu code from ToolbarView into AppMenuModel. Previously, the profile submenu model is kept in ToolbarView and profiles menu would show up on 2nd time app menu showing up. After the refactoring, profile menu is moved into AppMenuModel, which is re-created everytime before we show app menu. In AppMenuModel, it requests profiles data from GetProfilesHelper which will later invoke OnGetProfilesDone. However, app menu is created on the UI thread and blocks the callback until it shows up. This makes the profiles mneu empty. The fix is to leverage an existing profile list in BrowserProcess. When "enable-udd-profiles" is on, BrowserInit will get the initial profile list and NewProfileDialog will refresh it if user creates new profile. And AppMenuModel just use the list to populate the profile menu. BUG=30417 TEST=Verify profiles menu exists when "enable-udd-profiles" is on command line for issue 30417. Review URL: http://codereview.chromium.org/503062 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@35166 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/user_data_manager.h')
-rw-r--r--chrome/browser/user_data_manager.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/chrome/browser/user_data_manager.h b/chrome/browser/user_data_manager.h
index 14b9faa..f7dfe17 100644
--- a/chrome/browser/user_data_manager.h
+++ b/chrome/browser/user_data_manager.h
@@ -65,6 +65,9 @@ class UserDataManager {
// 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