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

Unified Diff: chrome/browser/ui/webui/signin/user_manager_screen_handler.cc

Issue 2025433002: MD User Manager: Display error message when all profiles are locked. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed comment Created 4 years, 7 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: chrome/browser/ui/webui/signin/user_manager_screen_handler.cc
diff --git a/chrome/browser/ui/webui/signin/user_manager_screen_handler.cc b/chrome/browser/ui/webui/signin/user_manager_screen_handler.cc
index 9fef1a147ed3dc52f8e0e4e4d5052785e3c128f4..96996852fbda75502929b68b60a7945fa56900b0 100644
--- a/chrome/browser/ui/webui/signin/user_manager_screen_handler.cc
+++ b/chrome/browser/ui/webui/signin/user_manager_screen_handler.cc
@@ -99,6 +99,8 @@ const char kJsApiUserManagerRemoveUserWarningLoadStats[] =
"removeUserWarningLoadStats";
const char kJsApiUserManagerGetRemoveWarningDialogMessage[] =
"getRemoveWarningDialogMessage";
+const char kJsApiUserManagerAreAllProfilesLocked[] =
+ "areAllProfilesLocked";
const size_t kAvatarIconSize = 180;
const int kMaxOAuthRetries = 3;
@@ -465,6 +467,15 @@ void UserManagerScreenHandler::HandleRemoveUser(const base::ListValue* args) {
DCHECK(profiles::IsMultipleProfilesEnabled());
+ if (profiles::AreAllProfilesLocked()) {
+ web_ui()->CallJavascriptFunction(
+ "cr.webUIListenerCallback",
+ base::StringValue("show-error-dialog"),
+ base::StringValue(l10n_util::GetStringUTF8(
+ IDS_USER_MANAGER_REMOVE_PROFILE_PROFILES_LOCKED_ERROR)));
+ return;
+ }
+
// The callback is run if the only profile has been deleted, and a new
// profile has been created to replace it.
webui::DeleteProfileAtPath(profile_path,
@@ -484,6 +495,20 @@ void UserManagerScreenHandler::HandleLaunchGuest(const base::ListValue* args) {
}
}
+void UserManagerScreenHandler::HandleAreAllProfilesLocked(
+ const base::ListValue* args) {
+ std::string webui_callback_id;
+ CHECK_EQ(1U, args->GetSize());
+ bool success = args->GetString(0, &webui_callback_id);
+ DCHECK(success);
+
+ web_ui()->CallJavascriptFunction(
+ "cr.webUIResponse",
+ base::StringValue(webui_callback_id),
+ base::FundamentalValue(true),
+ base::FundamentalValue(profiles::AreAllProfilesLocked()));
+}
+
void UserManagerScreenHandler::HandleLaunchUser(const base::ListValue* args) {
const base::Value* profile_path_value = NULL;
if (!args->Get(0, &profile_path_value))
@@ -689,6 +714,10 @@ void UserManagerScreenHandler::RegisterMessages() {
kJsApiUserManagerGetRemoveWarningDialogMessage,
base::Bind(&UserManagerScreenHandler::HandleGetRemoveWarningDialogMessage,
base::Unretained(this)));
+ web_ui()->RegisterMessageCallback(
+ kJsApiUserManagerAreAllProfilesLocked,
+ base::Bind(&UserManagerScreenHandler::HandleAreAllProfilesLocked,
+ base::Unretained(this)));
const content::WebUI::MessageCallback& kDoNothingCallback =
base::Bind(&HandleAndDoNothing);
@@ -826,6 +855,15 @@ void UserManagerScreenHandler::GetLocalizedValues(
base::string16());
localized_strings->SetString("multiProfilesOwnerPrimaryOnlyMsg",
base::string16());
+
+ // Error message when trying to add a profile while all profiles are locked.
+ localized_strings->SetString("addProfileAllProfilesLockedError",
+ l10n_util::GetStringUTF16(
+ IDS_USER_MANAGER_ADD_PROFILE_PROFILES_LOCKED_ERROR));
+ // Error message when trying to browse as guest while all profiles are locked.
+ localized_strings->SetString("browseAsGuestAllProfilesLockedError",
+ l10n_util::GetStringUTF16(
+ IDS_USER_MANAGER_GO_GUEST_PROFILES_LOCKED_ERROR));
}
void UserManagerScreenHandler::SendUserList() {

Powered by Google App Engine
This is Rietveld 408576698