168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)// found in the LICENSE file. 468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) 568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)#include "chrome/browser/profiles/avatar_menu.h" 668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) 768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)#include "chrome/browser/browser_process.h" 868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)#include "chrome/browser/profiles/profile.h" 9cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "chrome/browser/profiles/profile_avatar_icon_util.h" 1068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)#include "chrome/browser/profiles/profile_info_cache.h" 1168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)#include "chrome/browser/profiles/profile_manager.h" 12cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "ui/base/resource/resource_bundle.h" 1368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) 1468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)// static 1568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)void AvatarMenu::GetImageForMenuButton(Profile* profile, 1668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) gfx::Image* image, 1768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) bool* is_rectangle) { 1868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) ProfileInfoCache& cache = 1968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) g_browser_process->profile_manager()->GetProfileInfoCache(); 2068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) size_t index = cache.GetIndexOfProfileWithPath(profile->GetPath()); 2168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) if (index == std::string::npos) { 2268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) NOTREACHED(); 2368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) return; 2468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) } 2568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) 266e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) // If there is a Gaia image available, try to use that. 276e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) if (cache.IsUsingGAIAPictureOfProfileAtIndex(index)) { 286e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) const gfx::Image* gaia_image = cache.GetGAIAPictureOfProfileAtIndex(index); 296e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) if (gaia_image) { 306e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) *image = *gaia_image; 316e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) *is_rectangle = true; 326e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) return; 336e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) } 346e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) } 356e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 366e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) // Otherwise, use the default resource, not the downloaded high-res one. 37cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) const size_t icon_index = cache.GetAvatarIconIndexOfProfileAtIndex(index); 38cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) const int resource_id = 39cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) profiles::GetDefaultAvatarIconResourceIDAtIndex(icon_index); 40cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) *image = ResourceBundle::GetSharedInstance().GetNativeImageNamed(resource_id); 416e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) *is_rectangle = false; 4268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)} 43