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

Side by Side Diff: chrome/browser/profiles/profile_info_cache.cc

Issue 2845113002: Remove raw base::DictionaryValue::SetWithoutPathExpansion in //chrome (Closed)
Patch Set: Address comments Created 3 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/profiles/profile_info_cache.h" 5 #include "chrome/browser/profiles/profile_info_cache.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <memory> 8 #include <memory>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
194 info->SetString(kAvatarIconKey, 194 info->SetString(kAvatarIconKey,
195 profiles::GetDefaultAvatarIconUrl(icon_index)); 195 profiles::GetDefaultAvatarIconUrl(icon_index));
196 // Default value for whether background apps are running is false. 196 // Default value for whether background apps are running is false.
197 info->SetBoolean(kBackgroundAppsKey, false); 197 info->SetBoolean(kBackgroundAppsKey, false);
198 info->SetString(kSupervisedUserId, supervised_user_id); 198 info->SetString(kSupervisedUserId, supervised_user_id);
199 info->SetBoolean(kIsOmittedFromProfileListKey, !supervised_user_id.empty()); 199 info->SetBoolean(kIsOmittedFromProfileListKey, !supervised_user_id.empty());
200 info->SetBoolean(kProfileIsEphemeral, false); 200 info->SetBoolean(kProfileIsEphemeral, false);
201 info->SetBoolean(kIsUsingDefaultNameKey, IsDefaultProfileName(name)); 201 info->SetBoolean(kIsUsingDefaultNameKey, IsDefaultProfileName(name));
202 // Assume newly created profiles use a default avatar. 202 // Assume newly created profiles use a default avatar.
203 info->SetBoolean(kIsUsingDefaultAvatarKey, true); 203 info->SetBoolean(kIsUsingDefaultAvatarKey, true);
204 cache->SetWithoutPathExpansion(key, info.release()); 204 cache->SetWithoutPathExpansion(key, std::move(info));
205 205
206 sorted_keys_.insert(FindPositionForProfile(key, name), key); 206 sorted_keys_.insert(FindPositionForProfile(key, name), key);
207 profile_attributes_entries_[user_data_dir_.AppendASCII(key).value()] = 207 profile_attributes_entries_[user_data_dir_.AppendASCII(key).value()] =
208 std::unique_ptr<ProfileAttributesEntry>(); 208 std::unique_ptr<ProfileAttributesEntry>();
209 209
210 if (!disable_avatar_download_for_testing_) 210 if (!disable_avatar_download_for_testing_)
211 DownloadHighResAvatarIfNeeded(icon_index, profile_path); 211 DownloadHighResAvatarIfNeeded(icon_index, profile_path);
212 212
213 for (auto& observer : observer_list_) 213 for (auto& observer : observer_list_)
214 observer.OnProfileAdded(profile_path); 214 observer.OnProfileAdded(profile_path);
(...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after
529 529
530 void ProfileInfoCache::SetProfileActiveTimeAtIndex(size_t index) { 530 void ProfileInfoCache::SetProfileActiveTimeAtIndex(size_t index) {
531 if (base::Time::Now() - GetProfileActiveTimeAtIndex(index) < 531 if (base::Time::Now() - GetProfileActiveTimeAtIndex(index) <
532 base::TimeDelta::FromHours(1)) { 532 base::TimeDelta::FromHours(1)) {
533 return; 533 return;
534 } 534 }
535 535
536 std::unique_ptr<base::DictionaryValue> info( 536 std::unique_ptr<base::DictionaryValue> info(
537 GetInfoForProfileAtIndex(index)->DeepCopy()); 537 GetInfoForProfileAtIndex(index)->DeepCopy());
538 info->SetDouble(kActiveTimeKey, base::Time::Now().ToDoubleT()); 538 info->SetDouble(kActiveTimeKey, base::Time::Now().ToDoubleT());
539 // This takes ownership of |info|. 539 SetInfoForProfileAtIndex(index, std::move(info));
540 SetInfoForProfileAtIndex(index, info.release());
541 } 540 }
542 541
543 void ProfileInfoCache::SetNameOfProfileAtIndex(size_t index, 542 void ProfileInfoCache::SetNameOfProfileAtIndex(size_t index,
544 const base::string16& name) { 543 const base::string16& name) {
545 std::unique_ptr<base::DictionaryValue> info( 544 std::unique_ptr<base::DictionaryValue> info(
546 GetInfoForProfileAtIndex(index)->DeepCopy()); 545 GetInfoForProfileAtIndex(index)->DeepCopy());
547 base::string16 current_name; 546 base::string16 current_name;
548 info->GetString(kNameKey, &current_name); 547 info->GetString(kNameKey, &current_name);
549 if (name == current_name) 548 if (name == current_name)
550 return; 549 return;
551 550
552 base::string16 old_display_name = GetNameOfProfileAtIndex(index); 551 base::string16 old_display_name = GetNameOfProfileAtIndex(index);
553 info->SetString(kNameKey, name); 552 info->SetString(kNameKey, name);
554 553
555 // This takes ownership of |info|. 554 SetInfoForProfileAtIndex(index, std::move(info));
556 SetInfoForProfileAtIndex(index, info.release());
557 555
558 base::string16 new_display_name = GetNameOfProfileAtIndex(index); 556 base::string16 new_display_name = GetNameOfProfileAtIndex(index);
559 base::FilePath profile_path = GetPathOfProfileAtIndex(index); 557 base::FilePath profile_path = GetPathOfProfileAtIndex(index);
560 UpdateSortForProfileIndex(index); 558 UpdateSortForProfileIndex(index);
561 559
562 if (old_display_name != new_display_name) { 560 if (old_display_name != new_display_name) {
563 for (auto& observer : observer_list_) 561 for (auto& observer : observer_list_)
564 observer.OnProfileNameChanged(profile_path, old_display_name); 562 observer.OnProfileNameChanged(profile_path, old_display_name);
565 } 563 }
566 } 564 }
567 565
568 void ProfileInfoCache::SetShortcutNameOfProfileAtIndex( 566 void ProfileInfoCache::SetShortcutNameOfProfileAtIndex(
569 size_t index, 567 size_t index,
570 const base::string16& shortcut_name) { 568 const base::string16& shortcut_name) {
571 if (shortcut_name == GetShortcutNameOfProfileAtIndex(index)) 569 if (shortcut_name == GetShortcutNameOfProfileAtIndex(index))
572 return; 570 return;
573 std::unique_ptr<base::DictionaryValue> info( 571 std::unique_ptr<base::DictionaryValue> info(
574 GetInfoForProfileAtIndex(index)->DeepCopy()); 572 GetInfoForProfileAtIndex(index)->DeepCopy());
575 info->SetString(kShortcutNameKey, shortcut_name); 573 info->SetString(kShortcutNameKey, shortcut_name);
576 // This takes ownership of |info|. 574 SetInfoForProfileAtIndex(index, std::move(info));
577 SetInfoForProfileAtIndex(index, info.release());
578 } 575 }
579 576
580 void ProfileInfoCache::SetAuthInfoOfProfileAtIndex( 577 void ProfileInfoCache::SetAuthInfoOfProfileAtIndex(
581 size_t index, 578 size_t index,
582 const std::string& gaia_id, 579 const std::string& gaia_id,
583 const base::string16& user_name) { 580 const base::string16& user_name) {
584 // If both gaia_id and username are unchanged, abort early. 581 // If both gaia_id and username are unchanged, abort early.
585 if (gaia_id == GetGAIAIdOfProfileAtIndex(index) && 582 if (gaia_id == GetGAIAIdOfProfileAtIndex(index) &&
586 user_name == GetUserNameOfProfileAtIndex(index)) { 583 user_name == GetUserNameOfProfileAtIndex(index)) {
587 return; 584 return;
588 } 585 }
589 586
590 std::unique_ptr<base::DictionaryValue> info( 587 std::unique_ptr<base::DictionaryValue> info(
591 GetInfoForProfileAtIndex(index)->DeepCopy()); 588 GetInfoForProfileAtIndex(index)->DeepCopy());
592 589
593 info->SetString(kGAIAIdKey, gaia_id); 590 info->SetString(kGAIAIdKey, gaia_id);
594 info->SetString(kUserNameKey, user_name); 591 info->SetString(kUserNameKey, user_name);
595 592
596 // This takes ownership of |info|. 593 SetInfoForProfileAtIndex(index, std::move(info));
597 SetInfoForProfileAtIndex(index, info.release());
598 594
599 base::FilePath profile_path = GetPathOfProfileAtIndex(index); 595 base::FilePath profile_path = GetPathOfProfileAtIndex(index);
600 for (auto& observer : observer_list_) 596 for (auto& observer : observer_list_)
601 observer.OnProfileAuthInfoChanged(profile_path); 597 observer.OnProfileAuthInfoChanged(profile_path);
602 } 598 }
603 599
604 void ProfileInfoCache::SetAvatarIconOfProfileAtIndex(size_t index, 600 void ProfileInfoCache::SetAvatarIconOfProfileAtIndex(size_t index,
605 size_t icon_index) { 601 size_t icon_index) {
606 if (!profiles::IsDefaultAvatarIconIndex(icon_index)) { 602 if (!profiles::IsDefaultAvatarIconIndex(icon_index)) {
607 DLOG(WARNING) << "Unknown avatar icon index: " << icon_index; 603 DLOG(WARNING) << "Unknown avatar icon index: " << icon_index;
608 // switch to generic avatar 604 // switch to generic avatar
609 icon_index = 0; 605 icon_index = 0;
610 } 606 }
611 std::unique_ptr<base::DictionaryValue> info( 607 std::unique_ptr<base::DictionaryValue> info(
612 GetInfoForProfileAtIndex(index)->DeepCopy()); 608 GetInfoForProfileAtIndex(index)->DeepCopy());
613 info->SetString(kAvatarIconKey, 609 info->SetString(kAvatarIconKey,
614 profiles::GetDefaultAvatarIconUrl(icon_index)); 610 profiles::GetDefaultAvatarIconUrl(icon_index));
615 // This takes ownership of |info|. 611 SetInfoForProfileAtIndex(index, std::move(info));
616 SetInfoForProfileAtIndex(index, info.release());
617 612
618 base::FilePath profile_path = GetPathOfProfileAtIndex(index); 613 base::FilePath profile_path = GetPathOfProfileAtIndex(index);
619 614
620 if (!disable_avatar_download_for_testing_) 615 if (!disable_avatar_download_for_testing_)
621 DownloadHighResAvatarIfNeeded(icon_index, profile_path); 616 DownloadHighResAvatarIfNeeded(icon_index, profile_path);
622 617
623 for (auto& observer : observer_list_) 618 for (auto& observer : observer_list_)
624 observer.OnProfileAvatarChanged(profile_path); 619 observer.OnProfileAvatarChanged(profile_path);
625 } 620 }
626 621
627 void ProfileInfoCache::SetIsOmittedProfileAtIndex(size_t index, 622 void ProfileInfoCache::SetIsOmittedProfileAtIndex(size_t index,
628 bool is_omitted) { 623 bool is_omitted) {
629 if (IsOmittedProfileAtIndex(index) == is_omitted) 624 if (IsOmittedProfileAtIndex(index) == is_omitted)
630 return; 625 return;
631 std::unique_ptr<base::DictionaryValue> info( 626 std::unique_ptr<base::DictionaryValue> info(
632 GetInfoForProfileAtIndex(index)->DeepCopy()); 627 GetInfoForProfileAtIndex(index)->DeepCopy());
633 info->SetBoolean(kIsOmittedFromProfileListKey, is_omitted); 628 info->SetBoolean(kIsOmittedFromProfileListKey, is_omitted);
634 // This takes ownership of |info|. 629 SetInfoForProfileAtIndex(index, std::move(info));
635 SetInfoForProfileAtIndex(index, info.release());
636 630
637 base::FilePath profile_path = GetPathOfProfileAtIndex(index); 631 base::FilePath profile_path = GetPathOfProfileAtIndex(index);
638 for (auto& observer : observer_list_) 632 for (auto& observer : observer_list_)
639 observer.OnProfileIsOmittedChanged(profile_path); 633 observer.OnProfileIsOmittedChanged(profile_path);
640 } 634 }
641 635
642 void ProfileInfoCache::SetSupervisedUserIdOfProfileAtIndex( 636 void ProfileInfoCache::SetSupervisedUserIdOfProfileAtIndex(
643 size_t index, 637 size_t index,
644 const std::string& id) { 638 const std::string& id) {
645 if (GetSupervisedUserIdOfProfileAtIndex(index) == id) 639 if (GetSupervisedUserIdOfProfileAtIndex(index) == id)
646 return; 640 return;
647 std::unique_ptr<base::DictionaryValue> info( 641 std::unique_ptr<base::DictionaryValue> info(
648 GetInfoForProfileAtIndex(index)->DeepCopy()); 642 GetInfoForProfileAtIndex(index)->DeepCopy());
649 info->SetString(kSupervisedUserId, id); 643 info->SetString(kSupervisedUserId, id);
650 // This takes ownership of |info|. 644 SetInfoForProfileAtIndex(index, std::move(info));
651 SetInfoForProfileAtIndex(index, info.release());
652 645
653 base::FilePath profile_path = GetPathOfProfileAtIndex(index); 646 base::FilePath profile_path = GetPathOfProfileAtIndex(index);
654 for (auto& observer : observer_list_) 647 for (auto& observer : observer_list_)
655 observer.OnProfileSupervisedUserIdChanged(profile_path); 648 observer.OnProfileSupervisedUserIdChanged(profile_path);
656 } 649 }
657 650
658 void ProfileInfoCache::SetLocalAuthCredentialsOfProfileAtIndex( 651 void ProfileInfoCache::SetLocalAuthCredentialsOfProfileAtIndex(
659 size_t index, 652 size_t index,
660 const std::string& credentials) { 653 const std::string& credentials) {
661 std::unique_ptr<base::DictionaryValue> info( 654 std::unique_ptr<base::DictionaryValue> info(
662 GetInfoForProfileAtIndex(index)->DeepCopy()); 655 GetInfoForProfileAtIndex(index)->DeepCopy());
663 info->SetString(kAuthCredentialsKey, credentials); 656 info->SetString(kAuthCredentialsKey, credentials);
664 // This takes ownership of |info|. 657 SetInfoForProfileAtIndex(index, std::move(info));
665 SetInfoForProfileAtIndex(index, info.release());
666 } 658 }
667 659
668 void ProfileInfoCache::SetPasswordChangeDetectionTokenAtIndex( 660 void ProfileInfoCache::SetPasswordChangeDetectionTokenAtIndex(
669 size_t index, 661 size_t index,
670 const std::string& token) { 662 const std::string& token) {
671 std::unique_ptr<base::DictionaryValue> info( 663 std::unique_ptr<base::DictionaryValue> info(
672 GetInfoForProfileAtIndex(index)->DeepCopy()); 664 GetInfoForProfileAtIndex(index)->DeepCopy());
673 info->SetString(kPasswordTokenKey, token); 665 info->SetString(kPasswordTokenKey, token);
674 // This takes ownership of |info|. 666 SetInfoForProfileAtIndex(index, std::move(info));
675 SetInfoForProfileAtIndex(index, info.release());
676 } 667 }
677 668
678 void ProfileInfoCache::SetBackgroundStatusOfProfileAtIndex( 669 void ProfileInfoCache::SetBackgroundStatusOfProfileAtIndex(
679 size_t index, 670 size_t index,
680 bool running_background_apps) { 671 bool running_background_apps) {
681 if (GetBackgroundStatusOfProfileAtIndex(index) == running_background_apps) 672 if (GetBackgroundStatusOfProfileAtIndex(index) == running_background_apps)
682 return; 673 return;
683 std::unique_ptr<base::DictionaryValue> info( 674 std::unique_ptr<base::DictionaryValue> info(
684 GetInfoForProfileAtIndex(index)->DeepCopy()); 675 GetInfoForProfileAtIndex(index)->DeepCopy());
685 info->SetBoolean(kBackgroundAppsKey, running_background_apps); 676 info->SetBoolean(kBackgroundAppsKey, running_background_apps);
686 // This takes ownership of |info|. 677 SetInfoForProfileAtIndex(index, std::move(info));
687 SetInfoForProfileAtIndex(index, info.release());
688 } 678 }
689 679
690 void ProfileInfoCache::SetGAIANameOfProfileAtIndex(size_t index, 680 void ProfileInfoCache::SetGAIANameOfProfileAtIndex(size_t index,
691 const base::string16& name) { 681 const base::string16& name) {
692 if (name == GetGAIANameOfProfileAtIndex(index)) 682 if (name == GetGAIANameOfProfileAtIndex(index))
693 return; 683 return;
694 684
695 base::string16 old_display_name = GetNameOfProfileAtIndex(index); 685 base::string16 old_display_name = GetNameOfProfileAtIndex(index);
696 std::unique_ptr<base::DictionaryValue> info( 686 std::unique_ptr<base::DictionaryValue> info(
697 GetInfoForProfileAtIndex(index)->DeepCopy()); 687 GetInfoForProfileAtIndex(index)->DeepCopy());
698 info->SetString(kGAIANameKey, name); 688 info->SetString(kGAIANameKey, name);
699 // This takes ownership of |info|. 689 SetInfoForProfileAtIndex(index, std::move(info));
700 SetInfoForProfileAtIndex(index, info.release());
701 base::string16 new_display_name = GetNameOfProfileAtIndex(index); 690 base::string16 new_display_name = GetNameOfProfileAtIndex(index);
702 base::FilePath profile_path = GetPathOfProfileAtIndex(index); 691 base::FilePath profile_path = GetPathOfProfileAtIndex(index);
703 UpdateSortForProfileIndex(index); 692 UpdateSortForProfileIndex(index);
704 693
705 if (old_display_name != new_display_name) { 694 if (old_display_name != new_display_name) {
706 for (auto& observer : observer_list_) 695 for (auto& observer : observer_list_)
707 observer.OnProfileNameChanged(profile_path, old_display_name); 696 observer.OnProfileNameChanged(profile_path, old_display_name);
708 } 697 }
709 } 698 }
710 699
711 void ProfileInfoCache::SetGAIAGivenNameOfProfileAtIndex( 700 void ProfileInfoCache::SetGAIAGivenNameOfProfileAtIndex(
712 size_t index, 701 size_t index,
713 const base::string16& name) { 702 const base::string16& name) {
714 if (name == GetGAIAGivenNameOfProfileAtIndex(index)) 703 if (name == GetGAIAGivenNameOfProfileAtIndex(index))
715 return; 704 return;
716 705
717 base::string16 old_display_name = GetNameOfProfileAtIndex(index); 706 base::string16 old_display_name = GetNameOfProfileAtIndex(index);
718 std::unique_ptr<base::DictionaryValue> info( 707 std::unique_ptr<base::DictionaryValue> info(
719 GetInfoForProfileAtIndex(index)->DeepCopy()); 708 GetInfoForProfileAtIndex(index)->DeepCopy());
720 info->SetString(kGAIAGivenNameKey, name); 709 info->SetString(kGAIAGivenNameKey, name);
721 // This takes ownership of |info|. 710 SetInfoForProfileAtIndex(index, std::move(info));
722 SetInfoForProfileAtIndex(index, info.release());
723 base::string16 new_display_name = GetNameOfProfileAtIndex(index); 711 base::string16 new_display_name = GetNameOfProfileAtIndex(index);
724 base::FilePath profile_path = GetPathOfProfileAtIndex(index); 712 base::FilePath profile_path = GetPathOfProfileAtIndex(index);
725 UpdateSortForProfileIndex(index); 713 UpdateSortForProfileIndex(index);
726 714
727 if (old_display_name != new_display_name) { 715 if (old_display_name != new_display_name) {
728 for (auto& observer : observer_list_) 716 for (auto& observer : observer_list_)
729 observer.OnProfileNameChanged(profile_path, old_display_name); 717 observer.OnProfileNameChanged(profile_path, old_display_name);
730 } 718 }
731 } 719 }
732 720
(...skipping 22 matching lines...) Expand all
755 new_file_name = 743 new_file_name =
756 old_file_name.empty() ? profiles::kGAIAPictureFileName : old_file_name; 744 old_file_name.empty() ? profiles::kGAIAPictureFileName : old_file_name;
757 base::FilePath image_path = path.AppendASCII(new_file_name); 745 base::FilePath image_path = path.AppendASCII(new_file_name);
758 SaveAvatarImageAtPath( 746 SaveAvatarImageAtPath(
759 GetPathOfProfileAtIndex(index), image, key, image_path); 747 GetPathOfProfileAtIndex(index), image, key, image_path);
760 } 748 }
761 749
762 std::unique_ptr<base::DictionaryValue> info( 750 std::unique_ptr<base::DictionaryValue> info(
763 GetInfoForProfileAtIndex(index)->DeepCopy()); 751 GetInfoForProfileAtIndex(index)->DeepCopy());
764 info->SetString(kGAIAPictureFileNameKey, new_file_name); 752 info->SetString(kGAIAPictureFileNameKey, new_file_name);
765 // This takes ownership of |info|. 753 SetInfoForProfileAtIndex(index, std::move(info));
766 SetInfoForProfileAtIndex(index, info.release());
767 754
768 for (auto& observer : observer_list_) 755 for (auto& observer : observer_list_)
769 observer.OnProfileAvatarChanged(path); 756 observer.OnProfileAvatarChanged(path);
770 } 757 }
771 758
772 void ProfileInfoCache::SetIsUsingGAIAPictureOfProfileAtIndex(size_t index, 759 void ProfileInfoCache::SetIsUsingGAIAPictureOfProfileAtIndex(size_t index,
773 bool value) { 760 bool value) {
774 std::unique_ptr<base::DictionaryValue> info( 761 std::unique_ptr<base::DictionaryValue> info(
775 GetInfoForProfileAtIndex(index)->DeepCopy()); 762 GetInfoForProfileAtIndex(index)->DeepCopy());
776 info->SetBoolean(kUseGAIAPictureKey, value); 763 info->SetBoolean(kUseGAIAPictureKey, value);
777 // This takes ownership of |info|. 764 SetInfoForProfileAtIndex(index, std::move(info));
778 SetInfoForProfileAtIndex(index, info.release());
779 765
780 base::FilePath profile_path = GetPathOfProfileAtIndex(index); 766 base::FilePath profile_path = GetPathOfProfileAtIndex(index);
781 for (auto& observer : observer_list_) 767 for (auto& observer : observer_list_)
782 observer.OnProfileAvatarChanged(profile_path); 768 observer.OnProfileAvatarChanged(profile_path);
783 } 769 }
784 770
785 void ProfileInfoCache::SetProfileSigninRequiredAtIndex(size_t index, 771 void ProfileInfoCache::SetProfileSigninRequiredAtIndex(size_t index,
786 bool value) { 772 bool value) {
787 if (value == ProfileIsSigninRequiredAtIndex(index)) 773 if (value == ProfileIsSigninRequiredAtIndex(index))
788 return; 774 return;
789 775
790 std::unique_ptr<base::DictionaryValue> info( 776 std::unique_ptr<base::DictionaryValue> info(
791 GetInfoForProfileAtIndex(index)->DeepCopy()); 777 GetInfoForProfileAtIndex(index)->DeepCopy());
792 info->SetBoolean(kSigninRequiredKey, value); 778 info->SetBoolean(kSigninRequiredKey, value);
793 // This takes ownership of |info|. 779 SetInfoForProfileAtIndex(index, std::move(info));
794 SetInfoForProfileAtIndex(index, info.release());
795 NotifyIsSigninRequiredChanged(GetPathOfProfileAtIndex(index)); 780 NotifyIsSigninRequiredChanged(GetPathOfProfileAtIndex(index));
796 } 781 }
797 782
798 void ProfileInfoCache::SetProfileIsEphemeralAtIndex(size_t index, bool value) { 783 void ProfileInfoCache::SetProfileIsEphemeralAtIndex(size_t index, bool value) {
799 if (value == ProfileIsEphemeralAtIndex(index)) 784 if (value == ProfileIsEphemeralAtIndex(index))
800 return; 785 return;
801 786
802 std::unique_ptr<base::DictionaryValue> info( 787 std::unique_ptr<base::DictionaryValue> info(
803 GetInfoForProfileAtIndex(index)->DeepCopy()); 788 GetInfoForProfileAtIndex(index)->DeepCopy());
804 info->SetBoolean(kProfileIsEphemeral, value); 789 info->SetBoolean(kProfileIsEphemeral, value);
805 // This takes ownership of |info|. 790 SetInfoForProfileAtIndex(index, std::move(info));
806 SetInfoForProfileAtIndex(index, info.release());
807 } 791 }
808 792
809 void ProfileInfoCache::SetProfileIsUsingDefaultNameAtIndex( 793 void ProfileInfoCache::SetProfileIsUsingDefaultNameAtIndex(
810 size_t index, bool value) { 794 size_t index, bool value) {
811 if (value == ProfileIsUsingDefaultNameAtIndex(index)) 795 if (value == ProfileIsUsingDefaultNameAtIndex(index))
812 return; 796 return;
813 797
814 base::string16 old_display_name = GetNameOfProfileAtIndex(index); 798 base::string16 old_display_name = GetNameOfProfileAtIndex(index);
815 799
816 std::unique_ptr<base::DictionaryValue> info( 800 std::unique_ptr<base::DictionaryValue> info(
817 GetInfoForProfileAtIndex(index)->DeepCopy()); 801 GetInfoForProfileAtIndex(index)->DeepCopy());
818 info->SetBoolean(kIsUsingDefaultNameKey, value); 802 info->SetBoolean(kIsUsingDefaultNameKey, value);
819 // This takes ownership of |info|. 803 SetInfoForProfileAtIndex(index, std::move(info));
820 SetInfoForProfileAtIndex(index, info.release());
821 804
822 base::string16 new_display_name = GetNameOfProfileAtIndex(index); 805 base::string16 new_display_name = GetNameOfProfileAtIndex(index);
823 const base::FilePath profile_path = GetPathOfProfileAtIndex(index); 806 const base::FilePath profile_path = GetPathOfProfileAtIndex(index);
824 807
825 if (old_display_name != new_display_name) { 808 if (old_display_name != new_display_name) {
826 for (auto& observer : observer_list_) 809 for (auto& observer : observer_list_)
827 observer.OnProfileNameChanged(profile_path, old_display_name); 810 observer.OnProfileNameChanged(profile_path, old_display_name);
828 } 811 }
829 } 812 }
830 813
831 void ProfileInfoCache::SetProfileIsUsingDefaultAvatarAtIndex( 814 void ProfileInfoCache::SetProfileIsUsingDefaultAvatarAtIndex(
832 size_t index, bool value) { 815 size_t index, bool value) {
833 if (value == ProfileIsUsingDefaultAvatarAtIndex(index)) 816 if (value == ProfileIsUsingDefaultAvatarAtIndex(index))
834 return; 817 return;
835 818
836 std::unique_ptr<base::DictionaryValue> info( 819 std::unique_ptr<base::DictionaryValue> info(
837 GetInfoForProfileAtIndex(index)->DeepCopy()); 820 GetInfoForProfileAtIndex(index)->DeepCopy());
838 info->SetBoolean(kIsUsingDefaultAvatarKey, value); 821 info->SetBoolean(kIsUsingDefaultAvatarKey, value);
839 // This takes ownership of |info|. 822 SetInfoForProfileAtIndex(index, std::move(info));
840 SetInfoForProfileAtIndex(index, info.release());
841 } 823 }
842 824
843 void ProfileInfoCache::SetProfileIsAuthErrorAtIndex(size_t index, bool value) { 825 void ProfileInfoCache::SetProfileIsAuthErrorAtIndex(size_t index, bool value) {
844 if (value == ProfileIsAuthErrorAtIndex(index)) 826 if (value == ProfileIsAuthErrorAtIndex(index))
845 return; 827 return;
846 828
847 std::unique_ptr<base::DictionaryValue> info( 829 std::unique_ptr<base::DictionaryValue> info(
848 GetInfoForProfileAtIndex(index)->DeepCopy()); 830 GetInfoForProfileAtIndex(index)->DeepCopy());
849 info->SetBoolean(kIsAuthErrorKey, value); 831 info->SetBoolean(kIsAuthErrorKey, value);
850 // This takes ownership of |info|. 832 SetInfoForProfileAtIndex(index, std::move(info));
851 SetInfoForProfileAtIndex(index, info.release());
852 } 833 }
853 834
854 void ProfileInfoCache::SetStatsBrowsingHistoryOfProfileAtIndex(size_t index, 835 void ProfileInfoCache::SetStatsBrowsingHistoryOfProfileAtIndex(size_t index,
855 int value) { 836 int value) {
856 std::unique_ptr<base::DictionaryValue> info( 837 std::unique_ptr<base::DictionaryValue> info(
857 GetInfoForProfileAtIndex(index)->DeepCopy()); 838 GetInfoForProfileAtIndex(index)->DeepCopy());
858 info->SetInteger(kStatsBrowsingHistoryKey, value); 839 info->SetInteger(kStatsBrowsingHistoryKey, value);
859 // This takes ownership of |info|. 840 SetInfoForProfileAtIndex(index, std::move(info));
860 SetInfoForProfileAtIndex(index, info.release());
861 } 841 }
862 842
863 void ProfileInfoCache::SetStatsPasswordsOfProfileAtIndex(size_t index, 843 void ProfileInfoCache::SetStatsPasswordsOfProfileAtIndex(size_t index,
864 int value) { 844 int value) {
865 std::unique_ptr<base::DictionaryValue> info( 845 std::unique_ptr<base::DictionaryValue> info(
866 GetInfoForProfileAtIndex(index)->DeepCopy()); 846 GetInfoForProfileAtIndex(index)->DeepCopy());
867 info->SetInteger(kStatsPasswordsKey, value); 847 info->SetInteger(kStatsPasswordsKey, value);
868 // This takes ownership of |info|. 848 SetInfoForProfileAtIndex(index, std::move(info));
869 SetInfoForProfileAtIndex(index, info.release());
870 } 849 }
871 850
872 void ProfileInfoCache::SetStatsBookmarksOfProfileAtIndex(size_t index, 851 void ProfileInfoCache::SetStatsBookmarksOfProfileAtIndex(size_t index,
873 int value) { 852 int value) {
874 std::unique_ptr<base::DictionaryValue> info( 853 std::unique_ptr<base::DictionaryValue> info(
875 GetInfoForProfileAtIndex(index)->DeepCopy()); 854 GetInfoForProfileAtIndex(index)->DeepCopy());
876 info->SetInteger(kStatsBookmarksKey, value); 855 info->SetInteger(kStatsBookmarksKey, value);
877 // This takes ownership of |info|. 856 SetInfoForProfileAtIndex(index, std::move(info));
878 SetInfoForProfileAtIndex(index, info.release());
879 } 857 }
880 858
881 void ProfileInfoCache::SetStatsSettingsOfProfileAtIndex(size_t index, 859 void ProfileInfoCache::SetStatsSettingsOfProfileAtIndex(size_t index,
882 int value) { 860 int value) {
883 std::unique_ptr<base::DictionaryValue> info( 861 std::unique_ptr<base::DictionaryValue> info(
884 GetInfoForProfileAtIndex(index)->DeepCopy()); 862 GetInfoForProfileAtIndex(index)->DeepCopy());
885 info->SetInteger(kStatsSettingsKey, value); 863 info->SetInteger(kStatsSettingsKey, value);
886 // This takes ownership of |info|. 864 SetInfoForProfileAtIndex(index, std::move(info));
887 SetInfoForProfileAtIndex(index, info.release());
888 } 865 }
889 866
890 void ProfileInfoCache::NotifyIsSigninRequiredChanged( 867 void ProfileInfoCache::NotifyIsSigninRequiredChanged(
891 const base::FilePath& profile_path) { 868 const base::FilePath& profile_path) {
892 for (auto& observer : observer_list_) 869 for (auto& observer : observer_list_)
893 observer.OnProfileSigninRequiredChanged(profile_path); 870 observer.OnProfileSigninRequiredChanged(profile_path);
894 } 871 }
895 872
896 const base::FilePath& ProfileInfoCache::GetUserDataDir() const { 873 const base::FilePath& ProfileInfoCache::GetUserDataDir() const {
897 return user_data_dir_; 874 return user_data_dir_;
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
965 const base::DictionaryValue* ProfileInfoCache::GetInfoForProfileAtIndex( 942 const base::DictionaryValue* ProfileInfoCache::GetInfoForProfileAtIndex(
966 size_t index) const { 943 size_t index) const {
967 DCHECK_LT(index, GetNumberOfProfiles()); 944 DCHECK_LT(index, GetNumberOfProfiles());
968 const base::DictionaryValue* cache = 945 const base::DictionaryValue* cache =
969 prefs_->GetDictionary(prefs::kProfileInfoCache); 946 prefs_->GetDictionary(prefs::kProfileInfoCache);
970 const base::DictionaryValue* info = NULL; 947 const base::DictionaryValue* info = NULL;
971 cache->GetDictionaryWithoutPathExpansion(sorted_keys_[index], &info); 948 cache->GetDictionaryWithoutPathExpansion(sorted_keys_[index], &info);
972 return info; 949 return info;
973 } 950 }
974 951
975 void ProfileInfoCache::SetInfoForProfileAtIndex(size_t index, 952 void ProfileInfoCache::SetInfoForProfileAtIndex(
976 base::DictionaryValue* info) { 953 size_t index,
954 std::unique_ptr<base::DictionaryValue> info) {
977 DictionaryPrefUpdate update(prefs_, prefs::kProfileInfoCache); 955 DictionaryPrefUpdate update(prefs_, prefs::kProfileInfoCache);
978 base::DictionaryValue* cache = update.Get(); 956 base::DictionaryValue* cache = update.Get();
979 cache->SetWithoutPathExpansion(sorted_keys_[index], info); 957 cache->SetWithoutPathExpansion(sorted_keys_[index], std::move(info));
980 } 958 }
981 959
982 std::string ProfileInfoCache::CacheKeyFromProfilePath( 960 std::string ProfileInfoCache::CacheKeyFromProfilePath(
983 const base::FilePath& profile_path) const { 961 const base::FilePath& profile_path) const {
984 DCHECK(user_data_dir_ == profile_path.DirName()); 962 DCHECK(user_data_dir_ == profile_path.DirName());
985 base::FilePath base_name = profile_path.BaseName(); 963 base::FilePath base_name = profile_path.BaseName();
986 return base_name.MaybeAsASCII(); 964 return base_name.MaybeAsASCII();
987 } 965 }
988 966
989 std::vector<std::string>::iterator ProfileInfoCache::FindPositionForProfile( 967 std::vector<std::string>::iterator ProfileInfoCache::FindPositionForProfile(
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after
1233 if (!current_entry) { 1211 if (!current_entry) {
1234 // The profile info is in the cache but its entry isn't created yet, insert 1212 // The profile info is in the cache but its entry isn't created yet, insert
1235 // it in the map. 1213 // it in the map.
1236 current_entry.reset(new ProfileAttributesEntry()); 1214 current_entry.reset(new ProfileAttributesEntry());
1237 current_entry->Initialize(this, path); 1215 current_entry->Initialize(this, path);
1238 } 1216 }
1239 1217
1240 *entry = current_entry.get(); 1218 *entry = current_entry.get();
1241 return true; 1219 return true;
1242 } 1220 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698