Fix VisitDesktopCommand for more than 3 users
When running the multi user mode on Chrome OS, windows can visit
another user's desktop. This was implemented for up to 3 users and
didn't work correctly when more than 3 users were signed in. Since the
upper limit is 5 users, this cl adds 2 command_ids enabling it for up
to 5 users.
Bug: 940461
Change-Id: I884ce02440a44c0deba449e039da66aa8ceed334
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2036055
Commit-Queue: Anina Koehler <[email protected]>
Reviewed-by: Xiyuan Xia <[email protected]>
Reviewed-by: David Roger <[email protected]>
Reviewed-by: Alexander Hendrich <[email protected]>
Cr-Commit-Position: refs/heads/master@{#743916}
diff --git a/chrome/browser/ui/browser_command_controller.cc b/chrome/browser/ui/browser_command_controller.cc
index 48713d1..18591ab 100644
--- a/chrome/browser/ui/browser_command_controller.cc
+++ b/chrome/browser/ui/browser_command_controller.cc
@@ -80,6 +80,7 @@
#include "chrome/browser/platform_util.h"
#include "chrome/browser/ui/ash/multi_user/multi_user_context_menu.h"
#include "chrome/browser/ui/browser_commands_chromeos.h"
+#include "components/session_manager/core/session_manager.h"
#endif
#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
@@ -472,6 +473,8 @@
#if defined(OS_CHROMEOS)
case IDC_VISIT_DESKTOP_OF_LRU_USER_2:
case IDC_VISIT_DESKTOP_OF_LRU_USER_3:
+ case IDC_VISIT_DESKTOP_OF_LRU_USER_4:
+ case IDC_VISIT_DESKTOP_OF_LRU_USER_5:
ExecuteVisitDesktopCommand(id, window()->GetNativeWindow());
break;
#endif
@@ -958,8 +961,19 @@
command_updater_.UpdateCommandEnabled(IDC_DEBUG_FRAME_TOGGLE, true);
#if defined(OS_CHROMEOS)
command_updater_.UpdateCommandEnabled(IDC_MINIMIZE_WINDOW, true);
+ // The VisitDesktop command is only supported for up to 5 logged in users
+ // because that's the max number of user sessions. If that number is increased
+ // the IDC_VISIT_DESKTOP_OF_LRU_USER_ command ids should be updated as well.
+ // crbug.com/940461
+ static_assert(
+ session_manager::kMaximumNumberOfUserSessions <=
+ IDC_VISIT_DESKTOP_OF_LRU_USER_LAST -
+ IDC_VISIT_DESKTOP_OF_LRU_USER_NEXT + 2,
+ "The max number of user sessions exceeds the number of users supported.");
command_updater_.UpdateCommandEnabled(IDC_VISIT_DESKTOP_OF_LRU_USER_2, true);
command_updater_.UpdateCommandEnabled(IDC_VISIT_DESKTOP_OF_LRU_USER_3, true);
+ command_updater_.UpdateCommandEnabled(IDC_VISIT_DESKTOP_OF_LRU_USER_4, true);
+ command_updater_.UpdateCommandEnabled(IDC_VISIT_DESKTOP_OF_LRU_USER_5, true);
#endif
#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
command_updater_.UpdateCommandEnabled(IDC_MINIMIZE_WINDOW, true);