Chromium Code Reviews| Index: chrome/browser/ui/webui/options/manage_profile_handler.cc |
| diff --git a/chrome/browser/ui/webui/options/manage_profile_handler.cc b/chrome/browser/ui/webui/options/manage_profile_handler.cc |
| index 25481b144b9798e11336a0bf070f172e8bc5f77f..98b0c2d85f102a692fdb749feb43dbb99609f954 100644 |
| --- a/chrome/browser/ui/webui/options/manage_profile_handler.cc |
| +++ b/chrome/browser/ui/webui/options/manage_profile_handler.cc |
| @@ -27,6 +27,11 @@ |
| #include "content/public/browser/web_ui.h" |
| #include "grit/generated_resources.h" |
| +#if defined(ENABLE_SETTINGS_APP) |
| +#include "chrome/browser/ui/app_list/app_list_util.h" |
| +#include "content/public/browser/web_contents.h" |
| +#endif |
| + |
| namespace options { |
| namespace { |
| @@ -113,6 +118,11 @@ void ManageProfileHandler::RegisterMessages() { |
| web_ui()->RegisterMessageCallback("profileIconSelectionChanged", |
| base::Bind(&ManageProfileHandler::ProfileIconSelectionChanged, |
| base::Unretained(this))); |
| +#if defined(ENABLE_SETTINGS_APP) |
| + web_ui()->RegisterMessageCallback("profilesAppListSwitch", |
| + base::Bind(&ManageProfileHandler::ProfilesAppListSwitch, |
| + base::Unretained(this))); |
| +#endif |
| } |
| void ManageProfileHandler::Observe( |
| @@ -309,6 +319,26 @@ void ManageProfileHandler::DeleteProfile(const ListValue* args) { |
| profile_file_path, desktop_type); |
| } |
| +void ManageProfileHandler::ProfilesAppListSwitch(const ListValue* args) { |
| +#if !defined(ENABLE_SETTINGS_APP) |
| + return; |
|
Evan Stade
2013/01/23 00:16:21
no need for this return
why is this function defi
koz (OOO until 15th September)
2013/01/23 02:58:58
Done.
|
| +#else |
| + DCHECK(args); |
| + if (!ProfileManager::IsMultipleProfilesEnabled()) |
| + return; |
| + |
| + const Value* file_path_value; |
| + FilePath profile_file_path; |
| + if (!args->Get(0, &file_path_value) || |
| + !base::GetValueAsFilePath(*file_path_value, &profile_file_path)) |
| + return; |
| + |
| + chrome::SetAppListProfile(profile_file_path); |
| + // Close the settings app, since it will now be for the wrong profile. |
| + web_ui()->GetWebContents()->Close(); |
| +#endif // else !defined(ENABLE_SETTINGS_APP) |
| +} |
| + |
| void ManageProfileHandler::ProfileIconSelectionChanged( |
| const base::ListValue* args) { |
| DCHECK(args); |