#include "chrome/browser/ui/browser_dialogs.h"
#include "chrome/browser/ui/host_desktop.h"
#include "chrome/browser/ui/startup/startup_browser_creator.h"
+#include "chrome/browser/ui/user_manager.h"
#include "chrome/common/chrome_switches.h"
+#include "chrome/grit/generated_resources.h"
#include "components/signin/core/common/profile_management_switches.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/notification_service.h"
-#include "grit/generated_resources.h"
#include "grit/theme_resources.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/base/resource/resource_bundle.h"
#if defined(ENABLE_MANAGED_USERS)
-#include "chrome/browser/managed_mode/managed_user_service.h"
-#include "chrome/browser/managed_mode/managed_user_service_factory.h"
+#include "chrome/browser/supervised_user/supervised_user_service.h"
+#include "chrome/browser/supervised_user/supervised_user_service_factory.h"
#endif
using content::BrowserThread;
Browser* browser)
: profile_list_(ProfileList::Create(profile_cache)),
menu_actions_(AvatarMenuActions::Create()),
+#if defined(ENABLE_MANAGED_USERS)
+ supervised_user_observer_(this),
+#endif
profile_info_(profile_cache),
observer_(observer),
browser_(browser) {
// Register this as an observer of the info cache.
registrar_.Add(this, chrome::NOTIFICATION_PROFILE_CACHED_INFO_CHANGED,
content::NotificationService::AllSources());
+
+#if defined(ENABLE_MANAGED_USERS)
+ // Register this as an observer of the SupervisedUserService to be notified
+ // of changes to the custodian info.
+ if (browser_) {
+ supervised_user_observer_.Add(
+ SupervisedUserServiceFactory::GetForProfile(browser_->profile()));
+ }
+#endif
}
AvatarMenu::~AvatarMenu() {
index == GetActiveProfileIndex());
const Item& item = GetItemAt(index);
- if (switches::IsNewProfileManagement()) {
+ if (switches::IsNewAvatarMenu()) {
// Don't open a browser window for signed-out profiles.
if (item.signin_required) {
- chrome::ShowUserManager(item.profile_path);
+ UserManager::Show(item.profile_path,
+ profiles::USER_MANAGER_NO_TUTORIAL,
+ profiles::USER_MANAGER_SELECT_PROFILE_NO_ACTION);
return;
}
}
desktop_type = browser_->host_desktop_type();
profiles::SwitchToProfile(path, desktop_type, always_create,
- profiles::ProfileSwitchingDoneCallback(),
+ ProfileManager::CreateCallback(),
metric);
}
return index;
}
-base::string16 AvatarMenu::GetManagedUserInformation() const {
+base::string16 AvatarMenu::GetSupervisedUserInformation() const {
// |browser_| can be NULL in unit_tests.
- if (browser_ && browser_->profile()->IsManaged()) {
+ if (browser_ && browser_->profile()->IsSupervised()) {
#if defined(ENABLE_MANAGED_USERS)
- ManagedUserService* service = ManagedUserServiceFactory::GetForProfile(
- browser_->profile());
+ SupervisedUserService* service =
+ SupervisedUserServiceFactory::GetForProfile(browser_->profile());
base::string16 custodian =
base::UTF8ToUTF16(service->GetCustodianEmailAddress());
- return l10n_util::GetStringFUTF16(IDS_MANAGED_USER_INFO, custodian);
+ return l10n_util::GetStringFUTF16(IDS_SUPERVISED_USER_INFO, custodian);
#endif
}
return base::string16();
}
-const gfx::Image& AvatarMenu::GetManagedUserIcon() const {
+const gfx::Image& AvatarMenu::GetSupervisedUserIcon() const {
return ResourceBundle::GetSharedInstance().GetNativeImageNamed(
- IDR_MANAGED_USER_ICON);
+ IDR_SUPERVISED_USER_ICON);
}
void AvatarMenu::ActiveBrowserChanged(Browser* browser) {
if (observer_)
observer_->OnAvatarMenuChanged(this);
}
+
+#if defined(ENABLE_MANAGED_USERS)
+void AvatarMenu::OnCustodianInfoChanged() {
+ RebuildMenu();
+ if (observer_)
+ observer_->OnAvatarMenuChanged(this);
+}
+#endif