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

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

Issue 2740143002: Change base::Value::ListStorage to std::vector<base::Value> (Closed)
Patch Set: Comment Updates 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 (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_manager.h" 5 #include "chrome/browser/profiles/profile_manager.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include <map> 9 #include <map>
10 #include <set> 10 #include <set>
(...skipping 653 matching lines...) Expand 10 before | Expand all | Expand 10 after
664 664
665 std::vector<Profile*> to_return; 665 std::vector<Profile*> to_return;
666 if (local_state->HasPrefPath(prefs::kProfilesLastActive) && 666 if (local_state->HasPrefPath(prefs::kProfilesLastActive) &&
667 local_state->GetList(prefs::kProfilesLastActive)) { 667 local_state->GetList(prefs::kProfilesLastActive)) {
668 // Make a copy because the list might change in the calls to GetProfile. 668 // Make a copy because the list might change in the calls to GetProfile.
669 std::unique_ptr<base::ListValue> profile_list( 669 std::unique_ptr<base::ListValue> profile_list(
670 local_state->GetList(prefs::kProfilesLastActive)->DeepCopy()); 670 local_state->GetList(prefs::kProfilesLastActive)->DeepCopy());
671 base::ListValue::const_iterator it; 671 base::ListValue::const_iterator it;
672 for (it = profile_list->begin(); it != profile_list->end(); ++it) { 672 for (it = profile_list->begin(); it != profile_list->end(); ++it) {
673 std::string profile_path; 673 std::string profile_path;
674 if (!(*it)->GetAsString(&profile_path) || 674 if (!it->GetAsString(&profile_path) || profile_path.empty() ||
675 profile_path.empty() ||
676 profile_path == 675 profile_path ==
677 base::FilePath(chrome::kSystemProfileDir).AsUTF8Unsafe()) { 676 base::FilePath(chrome::kSystemProfileDir).AsUTF8Unsafe()) {
678 LOG(WARNING) << "Invalid entry in " << prefs::kProfilesLastActive; 677 LOG(WARNING) << "Invalid entry in " << prefs::kProfilesLastActive;
679 continue; 678 continue;
680 } 679 }
681 Profile* profile = GetProfile(user_data_dir.AppendASCII(profile_path)); 680 Profile* profile = GetProfile(user_data_dir.AppendASCII(profile_path));
682 if (profile) 681 if (profile)
683 to_return.push_back(profile); 682 to_return.push_back(profile);
684 } 683 }
685 } 684 }
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after
887 } 886 }
888 } 887 }
889 888
890 void ProfileManager::CleanUpDeletedProfiles() { 889 void ProfileManager::CleanUpDeletedProfiles() {
891 PrefService* local_state = g_browser_process->local_state(); 890 PrefService* local_state = g_browser_process->local_state();
892 DCHECK(local_state); 891 DCHECK(local_state);
893 const base::ListValue* deleted_profiles = 892 const base::ListValue* deleted_profiles =
894 local_state->GetList(prefs::kProfilesDeleted); 893 local_state->GetList(prefs::kProfilesDeleted);
895 DCHECK(deleted_profiles); 894 DCHECK(deleted_profiles);
896 895
897 for (const std::unique_ptr<base::Value>& value : *deleted_profiles) { 896 for (const base::Value& value : *deleted_profiles) {
898 base::FilePath profile_path; 897 base::FilePath profile_path;
899 bool is_valid_profile_path = 898 bool is_valid_profile_path =
900 base::GetValueAsFilePath(*value, &profile_path) && 899 base::GetValueAsFilePath(value, &profile_path) &&
901 profile_path.DirName() == user_data_dir(); 900 profile_path.DirName() == user_data_dir();
902 // Although it should never happen, make sure this is a valid path in the 901 // Although it should never happen, make sure this is a valid path in the
903 // user_data_dir, so we don't accidentially delete something else. 902 // user_data_dir, so we don't accidentially delete something else.
904 if (is_valid_profile_path) { 903 if (is_valid_profile_path) {
905 if (base::PathExists(profile_path)) { 904 if (base::PathExists(profile_path)) {
906 LOG(WARNING) << "Files of a deleted profile still exist after restart. " 905 LOG(WARNING) << "Files of a deleted profile still exist after restart. "
907 "Cleaning up now."; 906 "Cleaning up now.";
908 BrowserThread::PostTaskAndReply( 907 BrowserThread::PostTaskAndReply(
909 BrowserThread::FILE, FROM_HERE, 908 BrowserThread::FILE, FROM_HERE,
910 base::Bind(&NukeProfileFromDisk, profile_path), 909 base::Bind(&NukeProfileFromDisk, profile_path),
911 base::Bind(&ProfileCleanedUp, value.get())); 910 base::Bind(&ProfileCleanedUp, &value));
912 } else { 911 } else {
913 // Everything is fine, the profile was removed on shutdown. 912 // Everything is fine, the profile was removed on shutdown.
914 BrowserThread::PostTask( 913 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
915 BrowserThread::UI, FROM_HERE, 914 base::Bind(&ProfileCleanedUp, &value));
916 base::Bind(&ProfileCleanedUp, value.get()));
917 } 915 }
918 } else { 916 } else {
919 LOG(ERROR) << "Found invalid profile path in deleted_profiles: " 917 LOG(ERROR) << "Found invalid profile path in deleted_profiles: "
920 << profile_path.AsUTF8Unsafe(); 918 << profile_path.AsUTF8Unsafe();
921 NOTREACHED(); 919 NOTREACHED();
922 } 920 }
923 } 921 }
924 } 922 }
925 923
926 void ProfileManager::InitProfileUserPrefs(Profile* profile) { 924 void ProfileManager::InitProfileUserPrefs(Profile* profile) {
(...skipping 838 matching lines...) Expand 10 before | Expand all | Expand 10 after
1765 1763
1766 const base::FilePath new_active_profile_dir = 1764 const base::FilePath new_active_profile_dir =
1767 found_entry ? found_entry->GetPath() : GenerateNextProfileDirectoryPath(); 1765 found_entry ? found_entry->GetPath() : GenerateNextProfileDirectoryPath();
1768 FinishDeletingProfile(profile_dir, new_active_profile_dir); 1766 FinishDeletingProfile(profile_dir, new_active_profile_dir);
1769 } 1767 }
1770 #endif // !defined(OS_ANDROID) 1768 #endif // !defined(OS_ANDROID)
1771 1769
1772 ProfileManagerWithoutInit::ProfileManagerWithoutInit( 1770 ProfileManagerWithoutInit::ProfileManagerWithoutInit(
1773 const base::FilePath& user_data_dir) : ProfileManager(user_data_dir) { 1771 const base::FilePath& user_data_dir) : ProfileManager(user_data_dir) {
1774 } 1772 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698