Commit 76908bd7 authored by Nicolas Boichat's avatar Nicolas Boichat Committed by Commit Bot

Enable feedback button in guest mode

Bug: 993147
Test: At login screen => only power button
Test: As guest => power, sign out, feedback(NEW)
Test: As user => power, sign out, lock, feedback
Test: As user, screen locked => power, sign out
Change-Id: I23bb4395d316846112c32e4c5cc398f6eefe5ed2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1787025Reviewed-by: default avatarXiyuan Xia <xiyuan@chromium.org>
Reviewed-by: default avatarAhmed Fakhry <afakhry@chromium.org>
Reviewed-by: default avatarMin Chen <minch@chromium.org>
Commit-Queue: Nicolas Boichat <drinkcat@chromium.org>
Cr-Commit-Position: refs/heads/master@{#695846}
parent 8d3db5d5
...@@ -806,8 +806,20 @@ TEST_F(PowerButtonControllerTest, MenuItemsToLoginAndLockedStatus) { ...@@ -806,8 +806,20 @@ TEST_F(PowerButtonControllerTest, MenuItemsToLoginAndLockedStatus) {
EXPECT_FALSE(power_button_test_api_->MenuHasFeedbackItem()); EXPECT_FALSE(power_button_test_api_->MenuHasFeedbackItem());
TapToDismissPowerButtonMenu(); TapToDismissPowerButtonMenu();
// Should have sign out and feedback items if in guest mode (or, generally,
// if screen locking is disabled).
ClearLogin();
Initialize(ButtonType::NORMAL, LoginStatus::GUEST);
OpenPowerButtonMenu();
EXPECT_FALSE(GetLockedState());
EXPECT_TRUE(power_button_test_api_->MenuHasSignOutItem());
EXPECT_FALSE(power_button_test_api_->MenuHasLockScreenItem());
EXPECT_TRUE(power_button_test_api_->MenuHasFeedbackItem());
TapToDismissPowerButtonMenu();
// Should have sign out, lock screen and feedback items if user is logged in // Should have sign out, lock screen and feedback items if user is logged in
// and screen is unlocked. // and screen is unlocked.
ClearLogin();
CreateUserSessions(1); CreateUserSessions(1);
Shell::Get()->UpdateAfterLoginStatusChange(LoginStatus::USER); Shell::Get()->UpdateAfterLoginStatusChange(LoginStatus::USER);
OpenPowerButtonMenu(); OpenPowerButtonMenu();
......
...@@ -165,13 +165,14 @@ void PowerButtonMenuView::CreateItems() { ...@@ -165,13 +165,14 @@ void PowerButtonMenuView::CreateItems() {
const SessionControllerImpl* const session_controller = const SessionControllerImpl* const session_controller =
Shell::Get()->session_controller(); Shell::Get()->session_controller();
if (session_controller->CanLockScreen() && if (!session_controller->IsScreenLocked()) {
!session_controller->IsScreenLocked()) { if (session_controller->CanLockScreen()) {
lock_screen_item_ = new PowerButtonMenuItemView( lock_screen_item_ = new PowerButtonMenuItemView(
this, kSystemPowerButtonMenuLockScreenIcon, this, kSystemPowerButtonMenuLockScreenIcon,
l10n_util::GetStringUTF16( l10n_util::GetStringUTF16(
IDS_ASH_POWER_BUTTON_MENU_LOCK_SCREEN_BUTTON)); IDS_ASH_POWER_BUTTON_MENU_LOCK_SCREEN_BUTTON));
AddChildView(lock_screen_item_); AddChildView(lock_screen_item_);
}
feedback_item_ = new PowerButtonMenuItemView( feedback_item_ = new PowerButtonMenuItemView(
this, kSystemPowerButtonMenuFeedbackIcon, this, kSystemPowerButtonMenuFeedbackIcon,
...@@ -188,9 +189,9 @@ void PowerButtonMenuView::Layout() { ...@@ -188,9 +189,9 @@ void PowerButtonMenuView::Layout() {
gfx::Rect power_off_rect(rect); gfx::Rect power_off_rect(rect);
const int y_offset = const int y_offset =
kMenuItemVerticalPadding - PowerButtonMenuItemView::kItemBorderThickness; kMenuItemVerticalPadding - PowerButtonMenuItemView::kItemBorderThickness;
const int power_off_x_offset = kMenuItemHorizontalPadding - int x_offset = kMenuItemHorizontalPadding -
PowerButtonMenuItemView::kItemBorderThickness; PowerButtonMenuItemView::kItemBorderThickness;
power_off_rect.Offset(power_off_x_offset, y_offset); power_off_rect.Offset(x_offset, y_offset);
power_off_item_->SetBoundsRect(power_off_rect); power_off_item_->SetBoundsRect(power_off_rect);
if (sign_out_item_) { if (sign_out_item_) {
...@@ -198,27 +199,24 @@ void PowerButtonMenuView::Layout() { ...@@ -198,27 +199,24 @@ void PowerButtonMenuView::Layout() {
const int padding_between_items_with_border = const int padding_between_items_with_border =
kPaddingBetweenMenuItems - kPaddingBetweenMenuItems -
2 * PowerButtonMenuItemView::kItemBorderThickness; 2 * PowerButtonMenuItemView::kItemBorderThickness;
const int sign_out_x_offset = power_off_x_offset + item_size.width() + x_offset += item_size.width() + padding_between_items_with_border;
padding_between_items_with_border; sign_out_rect.Offset(x_offset, y_offset);
sign_out_rect.Offset(sign_out_x_offset, y_offset);
sign_out_item_->SetBoundsRect(sign_out_rect); sign_out_item_->SetBoundsRect(sign_out_rect);
if (lock_screen_item_) { if (lock_screen_item_) {
gfx::Rect lock_screen_rect(rect); gfx::Rect lock_screen_rect(rect);
const int lock_screen_x_offset = sign_out_x_offset + item_size.width() + x_offset += item_size.width() + padding_between_items_with_border;
padding_between_items_with_border; lock_screen_rect.Offset(x_offset, y_offset);
lock_screen_rect.Offset(lock_screen_x_offset, y_offset);
lock_screen_item_->SetBoundsRect(lock_screen_rect); lock_screen_item_->SetBoundsRect(lock_screen_rect);
}
if (feedback_item_) { if (feedback_item_) {
gfx::Rect feedback_rect(rect); gfx::Rect feedback_rect(rect);
feedback_rect.Offset(lock_screen_x_offset + item_size.width() + x_offset += item_size.width() + padding_between_items_with_border;
padding_between_items_with_border, feedback_rect.Offset(x_offset, y_offset);
y_offset);
feedback_item_->SetBoundsRect(feedback_rect); feedback_item_->SetBoundsRect(feedback_rect);
} }
} }
}
} }
void PowerButtonMenuView::OnPaint(gfx::Canvas* canvas) { void PowerButtonMenuView::OnPaint(gfx::Canvas* canvas) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment