Index: chrome/browser/ui/webui/options2/browser_options_handler2.cc |
diff --git a/chrome/browser/ui/webui/options2/browser_options_handler2.cc b/chrome/browser/ui/webui/options2/browser_options_handler2.cc |
index 62bf4c23d071e75b529c847dd39f6056f787497b..b8696059a0466da4ae6782b1688504bc95c965ec 100644 |
--- a/chrome/browser/ui/webui/options2/browser_options_handler2.cc |
+++ b/chrome/browser/ui/webui/options2/browser_options_handler2.cc |
@@ -391,6 +391,9 @@ void BrowserOptionsHandler::GetLocalizedValues(DictionaryValue* values) { |
values->SetBoolean("multiple_profiles", |
g_browser_process->profile_manager()->GetNumberOfProfiles() > 1); |
#endif |
+ |
+ if (multiprofile_) |
+ values->Set("profilesInfo", GetProfilesInfoList()); |
} |
void BrowserOptionsHandler::RegisterCloudPrintValues(DictionaryValue* values) { |
@@ -610,9 +613,6 @@ void BrowserOptionsHandler::InitializePage() { |
OnTemplateURLServiceChanged(); |
ObserveThemeChanged(); |
- if (multiprofile_) |
- SendProfilesInfo(); |
- |
SetupMetricsReportingCheckbox(); |
SetupMetricsReportingSettingVisibility(); |
SetupFontSizeSelector(); |
@@ -901,20 +901,13 @@ void BrowserOptionsHandler::GetInstantFieldTrialStatus(const ListValue* args) { |
enabled); |
} |
-void BrowserOptionsHandler::SendProfilesInfo() { |
- // Set profile creation text and button if multi-profiles switch is on. |
- scoped_ptr<Value> visible(Value::CreateBooleanValue(multiprofile_)); |
- web_ui()->CallJavascriptFunction("BrowserOptions.setProfilesSectionVisible", |
- *visible); |
- |
- if (!multiprofile_) |
- return; |
- |
+ListValue* BrowserOptionsHandler::GetProfilesInfoList() { |
ProfileInfoCache& cache = |
g_browser_process->profile_manager()->GetProfileInfoCache(); |
- ListValue profile_info_list; |
+ ListValue* profile_info_list = new ListValue; |
sail
2012/04/23 15:44:53
Maybe make this a scoped_ptr and do a release at t
Evan Stade
2012/04/23 20:19:02
that would delete the object
Evan Stade
2012/04/23 21:55:47
Done.
|
FilePath current_profile_path = |
web_ui()->GetWebContents()->GetBrowserContext()->GetPath(); |
+ |
for (size_t i = 0, e = cache.GetNumberOfProfiles(); i < e; ++i) { |
DictionaryValue* profile_value = new DictionaryValue(); |
FilePath profile_path = cache.GetPathOfProfileAtIndex(i); |
@@ -937,11 +930,16 @@ void BrowserOptionsHandler::SendProfilesInfo() { |
cache.GetDefaultAvatarIconUrl(icon_index)); |
} |
- profile_info_list.Append(profile_value); |
+ profile_info_list->Append(profile_value); |
} |
+ return profile_info_list; |
+} |
+ |
+void BrowserOptionsHandler::SendProfilesInfo() { |
+ scoped_ptr<ListValue> profile_info_list(GetProfilesInfoList()); |
web_ui()->CallJavascriptFunction("BrowserOptions.setProfilesInfo", |
- profile_info_list); |
+ *profile_info_list); |
} |
void BrowserOptionsHandler::CreateProfile(const ListValue* args) { |