| Index: chrome/browser/profiles/avatar_menu.cc
|
| diff --git a/chrome/browser/profiles/avatar_menu.cc b/chrome/browser/profiles/avatar_menu.cc
|
| index a32bf72614e962f173ecfd5c94df43664c2290e1..bf54c5cba7cbda18e4f42004a052dfb828ca02d1 100644
|
| --- a/chrome/browser/profiles/avatar_menu.cc
|
| +++ b/chrome/browser/profiles/avatar_menu.cc
|
| @@ -83,14 +83,12 @@ AvatarMenu::~AvatarMenu() {
|
| }
|
|
|
| AvatarMenu::Item::Item(size_t menu_index,
|
| - size_t profile_index,
|
| const gfx::Image& icon)
|
| : icon(icon),
|
| active(false),
|
| signed_in(false),
|
| signin_required(false),
|
| - menu_index(menu_index),
|
| - profile_index(profile_index) {
|
| + menu_index(menu_index) {
|
| }
|
|
|
| AvatarMenu::Item::~Item() {
|
| @@ -143,12 +141,12 @@ void AvatarMenu::SwitchToGuestProfileWindow(
|
| }
|
|
|
| void AvatarMenu::SwitchToProfile(size_t index, bool always_create) {
|
| + const Item& active_item = GetActiveProfileItem();
|
| DCHECK(profiles::IsMultipleProfilesEnabled() ||
|
| - index == GetActiveProfileIndex());
|
| - const Item& item = GetItemAt(index);
|
| - base::FilePath path =
|
| - profile_info_->GetPathOfProfileAtIndex(item.profile_index);
|
| + index == active_item.menu_index);
|
|
|
| + const Item& item = GetItemAt(index);
|
| + base::FilePath path = item.profile_path;
|
| chrome::HostDesktopType desktop_type = chrome::GetActiveDesktop();
|
| if (browser_)
|
| desktop_type = browser_->host_desktop_type();
|
| @@ -163,12 +161,12 @@ void AvatarMenu::AddNewProfile(ProfileMetrics::ProfileAdd type) {
|
|
|
| void AvatarMenu::EditProfile(size_t index) {
|
| // Get the index in the profile cache from the menu index.
|
| - size_t profile_index = profile_list_->GetItemAt(index).profile_index;
|
| + size_t profile_index = profile_list_->GetItemAt(index).profile_path;
|
|
|
| Profile* profile = g_browser_process->profile_manager()->GetProfileByPath(
|
| - profile_info_->GetPathOfProfileAtIndex(profile_index));
|
| + profile_list_->GetItemAt(index).profile_path);
|
|
|
| - menu_actions_->EditProfile(profile, profile_index);
|
| + menu_actions_->EditProfile(profile);
|
| }
|
|
|
| void AvatarMenu::RebuildMenu() {
|
| @@ -182,25 +180,9 @@ size_t AvatarMenu::GetNumberOfItems() const {
|
| const AvatarMenu::Item& AvatarMenu::GetItemAt(size_t index) const {
|
| return profile_list_->GetItemAt(index);
|
| }
|
| -size_t AvatarMenu::GetActiveProfileIndex() {
|
| -
|
| - // During singleton profile deletion, this function can be called with no
|
| - // profiles in the model - crbug.com/102278 .
|
| - if (profile_list_->GetNumberOfItems() == 0)
|
| - return 0;
|
| -
|
| - Profile* active_profile = NULL;
|
| - if (!browser_)
|
| - active_profile = ProfileManager::GetLastUsedProfile();
|
| - else
|
| - active_profile = browser_->profile();
|
| -
|
| - size_t index =
|
| - profile_info_->GetIndexOfProfileWithPath(active_profile->GetPath());
|
|
|
| - index = profile_list_->MenuIndexFromProfileIndex(index);
|
| - DCHECK_LT(index, profile_list_->GetNumberOfItems());
|
| - return index;
|
| +const AvatarMenu::Item& AvatarMenu::GetActiveProfileItem() const {
|
| + return profile_list_->GetActiveItem();
|
| }
|
|
|
| base::string16 AvatarMenu::GetManagedUserInformation() const {
|
|
|