| 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 21aa3ede166300d5f68cdb60920c5508faf74525..c924bd56133bd4a6d93793af1fe4cdd304a2bbcb 100644
|
| --- a/chrome/browser/ui/webui/signin/user_manager_screen_handler.cc
|
| +++ b/chrome/browser/ui/webui/signin/user_manager_screen_handler.cc
|
| @@ -71,6 +71,7 @@ const char kKeyIsDesktop[] = "isDesktopUser";
|
| const char kKeyAvatarUrl[] = "userImage";
|
| const char kKeyNeedsSignin[] = "needsSignin";
|
| const char kKeyHasLocalCreds[] = "hasLocalCreds";
|
| +const char kKeyIsProfileLoaded[] = "isProfileLoaded";
|
|
|
| // JS API callback names.
|
| const char kJsApiUserManagerInitialize[] = "userManagerInitialize";
|
| @@ -82,7 +83,8 @@ const char kJsApiUserManagerRemoveUser[] = "removeUser";
|
| const char kJsApiUserManagerAttemptUnlock[] = "attemptUnlock";
|
| const char kJsApiUserManagerLogRemoveUserWarningShown[] =
|
| "logRemoveUserWarningShown";
|
| -
|
| +const char kJsApiUserManagerRemoveUserWarningLoadStats[] =
|
| + "removeUserWarningLoadStats";
|
| const size_t kAvatarIconSize = 180;
|
| const int kMaxOAuthRetries = 3;
|
|
|
| @@ -555,6 +557,49 @@ void UserManagerScreenHandler::HandleHardlockUserPod(
|
| HideUserPodCustomIcon(email);
|
| }
|
|
|
| +void UserManagerScreenHandler::HandleRemoveUserWarningLoadStats(
|
| + const base::ListValue* args) {
|
| + const base::Value* profile_path_value;
|
| +
|
| + if (!args->Get(0, &profile_path_value))
|
| + return;
|
| +
|
| + base::FilePath profile_path;
|
| +
|
| + if (!base::GetValueAsFilePath(*profile_path_value, &profile_path))
|
| + return;
|
| +
|
| + base::StringValue return_profile_path(profile_path.value());
|
| + Profile* profile = g_browser_process->profile_manager()->
|
| + GetProfileByPath(profile_path);
|
| +
|
| + if (!profile)
|
| + return;
|
| +
|
| + profiles::GetProfileStatistics(
|
| + profile,
|
| + base::Bind(
|
| + &UserManagerScreenHandler::RemoveUserDialogLoadStatsCallback,
|
| + weak_ptr_factory_.GetWeakPtr(), profile_path),
|
| + &tracker_);
|
| +}
|
| +
|
| +void UserManagerScreenHandler::RemoveUserDialogLoadStatsCallback(
|
| + base::FilePath profile_path,
|
| + profiles::ProfileCategoryStats result) {
|
| + // Copy result into return_value.
|
| + base::StringValue return_profile_path(profile_path.value());
|
| + base::DictionaryValue return_value;
|
| + for (const auto& item : result) {
|
| + base::DictionaryValue* stat = new base::DictionaryValue();
|
| + stat->SetIntegerWithoutPathExpansion("count", item.count);
|
| + stat->SetBooleanWithoutPathExpansion("success", item.success);
|
| + return_value.SetWithoutPathExpansion(item.category, stat);
|
| + }
|
| + web_ui()->CallJavascriptFunction("updateRemoveWarningDialog",
|
| + return_profile_path, return_value);
|
| +}
|
| +
|
| void UserManagerScreenHandler::OnGetTokenInfoResponse(
|
| scoped_ptr<base::DictionaryValue> token_info) {
|
| // Password is unchanged so user just mistyped it. Ask again.
|
| @@ -599,6 +644,9 @@ void UserManagerScreenHandler::RegisterMessages() {
|
| base::Unretained(this)));
|
| web_ui()->RegisterMessageCallback(kJsApiUserManagerLogRemoveUserWarningShown,
|
| base::Bind(&HandleLogRemoveUserWarningShown));
|
| + web_ui()->RegisterMessageCallback(kJsApiUserManagerRemoveUserWarningLoadStats,
|
| + base::Bind(&UserManagerScreenHandler::HandleRemoveUserWarningLoadStats,
|
| + base::Unretained(this)));
|
|
|
| const content::WebUI::MessageCallback& kDoNothingCallback =
|
| base::Bind(&HandleAndDoNothing);
|
| @@ -655,8 +703,26 @@ void UserManagerScreenHandler::GetLocalizedValues(
|
| // For AccountPickerScreen, the remove user warning overlay.
|
| localized_strings->SetString("removeUserWarningButtonTitle",
|
| l10n_util::GetStringUTF16(IDS_LOGIN_POD_USER_REMOVE_WARNING_BUTTON));
|
| - localized_strings->SetString("removeUserWarningText",
|
| - l10n_util::GetStringUTF16(IDS_LOGIN_POD_USER_REMOVE_WARNING));
|
| + localized_strings->SetString("removeUserWarningTextNonSync",
|
| + l10n_util::GetStringUTF16(IDS_LOGIN_POD_USER_REMOVE_WARNING_NONSYNC));
|
| + localized_strings->SetString("removeUserWarningTextNonSyncNoStats",
|
| + l10n_util::GetStringUTF16(
|
| + IDS_LOGIN_POD_USER_REMOVE_WARNING_NONSYNC_NOSTATS));
|
| + localized_strings->SetString("removeUserWarningTextHistory",
|
| + l10n_util::GetStringUTF16(IDS_LOGIN_POD_USER_REMOVE_WARNING_HISTORY));
|
| + localized_strings->SetString("removeUserWarningTextPasswords",
|
| + l10n_util::GetStringUTF16(IDS_LOGIN_POD_USER_REMOVE_WARNING_PASSWORDS));
|
| + localized_strings->SetString("removeUserWarningTextBookmarks",
|
| + l10n_util::GetStringUTF16(IDS_LOGIN_POD_USER_REMOVE_WARNING_BOOKMARKS));
|
| + localized_strings->SetString("removeUserWarningTextSettings",
|
| + l10n_util::GetStringUTF16(IDS_LOGIN_POD_USER_REMOVE_WARNING_SETTINGS));
|
| + localized_strings->SetString("removeUserWarningTextCalculating",
|
| + l10n_util::GetStringUTF16(IDS_LOGIN_POD_USER_REMOVE_WARNING_CALCULATING));
|
| + localized_strings->SetString("removeUserWarningTextSync",
|
| + l10n_util::GetStringUTF16(IDS_LOGIN_POD_USER_REMOVE_WARNING_SYNC));
|
| + localized_strings->SetString("removeUserWarningTextSyncNoStats",
|
| + l10n_util::GetStringUTF16(
|
| + IDS_LOGIN_POD_USER_REMOVE_WARNING_SYNC_NOSTATS));
|
| localized_strings->SetString("removeLegacySupervisedUserWarningText",
|
| l10n_util::GetStringFUTF16(
|
| IDS_LOGIN_POD_LEGACY_SUPERVISED_USER_REMOVE_WARNING,
|
| @@ -758,6 +824,12 @@ void UserManagerScreenHandler::SendUserList() {
|
| profile_value->SetString(
|
| kKeyAvatarUrl, GetAvatarImageAtIndex(i, info_cache));
|
|
|
| + // GetProfileByPath returns a pointer if the profile is fully loaded, NULL
|
| + // otherwise.
|
| + Profile* profile =
|
| + g_browser_process->profile_manager()->GetProfileByPath(profile_path);
|
| + profile_value->SetBoolean(kKeyIsProfileLoaded, profile != nullptr);
|
| +
|
| users_list.Append(profile_value);
|
| }
|
|
|
|
|