| 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 dd4bbb1a726d72d204f3f1a0be80da61cec0677f..4878f1a1a17e3a42f933f069b71b533d8400a047 100644
|
| --- a/chrome/browser/ui/webui/options/manage_profile_handler.cc
|
| +++ b/chrome/browser/ui/webui/options/manage_profile_handler.cc
|
| @@ -14,6 +14,7 @@
|
| #include "chrome/browser/profiles/profile_info_cache.h"
|
| #include "chrome/browser/profiles/profile_manager.h"
|
| #include "chrome/common/chrome_notification_types.h"
|
| +#include "content/browser/tab_contents/tab_contents.h"
|
| #include "content/common/notification_service.h"
|
| #include "grit/generated_resources.h"
|
|
|
| @@ -44,7 +45,6 @@ void ManageProfileHandler::GetLocalizedValues(
|
| void ManageProfileHandler::Initialize() {
|
| registrar_.Add(this, chrome::NOTIFICATION_PROFILE_CACHED_INFO_CHANGED,
|
| NotificationService::AllSources());
|
| - InitializeDefaultProfileIcons();
|
| SendProfileNames();
|
| }
|
|
|
| @@ -55,6 +55,12 @@ void ManageProfileHandler::RegisterMessages() {
|
| web_ui_->RegisterMessageCallback("deleteProfile",
|
| base::Bind(&ManageProfileHandler::DeleteProfile,
|
| base::Unretained(this)));
|
| + web_ui_->RegisterMessageCallback("requestDefaultProfileIcons",
|
| + base::Bind(&ManageProfileHandler::RequestDefaultProfileIcons,
|
| + base::Unretained(this)));
|
| + web_ui_->RegisterMessageCallback("requestProfileInfo",
|
| + base::Bind(&ManageProfileHandler::RequestProfileInfo,
|
| + base::Unretained(this)));
|
| }
|
|
|
| void ManageProfileHandler::Observe(int type,
|
| @@ -66,7 +72,7 @@ void ManageProfileHandler::Observe(int type,
|
| OptionsPageUIHandler::Observe(type, source, details);
|
| }
|
|
|
| -void ManageProfileHandler::InitializeDefaultProfileIcons() {
|
| +void ManageProfileHandler::RequestDefaultProfileIcons(const ListValue* args) {
|
| ListValue image_url_list;
|
| for (size_t i = 0; i < ProfileInfoCache::GetDefaultAvatarIconCount(); i++) {
|
| std::string url = ProfileInfoCache::GetDefaultAvatarIconUrl(i);
|
| @@ -91,6 +97,8 @@ void ManageProfileHandler::SendProfileNames() {
|
| }
|
|
|
| void ManageProfileHandler::SetProfileNameAndIcon(const ListValue* args) {
|
| + DCHECK(args);
|
| +
|
| Value* file_path_value;
|
| FilePath profile_file_path;
|
| if (!args->Get(0, &file_path_value) ||
|
| @@ -119,6 +127,8 @@ void ManageProfileHandler::SetProfileNameAndIcon(const ListValue* args) {
|
| }
|
|
|
| void ManageProfileHandler::DeleteProfile(const ListValue* args) {
|
| + DCHECK(args);
|
| +
|
| Value* file_path_value;
|
| FilePath profile_file_path;
|
| if (!args->Get(0, &file_path_value) ||
|
| @@ -129,3 +139,35 @@ void ManageProfileHandler::DeleteProfile(const ListValue* args) {
|
| profile_file_path);
|
| }
|
|
|
| +void ManageProfileHandler::RequestProfileInfo(const ListValue* args) {
|
| + DCHECK(args);
|
| +
|
| + DictionaryValue profile_value;
|
| +
|
| + Value* index_value;
|
| + double index_double;
|
| + if (!args->Get(0, &index_value) || !index_value->GetAsDouble(&index_double))
|
| + return;
|
| +
|
| + int index = static_cast<int>(index_double);
|
| +
|
| + ProfileInfoCache& cache =
|
| + g_browser_process->profile_manager()->GetProfileInfoCache();
|
| + int profile_count = cache.GetNumberOfProfiles();
|
| + if (index < 0 && index >= profile_count)
|
| + return;
|
| +
|
| + FilePath current_profile_path =
|
| + web_ui_->tab_contents()->browser_context()->GetPath();
|
| + size_t icon_index = cache.GetAvatarIconIndexOfProfileAtIndex(index);
|
| + FilePath profile_path = cache.GetPathOfProfileAtIndex(index);
|
| + profile_value.SetString("name", cache.GetNameOfProfileAtIndex(index));
|
| + profile_value.SetString("iconURL",
|
| + cache.GetDefaultAvatarIconUrl(icon_index));
|
| + profile_value.Set("filePath", base::CreateFilePathValue(profile_path));
|
| + profile_value.SetBoolean("isCurrentProfile",
|
| + profile_path == current_profile_path);
|
| +
|
| + web_ui_->CallJavascriptFunction("ManageProfileOverlay.setProfileInfo",
|
| + profile_value);
|
| +}
|
|
|