Chromium Code Reviews| 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 d18f88b2baddc25eee811fba9a96566109ed005f..066db76c03859c9ad5562323de2e0e57a4805186 100644 |
| --- a/chrome/browser/ui/webui/signin/user_manager_screen_handler.cc |
| +++ b/chrome/browser/ui/webui/signin/user_manager_screen_handler.cc |
| @@ -81,7 +81,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; |
| @@ -548,6 +549,50 @@ 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)) { |
| + base::FilePath* profile_path = new base::FilePath(); |
|
Mike Lerman
2015/08/05 19:26:09
Please create this on the stack rather the using n
lwchkg
2015/08/06 04:32:59
Acknowledged. I was worrying too much about copy a
|
| + |
| + if (base::GetValueAsFilePath(*profile_path_value, profile_path)) { |
| + base::StringValue return_profile_path(profile_path->value()); |
| + Profile* profile = g_browser_process->profile_manager()-> |
| + GetProfileByPath(*profile_path); |
| + |
| + if (profile) { |
| + profiles::GetProfileStatistics( |
| + profile, |
| + base::Bind( |
| + &UserManagerScreenHandler::RemoveUserDialogLoadStatsCallback, |
| + weak_ptr_factory_.GetWeakPtr(), base::Owned(profile_path)), |
| + &tracker); |
| + web_ui()->CallJavascriptFunction("updateRemoveWarningDialogHasNoStats", |
| + return_profile_path, base::FundamentalValue(false)); |
| + return; |
| + } |
| + web_ui()->CallJavascriptFunction("updateRemoveWarningDialogHasNoStats", |
| + return_profile_path, base::FundamentalValue(true)); |
| + } |
| + delete profile_path; |
| + } |
| +} |
| + |
| +void UserManagerScreenHandler::RemoveUserDialogLoadStatsCallback( |
| + const base::FilePath* profile_path, |
| + profiles::ProfileStatisticsValues result) { |
| + // Copy result into return_value. |
| + base::StringValue return_profile_path(profile_path->value()); |
| + base::DictionaryValue return_value; |
| + for (profiles::ProfileStatisticsValues::const_iterator |
| + iter = result.begin(); iter != result.end(); iter++) { |
| + return_value.SetIntegerWithoutPathExpansion(iter->first, iter->second); |
| + } |
| + 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. |
| @@ -592,6 +637,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); |
| @@ -648,8 +696,29 @@ 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("removeUserWarningManageLinkSync", |
| + l10n_util::GetStringUTF16( |
| + IDS_LOGIN_POD_USER_REMOVE_WARNING_MANAGE_LINK_SYNC)); |
| localized_strings->SetString("removeLegacySupervisedUserWarningText", |
| l10n_util::GetStringFUTF16( |
| IDS_LOGIN_POD_LEGACY_SUPERVISED_USER_REMOVE_WARNING, |