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

Side by Side Diff: chrome/browser/ui/webui/signin/user_manager_screen_handler.cc

Issue 2664753002: Remove base::StringValue (Closed)
Patch Set: Rebase Created 3 years, 9 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/webui/signin/user_manager_screen_handler.h" 5 #include "chrome/browser/ui/webui/signin/user_manager_screen_handler.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <utility> 9 #include <utility>
10 #include <vector> 10 #include <vector>
(...skipping 304 matching lines...) Expand 10 before | Expand all | Expand 10 after
315 } 315 }
316 } 316 }
317 317
318 UserManagerScreenHandler::~UserManagerScreenHandler() { 318 UserManagerScreenHandler::~UserManagerScreenHandler() {
319 proximity_auth::ScreenlockBridge::Get()->SetLockHandler(NULL); 319 proximity_auth::ScreenlockBridge::Get()->SetLockHandler(NULL);
320 } 320 }
321 321
322 void UserManagerScreenHandler::ShowBannerMessage( 322 void UserManagerScreenHandler::ShowBannerMessage(
323 const base::string16& message) { 323 const base::string16& message) {
324 web_ui()->CallJavascriptFunctionUnsafe( 324 web_ui()->CallJavascriptFunctionUnsafe(
325 "login.AccountPickerScreen.showBannerMessage", 325 "login.AccountPickerScreen.showBannerMessage", base::Value(message));
326 base::StringValue(message));
327 } 326 }
328 327
329 void UserManagerScreenHandler::ShowUserPodCustomIcon( 328 void UserManagerScreenHandler::ShowUserPodCustomIcon(
330 const AccountId& account_id, 329 const AccountId& account_id,
331 const proximity_auth::ScreenlockBridge::UserPodCustomIconOptions& 330 const proximity_auth::ScreenlockBridge::UserPodCustomIconOptions&
332 icon_options) { 331 icon_options) {
333 std::unique_ptr<base::DictionaryValue> icon = 332 std::unique_ptr<base::DictionaryValue> icon =
334 icon_options.ToDictionaryValue(); 333 icon_options.ToDictionaryValue();
335 if (!icon || icon->empty()) 334 if (!icon || icon->empty())
336 return; 335 return;
337 web_ui()->CallJavascriptFunctionUnsafe( 336 web_ui()->CallJavascriptFunctionUnsafe(
338 "login.AccountPickerScreen.showUserPodCustomIcon", 337 "login.AccountPickerScreen.showUserPodCustomIcon",
339 base::StringValue(account_id.GetUserEmail()), *icon); 338 base::Value(account_id.GetUserEmail()), *icon);
340 } 339 }
341 340
342 void UserManagerScreenHandler::HideUserPodCustomIcon( 341 void UserManagerScreenHandler::HideUserPodCustomIcon(
343 const AccountId& account_id) { 342 const AccountId& account_id) {
344 web_ui()->CallJavascriptFunctionUnsafe( 343 web_ui()->CallJavascriptFunctionUnsafe(
345 "login.AccountPickerScreen.hideUserPodCustomIcon", 344 "login.AccountPickerScreen.hideUserPodCustomIcon",
346 base::StringValue(account_id.GetUserEmail())); 345 base::Value(account_id.GetUserEmail()));
347 } 346 }
348 347
349 void UserManagerScreenHandler::EnableInput() { 348 void UserManagerScreenHandler::EnableInput() {
350 // Nothing here because UI is not disabled when starting to authenticate. 349 // Nothing here because UI is not disabled when starting to authenticate.
351 } 350 }
352 351
353 void UserManagerScreenHandler::SetAuthType( 352 void UserManagerScreenHandler::SetAuthType(
354 const AccountId& account_id, 353 const AccountId& account_id,
355 proximity_auth::ScreenlockBridge::LockHandler::AuthType auth_type, 354 proximity_auth::ScreenlockBridge::LockHandler::AuthType auth_type,
356 const base::string16& auth_value) { 355 const base::string16& auth_value) {
357 if (GetAuthType(account_id) == 356 if (GetAuthType(account_id) ==
358 proximity_auth::ScreenlockBridge::LockHandler::FORCE_OFFLINE_PASSWORD) 357 proximity_auth::ScreenlockBridge::LockHandler::FORCE_OFFLINE_PASSWORD)
359 return; 358 return;
360 359
361 user_auth_type_map_[account_id.GetUserEmail()] = auth_type; 360 user_auth_type_map_[account_id.GetUserEmail()] = auth_type;
362 web_ui()->CallJavascriptFunctionUnsafe( 361 web_ui()->CallJavascriptFunctionUnsafe(
363 "login.AccountPickerScreen.setAuthType", 362 "login.AccountPickerScreen.setAuthType",
364 base::StringValue(account_id.GetUserEmail()), base::Value(auth_type), 363 base::Value(account_id.GetUserEmail()), base::Value(auth_type),
365 base::StringValue(auth_value)); 364 base::Value(auth_value));
366 } 365 }
367 366
368 proximity_auth::ScreenlockBridge::LockHandler::AuthType 367 proximity_auth::ScreenlockBridge::LockHandler::AuthType
369 UserManagerScreenHandler::GetAuthType(const AccountId& account_id) const { 368 UserManagerScreenHandler::GetAuthType(const AccountId& account_id) const {
370 const auto it = user_auth_type_map_.find(account_id.GetUserEmail()); 369 const auto it = user_auth_type_map_.find(account_id.GetUserEmail());
371 if (it == user_auth_type_map_.end()) 370 if (it == user_auth_type_map_.end())
372 return proximity_auth::ScreenlockBridge::LockHandler::OFFLINE_PASSWORD; 371 return proximity_auth::ScreenlockBridge::LockHandler::OFFLINE_PASSWORD;
373 return it->second; 372 return it->second;
374 } 373 }
375 374
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
493 base::FilePath profile_path; 492 base::FilePath profile_path;
494 if (!base::GetValueAsFilePath(*profile_path_value, &profile_path)) { 493 if (!base::GetValueAsFilePath(*profile_path_value, &profile_path)) {
495 NOTREACHED(); 494 NOTREACHED();
496 return; 495 return;
497 } 496 }
498 497
499 DCHECK(profiles::IsMultipleProfilesEnabled()); 498 DCHECK(profiles::IsMultipleProfilesEnabled());
500 499
501 if (profiles::AreAllNonChildNonSupervisedProfilesLocked()) { 500 if (profiles::AreAllNonChildNonSupervisedProfilesLocked()) {
502 web_ui()->CallJavascriptFunctionUnsafe( 501 web_ui()->CallJavascriptFunctionUnsafe(
503 "cr.webUIListenerCallback", 502 "cr.webUIListenerCallback", base::Value("show-error-dialog"),
504 base::StringValue("show-error-dialog"), 503 base::Value(l10n_util::GetStringUTF8(
505 base::StringValue(l10n_util::GetStringUTF8(
506 IDS_USER_MANAGER_REMOVE_PROFILE_PROFILES_LOCKED_ERROR))); 504 IDS_USER_MANAGER_REMOVE_PROFILE_PROFILES_LOCKED_ERROR)));
507 return; 505 return;
508 } 506 }
509 507
510 // The callback is run if the only profile has been deleted, and a new 508 // The callback is run if the only profile has been deleted, and a new
511 // profile has been created to replace it. 509 // profile has been created to replace it.
512 webui::DeleteProfileAtPath(profile_path, 510 webui::DeleteProfileAtPath(profile_path,
513 web_ui(), 511 web_ui(),
514 ProfileMetrics::DELETE_PROFILE_USER_MANAGER); 512 ProfileMetrics::DELETE_PROFILE_USER_MANAGER);
515 } 513 }
(...skipping 12 matching lines...) Expand all
528 526
529 void UserManagerScreenHandler::HandleAreAllProfilesLocked( 527 void UserManagerScreenHandler::HandleAreAllProfilesLocked(
530 const base::ListValue* args) { 528 const base::ListValue* args) {
531 std::string webui_callback_id; 529 std::string webui_callback_id;
532 CHECK_EQ(1U, args->GetSize()); 530 CHECK_EQ(1U, args->GetSize());
533 bool success = args->GetString(0, &webui_callback_id); 531 bool success = args->GetString(0, &webui_callback_id);
534 DCHECK(success); 532 DCHECK(success);
535 533
536 AllowJavascript(); 534 AllowJavascript();
537 ResolveJavascriptCallback( 535 ResolveJavascriptCallback(
538 base::StringValue(webui_callback_id), 536 base::Value(webui_callback_id),
539 base::Value(profiles::AreAllNonChildNonSupervisedProfilesLocked())); 537 base::Value(profiles::AreAllNonChildNonSupervisedProfilesLocked()));
540 } 538 }
541 539
542 void UserManagerScreenHandler::HandleLaunchUser(const base::ListValue* args) { 540 void UserManagerScreenHandler::HandleLaunchUser(const base::ListValue* args) {
543 const base::Value* profile_path_value = NULL; 541 const base::Value* profile_path_value = NULL;
544 if (!args->Get(0, &profile_path_value)) 542 if (!args->Get(0, &profile_path_value))
545 return; 543 return;
546 544
547 base::FilePath profile_path; 545 base::FilePath profile_path;
548 if (!base::GetValueAsFilePath(*profile_path_value, &profile_path)) 546 if (!base::GetValueAsFilePath(*profile_path_value, &profile_path))
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
596 const base::Value* profile_path_value; 594 const base::Value* profile_path_value;
597 595
598 if (!args->Get(0, &profile_path_value)) 596 if (!args->Get(0, &profile_path_value))
599 return; 597 return;
600 598
601 base::FilePath profile_path; 599 base::FilePath profile_path;
602 600
603 if (!base::GetValueAsFilePath(*profile_path_value, &profile_path)) 601 if (!base::GetValueAsFilePath(*profile_path_value, &profile_path))
604 return; 602 return;
605 603
606 base::StringValue return_profile_path(profile_path.value()); 604 base::Value return_profile_path(profile_path.value());
607 Profile* profile = g_browser_process->profile_manager()-> 605 Profile* profile = g_browser_process->profile_manager()->
608 GetProfileByPath(profile_path); 606 GetProfileByPath(profile_path);
609 607
610 if (!profile) 608 if (!profile)
611 return; 609 return;
612 610
613 if (!chrome::FindAnyBrowser(profile, true)) { 611 if (!chrome::FindAnyBrowser(profile, true)) {
614 // If no windows are open for that profile, the statistics in 612 // If no windows are open for that profile, the statistics in
615 // ProfileAttributesStorage are up to date. The statistics in 613 // ProfileAttributesStorage are up to date. The statistics in
616 // ProfileAttributesStorage are returned because the copy in user_pod_row.js 614 // ProfileAttributesStorage are returned because the copy in user_pod_row.js
617 // may be outdated. However, if some statistics are missing in 615 // may be outdated. However, if some statistics are missing in
618 // ProfileAttributesStorage (i.e. |item.success| is false), then the actual 616 // ProfileAttributesStorage (i.e. |item.success| is false), then the actual
619 // statistics are queried instead. 617 // statistics are queried instead.
620 base::DictionaryValue return_value; 618 base::DictionaryValue return_value;
621 profiles::ProfileCategoryStats stats = 619 profiles::ProfileCategoryStats stats =
622 ProfileStatistics::GetProfileStatisticsFromAttributesStorage( 620 ProfileStatistics::GetProfileStatisticsFromAttributesStorage(
623 profile_path); 621 profile_path);
624 bool stats_success = true; 622 bool stats_success = true;
625 for (const auto& item : stats) { 623 for (const auto& item : stats) {
626 std::unique_ptr<base::DictionaryValue> stat(new base::DictionaryValue); 624 std::unique_ptr<base::DictionaryValue> stat(new base::DictionaryValue);
627 stat->SetIntegerWithoutPathExpansion("count", item.count); 625 stat->SetIntegerWithoutPathExpansion("count", item.count);
628 stat->SetBooleanWithoutPathExpansion("success", item.success); 626 stat->SetBooleanWithoutPathExpansion("success", item.success);
629 return_value.SetWithoutPathExpansion(item.category, std::move(stat)); 627 return_value.SetWithoutPathExpansion(item.category, std::move(stat));
630 stats_success &= item.success; 628 stats_success &= item.success;
631 } 629 }
632 if (stats_success) { 630 if (stats_success) {
633 web_ui()->CallJavascriptFunctionUnsafe( 631 web_ui()->CallJavascriptFunctionUnsafe("updateRemoveWarningDialog",
634 "updateRemoveWarningDialog", base::StringValue(profile_path.value()), 632 base::Value(profile_path.value()),
635 return_value); 633 return_value);
636 return; 634 return;
637 } 635 }
638 } 636 }
639 637
640 ProfileStatisticsFactory::GetForProfile(profile)->GatherStatistics( 638 ProfileStatisticsFactory::GetForProfile(profile)->GatherStatistics(
641 base::Bind( 639 base::Bind(
642 &UserManagerScreenHandler::RemoveUserDialogLoadStatsCallback, 640 &UserManagerScreenHandler::RemoveUserDialogLoadStatsCallback,
643 weak_ptr_factory_.GetWeakPtr(), profile_path)); 641 weak_ptr_factory_.GetWeakPtr(), profile_path));
644 } 642 }
645 643
646 void UserManagerScreenHandler::RemoveUserDialogLoadStatsCallback( 644 void UserManagerScreenHandler::RemoveUserDialogLoadStatsCallback(
647 base::FilePath profile_path, 645 base::FilePath profile_path,
648 profiles::ProfileCategoryStats result) { 646 profiles::ProfileCategoryStats result) {
649 // Copy result into return_value. 647 // Copy result into return_value.
650 base::DictionaryValue return_value; 648 base::DictionaryValue return_value;
651 for (const auto& item : result) { 649 for (const auto& item : result) {
652 std::unique_ptr<base::DictionaryValue> stat(new base::DictionaryValue); 650 std::unique_ptr<base::DictionaryValue> stat(new base::DictionaryValue);
653 stat->SetIntegerWithoutPathExpansion("count", item.count); 651 stat->SetIntegerWithoutPathExpansion("count", item.count);
654 stat->SetBooleanWithoutPathExpansion("success", item.success); 652 stat->SetBooleanWithoutPathExpansion("success", item.success);
655 return_value.SetWithoutPathExpansion(item.category, std::move(stat)); 653 return_value.SetWithoutPathExpansion(item.category, std::move(stat));
656 } 654 }
657 web_ui()->CallJavascriptFunctionUnsafe( 655 web_ui()->CallJavascriptFunctionUnsafe("updateRemoveWarningDialog",
658 "updateRemoveWarningDialog", base::StringValue(profile_path.value()), 656 base::Value(profile_path.value()),
659 return_value); 657 return_value);
660 } 658 }
661 659
662 void UserManagerScreenHandler::HandleGetRemoveWarningDialogMessage( 660 void UserManagerScreenHandler::HandleGetRemoveWarningDialogMessage(
663 const base::ListValue* args) { 661 const base::ListValue* args) {
664 const base::DictionaryValue* arg; 662 const base::DictionaryValue* arg;
665 if (!args->GetDictionary(0, &arg)) 663 if (!args->GetDictionary(0, &arg))
666 return; 664 return;
667 665
668 std::string profile_path(""); 666 std::string profile_path("");
669 bool is_synced_user = false; 667 bool is_synced_user = false;
670 bool has_errors = false; 668 bool has_errors = false;
671 669
672 if (!arg->GetString("profilePath", &profile_path) || 670 if (!arg->GetString("profilePath", &profile_path) ||
673 !arg->GetBoolean("isSyncedUser", &is_synced_user) || 671 !arg->GetBoolean("isSyncedUser", &is_synced_user) ||
674 !arg->GetBoolean("hasErrors", &has_errors)) 672 !arg->GetBoolean("hasErrors", &has_errors))
675 return; 673 return;
676 674
677 int total_count = 0; 675 int total_count = 0;
678 if (!arg->GetInteger("totalCount", &total_count)) 676 if (!arg->GetInteger("totalCount", &total_count))
679 return; 677 return;
680 678
681 int message_id = is_synced_user ? 679 int message_id = is_synced_user ?
682 (has_errors ? IDS_LOGIN_POD_USER_REMOVE_WARNING_SYNC_WITH_ERRORS : 680 (has_errors ? IDS_LOGIN_POD_USER_REMOVE_WARNING_SYNC_WITH_ERRORS :
683 IDS_LOGIN_POD_USER_REMOVE_WARNING_SYNC) : 681 IDS_LOGIN_POD_USER_REMOVE_WARNING_SYNC) :
684 (has_errors ? IDS_LOGIN_POD_USER_REMOVE_WARNING_NONSYNC_WITH_ERRORS : 682 (has_errors ? IDS_LOGIN_POD_USER_REMOVE_WARNING_NONSYNC_WITH_ERRORS :
685 IDS_LOGIN_POD_USER_REMOVE_WARNING_NONSYNC); 683 IDS_LOGIN_POD_USER_REMOVE_WARNING_NONSYNC);
686 684
687 base::StringValue message = base::StringValue( 685 base::Value message =
688 l10n_util::GetPluralStringFUTF16(message_id, total_count)); 686 base::Value(l10n_util::GetPluralStringFUTF16(message_id, total_count));
689 687
690 web_ui()->CallJavascriptFunctionUnsafe("updateRemoveWarningDialogSetMessage", 688 web_ui()->CallJavascriptFunctionUnsafe("updateRemoveWarningDialogSetMessage",
691 base::StringValue(profile_path), 689 base::Value(profile_path), message,
692 message, base::Value(total_count)); 690 base::Value(total_count));
693 } 691 }
694 692
695 void UserManagerScreenHandler::OnGetTokenInfoResponse( 693 void UserManagerScreenHandler::OnGetTokenInfoResponse(
696 std::unique_ptr<base::DictionaryValue> token_info) { 694 std::unique_ptr<base::DictionaryValue> token_info) {
697 // Password is unchanged so user just mistyped it. Ask again. 695 // Password is unchanged so user just mistyped it. Ask again.
698 ReportAuthenticationResult(false, ProfileMetrics::AUTH_FAILED); 696 ReportAuthenticationResult(false, ProfileMetrics::AUTH_FAILED);
699 } 697 }
700 698
701 void UserManagerScreenHandler::OnOAuthError() { 699 void UserManagerScreenHandler::OnOAuthError() {
702 // Password has changed. Go through online signin flow. 700 // Password has changed. Go through online signin flow.
(...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after
991 989
992 if (success) { 990 if (success) {
993 profiles::SwitchToProfile( 991 profiles::SwitchToProfile(
994 authenticating_profile_path_, true, 992 authenticating_profile_path_, true,
995 base::Bind(&UserManagerScreenHandler::OnSwitchToProfileComplete, 993 base::Bind(&UserManagerScreenHandler::OnSwitchToProfileComplete,
996 weak_ptr_factory_.GetWeakPtr()), 994 weak_ptr_factory_.GetWeakPtr()),
997 ProfileMetrics::SWITCH_PROFILE_UNLOCK); 995 ProfileMetrics::SWITCH_PROFILE_UNLOCK);
998 } else { 996 } else {
999 web_ui()->CallJavascriptFunctionUnsafe( 997 web_ui()->CallJavascriptFunctionUnsafe(
1000 "cr.ui.UserManager.showSignInError", base::Value(0), 998 "cr.ui.UserManager.showSignInError", base::Value(0),
1001 base::StringValue(l10n_util::GetStringUTF8( 999 base::Value(l10n_util::GetStringUTF8(
1002 auth == ProfileMetrics::AUTH_FAILED_OFFLINE 1000 auth == ProfileMetrics::AUTH_FAILED_OFFLINE
1003 ? IDS_LOGIN_ERROR_AUTHENTICATING_OFFLINE 1001 ? IDS_LOGIN_ERROR_AUTHENTICATING_OFFLINE
1004 : IDS_LOGIN_ERROR_AUTHENTICATING)), 1002 : IDS_LOGIN_ERROR_AUTHENTICATING)),
1005 base::StringValue(""), base::Value(0)); 1003 base::Value(""), base::Value(0));
1006 } 1004 }
1007 } 1005 }
1008 1006
1009 void UserManagerScreenHandler::OnBrowserWindowReady(Browser* browser) { 1007 void UserManagerScreenHandler::OnBrowserWindowReady(Browser* browser) {
1010 DCHECK(browser); 1008 DCHECK(browser);
1011 DCHECK(browser->window()); 1009 DCHECK(browser->window());
1012 1010
1013 // Unlock the profile after browser opens so startup can read the lock bit. 1011 // Unlock the profile after browser opens so startup can read the lock bit.
1014 // Any necessary authentication must have been successful to reach this point. 1012 // Any necessary authentication must have been successful to reach this point.
1015 if (!browser->profile()->IsGuestSession()) { 1013 if (!browser->profile()->IsGuestSession()) {
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
1053 Profile* profile, Profile::CreateStatus profile_create_status) { 1051 Profile* profile, Profile::CreateStatus profile_create_status) {
1054 Browser* browser = chrome::FindAnyBrowser(profile, false); 1052 Browser* browser = chrome::FindAnyBrowser(profile, false);
1055 if (browser && browser->window()) { 1053 if (browser && browser->window()) {
1056 OnBrowserWindowReady(browser); 1054 OnBrowserWindowReady(browser);
1057 } else { 1055 } else {
1058 registrar_.Add(this, 1056 registrar_.Add(this,
1059 chrome::NOTIFICATION_BROWSER_WINDOW_READY, 1057 chrome::NOTIFICATION_BROWSER_WINDOW_READY,
1060 content::NotificationService::AllSources()); 1058 content::NotificationService::AllSources());
1061 } 1059 }
1062 } 1060 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698