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

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

Issue 9566007: Initial Managed Mode extension API, supporting querying the setting and a stub for enabling the mod… (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Updated checkout Created 8 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 | Annotate | Revision Log
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 <set> 5 #include <set>
6 6
7 #include "chrome/browser/profiles/profile_manager.h" 7 #include "chrome/browser/profiles/profile_manager.h"
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 667 matching lines...) Expand 10 before | Expand all | Expand 10 after
678 // Invoke INITIALIZED or FAIL for all profiles. 678 // Invoke INITIALIZED or FAIL for all profiles.
679 RunCallbacks(callbacks, profile, 679 RunCallbacks(callbacks, profile,
680 profile ? Profile::CREATE_STATUS_INITIALIZED : 680 profile ? Profile::CREATE_STATUS_INITIALIZED :
681 Profile::CREATE_STATUS_FAIL); 681 Profile::CREATE_STATUS_FAIL);
682 } 682 }
683 683
684 FilePath ProfileManager::GenerateNextProfileDirectoryPath() { 684 FilePath ProfileManager::GenerateNextProfileDirectoryPath() {
685 PrefService* local_state = g_browser_process->local_state(); 685 PrefService* local_state = g_browser_process->local_state();
686 DCHECK(local_state); 686 DCHECK(local_state);
687 687
688 DCHECK(!local_state->GetBoolean(prefs::kInManagedMode));
sail 2012/03/05 18:41:29 I don't think sprinkling these DCHECKs here is ver
689
688 // Create the next profile in the next available directory slot. 690 // Create the next profile in the next available directory slot.
689 int next_directory = local_state->GetInteger(prefs::kProfilesNumCreated); 691 int next_directory = local_state->GetInteger(prefs::kProfilesNumCreated);
690 std::string profile_name = chrome::kMultiProfileDirPrefix; 692 std::string profile_name = chrome::kMultiProfileDirPrefix;
691 profile_name.append(base::IntToString(next_directory)); 693 profile_name.append(base::IntToString(next_directory));
692 FilePath new_path = user_data_dir_; 694 FilePath new_path = user_data_dir_;
693 #if defined(OS_WIN) 695 #if defined(OS_WIN)
694 new_path = new_path.Append(ASCIIToUTF16(profile_name)); 696 new_path = new_path.Append(ASCIIToUTF16(profile_name));
695 #else 697 #else
696 new_path = new_path.Append(profile_name); 698 new_path = new_path.Append(profile_name);
697 #endif 699 #endif
(...skipping 11 matching lines...) Expand all
709 711
710 profile_manager->CreateProfileAsync(new_path, 712 profile_manager->CreateProfileAsync(new_path,
711 base::Bind(&OnOpenWindowForNewProfile)); 713 base::Bind(&OnOpenWindowForNewProfile));
712 } 714 }
713 715
714 // static 716 // static
715 void ProfileManager::RegisterPrefs(PrefService* prefs) { 717 void ProfileManager::RegisterPrefs(PrefService* prefs) {
716 prefs->RegisterStringPref(prefs::kProfileLastUsed, ""); 718 prefs->RegisterStringPref(prefs::kProfileLastUsed, "");
717 prefs->RegisterIntegerPref(prefs::kProfilesNumCreated, 1); 719 prefs->RegisterIntegerPref(prefs::kProfilesNumCreated, 1);
718 prefs->RegisterListPref(prefs::kProfilesLastActive); 720 prefs->RegisterListPref(prefs::kProfilesLastActive);
721 prefs->RegisterBooleanPref(prefs::kInManagedMode, false);
719 } 722 }
720 723
721 size_t ProfileManager::GetNumberOfProfiles() { 724 size_t ProfileManager::GetNumberOfProfiles() {
722 return GetProfileInfoCache().GetNumberOfProfiles(); 725 return GetProfileInfoCache().GetNumberOfProfiles();
723 } 726 }
724 727
725 bool ProfileManager::CompareProfilePathAndName( 728 bool ProfileManager::CompareProfilePathAndName(
726 const ProfileManager::ProfilePathAndName& pair1, 729 const ProfileManager::ProfilePathAndName& pair1,
727 const ProfileManager::ProfilePathAndName& pair2) { 730 const ProfileManager::ProfilePathAndName& pair2) {
728 int name_compare = pair1.second.compare(pair2.second); 731 int name_compare = pair1.second.compare(pair2.second);
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
836 if (!logged_in_ && 839 if (!logged_in_ &&
837 (!command_line.HasSwitch(switches::kTestType) || 840 (!command_line.HasSwitch(switches::kTestType) ||
838 command_line.HasSwitch(switches::kLoginProfile))) { 841 command_line.HasSwitch(switches::kLoginProfile))) {
839 go_off_the_record = true; 842 go_off_the_record = true;
840 } 843 }
841 #endif 844 #endif
842 return go_off_the_record; 845 return go_off_the_record;
843 } 846 }
844 847
845 void ProfileManager::ScheduleProfileForDeletion(const FilePath& profile_dir) { 848 void ProfileManager::ScheduleProfileForDeletion(const FilePath& profile_dir) {
849 PrefService* local_state = g_browser_process->local_state();
850 DCHECK(!local_state->GetBoolean(prefs::kInManagedMode));
sail 2012/03/05 18:41:29 same as above
851
846 // If we're deleting the last profile, then create a new profile in its 852 // If we're deleting the last profile, then create a new profile in its
847 // place. 853 // place.
848 ProfileInfoCache& cache = GetProfileInfoCache(); 854 ProfileInfoCache& cache = GetProfileInfoCache();
849 if (cache.GetNumberOfProfiles() == 1) { 855 if (cache.GetNumberOfProfiles() == 1) {
850 FilePath new_path = GenerateNextProfileDirectoryPath(); 856 FilePath new_path = GenerateNextProfileDirectoryPath();
851 857
852 CreateProfileAsync(new_path, base::Bind(&OnOpenWindowForNewProfile)); 858 CreateProfileAsync(new_path, base::Bind(&OnOpenWindowForNewProfile));
853 } 859 }
854 860
855 // Update the last used profile pref before closing browser windows. This way 861 // Update the last used profile pref before closing browser windows. This way
856 // the correct last used profile is set for any notification observers. 862 // the correct last used profile is set for any notification observers.
857 PrefService* local_state = g_browser_process->local_state();
858 std::string last_profile = local_state->GetString(prefs::kProfileLastUsed); 863 std::string last_profile = local_state->GetString(prefs::kProfileLastUsed);
859 if (profile_dir.BaseName().MaybeAsASCII() == last_profile) { 864 if (profile_dir.BaseName().MaybeAsASCII() == last_profile) {
860 for (size_t i = 0; i < cache.GetNumberOfProfiles(); ++i) { 865 for (size_t i = 0; i < cache.GetNumberOfProfiles(); ++i) {
861 FilePath cur_path = cache.GetPathOfProfileAtIndex(i); 866 FilePath cur_path = cache.GetPathOfProfileAtIndex(i);
862 if (cur_path != profile_dir) { 867 if (cur_path != profile_dir) {
863 local_state->SetString( 868 local_state->SetString(
864 prefs::kProfileLastUsed, cur_path.BaseName().MaybeAsASCII()); 869 prefs::kProfileLastUsed, cur_path.BaseName().MaybeAsASCII());
865 break; 870 break;
866 } 871 }
867 } 872 }
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
912 ProfileMetrics::STARTUP_PROFILE_EVENT); 917 ProfileMetrics::STARTUP_PROFILE_EVENT);
913 } 918 }
914 919
915 ProfileManagerWithoutInit::ProfileManagerWithoutInit( 920 ProfileManagerWithoutInit::ProfileManagerWithoutInit(
916 const FilePath& user_data_dir) : ProfileManager(user_data_dir) { 921 const FilePath& user_data_dir) : ProfileManager(user_data_dir) {
917 } 922 }
918 923
919 void ProfileManager::RegisterTestingProfile(Profile* profile, 924 void ProfileManager::RegisterTestingProfile(Profile* profile,
920 bool add_to_cache) { 925 bool add_to_cache) {
921 RegisterProfile(profile, true); 926 RegisterProfile(profile, true);
922 if (add_to_cache){ 927 if (add_to_cache) {
923 InitProfileUserPrefs(profile); 928 InitProfileUserPrefs(profile);
924 AddProfileToCache(profile); 929 AddProfileToCache(profile);
925 } 930 }
926 } 931 }
927 932
928 void ProfileManager::RunCallbacks(const std::vector<CreateCallback>& callbacks, 933 void ProfileManager::RunCallbacks(const std::vector<CreateCallback>& callbacks,
929 Profile* profile, 934 Profile* profile,
930 Profile::CreateStatus status) { 935 Profile::CreateStatus status) {
931 for (size_t i = 0; i < callbacks.size(); ++i) 936 for (size_t i = 0; i < callbacks.size(); ++i)
932 callbacks[i].Run(profile, status); 937 callbacks[i].Run(profile, status);
933 } 938 }
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_preference_api_constants.cc ('k') | chrome/chrome_browser.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698