Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2419)

Unified Diff: ash/system/user/user_view.cc

Issue 560033002: Fixed suggesting adding more users into multi-profile session when we don't have more (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Update after review Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ash/system/user/user_view.cc
diff --git a/ash/system/user/user_view.cc b/ash/system/user/user_view.cc
index 52f128da1a52fd41b6430984cfed08dbb0682306..570ebacd70b72aa008ce2a20968732373b9911d0 100644
--- a/ash/system/user/user_view.cc
+++ b/ash/system/user/user_view.cc
@@ -207,7 +207,7 @@ UserView::UserView(SystemTrayItem* owner,
owner_(owner),
is_user_card_button_(false),
logout_button_(NULL),
- add_user_disabled_(false),
+ add_user_enabled_(true),
for_detailed_view_(for_detailed_view),
focus_manager_(NULL) {
CHECK_NE(user::LOGGED_IN_NONE, login);
@@ -238,8 +238,7 @@ void UserView::MouseMovedOutOfHost() {
TrayUser::TestState UserView::GetStateForTest() const {
if (add_menu_option_.get()) {
- return add_user_disabled_ ? TrayUser::ACTIVE_BUT_DISABLED
- : TrayUser::ACTIVE;
+ return add_user_enabled_ ? TrayUser::ACTIVE : TrayUser::ACTIVE_BUT_DISABLED;
}
if (!is_user_card_button_)
@@ -497,30 +496,43 @@ void UserView::ToggleAddUserMenuOption() {
const SessionStateDelegate* delegate =
Shell::GetInstance()->session_state_delegate();
- bool multi_profile_allowed =
- delegate->IsMultiProfileAllowedByPrimaryUserPolicy();
- add_user_disabled_ = (delegate->NumberOfLoggedInUsers() >=
- delegate->GetMaximumNumberOfLoggedInUsers()) ||
- !multi_profile_allowed;
-
- ButtonFromView* button = new ButtonFromView(
- add_user_view,
- add_user_disabled_ ? NULL : this,
- !add_user_disabled_,
- gfx::Insets(1, 1, 1, 1));
+ SessionStateDelegate::MultiProfileAddUserError add_user_error;
+ add_user_enabled_ = delegate->CanAddUserToMultiProfile(&add_user_error);
+
+ ButtonFromView* button = new ButtonFromView(add_user_view,
+ add_user_enabled_ ? this : NULL,
+ add_user_enabled_,
+ gfx::Insets(1, 1, 1, 1));
button->set_request_focus_on_press(false);
button->SetAccessibleName(
l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_SIGN_IN_ANOTHER_ACCOUNT));
button->ForceBorderVisible(true);
add_menu_option_->SetContentsView(button);
- if (add_user_disabled_) {
+ if (add_user_enabled_) {
+ // We activate the entry automatically if invoked with focus.
+ if (user_card_view_->HasFocus()) {
+ button->GetFocusManager()->SetFocusedView(button);
+ user_card_view_->GetFocusManager()->SetFocusedView(button);
+ }
+ } else {
ui::ResourceBundle& bundle = ui::ResourceBundle::GetSharedInstance();
int message_id;
- if (!multi_profile_allowed)
- message_id = IDS_ASH_STATUS_TRAY_MESSAGE_NOT_ALLOWED_PRIMARY_USER;
- else
- message_id = IDS_ASH_STATUS_TRAY_MESSAGE_CANNOT_ADD_USER;
+ switch (add_user_error) {
+ case SessionStateDelegate::
+ MULTIPROFILE_ADD_USER_ERROR_NOT_ALLOWED_PRIMARY_USER:
+ message_id = IDS_ASH_STATUS_TRAY_MESSAGE_NOT_ALLOWED_PRIMARY_USER;
+ break;
+ case SessionStateDelegate::
+ MULTIPROFILE_ADD_USER_ERROR_MAXIMUM_OF_USERS_REACHED:
+ message_id = IDS_ASH_STATUS_TRAY_MESSAGE_CANNOT_ADD_USER;
+ break;
+ case SessionStateDelegate::MULTIPROFILE_ADD_USER_ERROR_OUT_OF_USERS:
+ message_id = IDS_ASH_STATUS_TRAY_MESSAGE_OUT_OF_USERS;
+ break;
+ default:
+ NOTREACHED() << "Unknown adding user error " << add_user_error;
+ }
popup_message_.reset(new PopupMessage(
bundle.GetLocalizedString(IDS_ASH_STATUS_TRAY_CAPTION_CANNOT_ADD_USER),
@@ -530,12 +542,6 @@ void UserView::ToggleAddUserMenuOption() {
views::BubbleBorder::TOP_LEFT,
gfx::Size(parent()->bounds().width() - kPopupMessageOffset, 0),
2 * kPopupMessageOffset));
- } else {
- // We activate the entry automatically if invoked with focus.
- if (user_card_view_->HasFocus()) {
- button->GetFocusManager()->SetFocusedView(button);
- user_card_view_->GetFocusManager()->SetFocusedView(button);
- }
}
// Find the screen area which encloses both elements and sets then a mouse
// watcher which will close the "menu".

Powered by Google App Engine
This is Rietveld 408576698