Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 252 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 263 this, | 263 this, |
| 264 chrome::NOTIFICATION_CLOSE_ALL_BROWSERS_REQUEST, | 264 chrome::NOTIFICATION_CLOSE_ALL_BROWSERS_REQUEST, |
| 265 content::NotificationService::AllSources()); | 265 content::NotificationService::AllSources()); |
| 266 registrar_.Add( | 266 registrar_.Add( |
| 267 this, | 267 this, |
| 268 chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, | 268 chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, |
| 269 content::NotificationService::AllSources()); | 269 content::NotificationService::AllSources()); |
| 270 | 270 |
| 271 if (ProfileShortcutManager::IsFeatureEnabled()) | 271 if (ProfileShortcutManager::IsFeatureEnabled()) |
| 272 profile_shortcut_manager_.reset(ProfileShortcutManager::Create()); | 272 profile_shortcut_manager_.reset(ProfileShortcutManager::Create()); |
| 273 GetProfileInfoCache().AddObserver(profile_shortcut_manager_.get()); | |
|
sail
2012/08/21 21:59:26
Another way to do this would be to have ProfileSho
Halli
2012/08/23 17:59:20
Done.
| |
| 273 } | 274 } |
| 274 | 275 |
| 275 ProfileManager::~ProfileManager() { | 276 ProfileManager::~ProfileManager() { |
| 276 } | 277 } |
| 277 | 278 |
| 278 FilePath ProfileManager::GetDefaultProfileDir( | 279 FilePath ProfileManager::GetDefaultProfileDir( |
| 279 const FilePath& user_data_dir) { | 280 const FilePath& user_data_dir) { |
| 280 FilePath default_profile_dir(user_data_dir); | 281 FilePath default_profile_dir(user_data_dir); |
| 281 default_profile_dir = | 282 default_profile_dir = |
| 282 default_profile_dir.AppendASCII(chrome::kInitialProfile); | 283 default_profile_dir.AppendASCII(chrome::kInitialProfile); |
| (...skipping 664 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 947 BrowserList::CloseAllBrowsersWithProfile(profile); | 948 BrowserList::CloseAllBrowsersWithProfile(profile); |
| 948 | 949 |
| 949 // Disable sync for doomed profile. | 950 // Disable sync for doomed profile. |
| 950 if (ProfileSyncServiceFactory::GetInstance()->HasProfileSyncService( | 951 if (ProfileSyncServiceFactory::GetInstance()->HasProfileSyncService( |
| 951 profile)) { | 952 profile)) { |
| 952 ProfileSyncServiceFactory::GetInstance()->GetForProfile( | 953 ProfileSyncServiceFactory::GetInstance()->GetForProfile( |
| 953 profile)->DisableForUser(); | 954 profile)->DisableForUser(); |
| 954 } | 955 } |
| 955 } | 956 } |
| 956 | 957 |
| 958 // Delete possible shortcuts for this profile | |
| 959 if (profile_shortcut_manager_.get()) | |
| 960 profile_shortcut_manager_->DeleteChromeDesktopShortcut( | |
| 961 profile_dir, cache.GetNameOfProfileAtIndex( | |
| 962 cache.GetIndexOfProfileWithPath(profile_dir))); | |
| 963 | |
| 957 QueueProfileDirectoryForDeletion(profile_dir); | 964 QueueProfileDirectoryForDeletion(profile_dir); |
| 958 cache.DeleteProfileFromCache(profile_dir); | 965 cache.DeleteProfileFromCache(profile_dir); |
| 959 | 966 |
| 960 // Delete possible shortcuts for this profile | |
| 961 if (profile_shortcut_manager_.get()) | |
| 962 profile_shortcut_manager_->DeleteChromeDesktopShortcut(profile_dir); | |
| 963 | |
| 964 ProfileMetrics::LogNumberOfProfiles(this, | 967 ProfileMetrics::LogNumberOfProfiles(this, |
| 965 ProfileMetrics::DELETE_PROFILE_EVENT); | 968 ProfileMetrics::DELETE_PROFILE_EVENT); |
| 966 } | 969 } |
| 967 | 970 |
| 968 // static | 971 // static |
| 969 bool ProfileManager::IsMultipleProfilesEnabled() { | 972 bool ProfileManager::IsMultipleProfilesEnabled() { |
| 970 #if defined(OS_CHROMEOS) | 973 #if defined(OS_CHROMEOS) |
| 971 if (!CommandLine::ForCurrentProcess()->HasSwitch(switches::kMultiProfiles)) | 974 if (!CommandLine::ForCurrentProcess()->HasSwitch(switches::kMultiProfiles)) |
| 972 return false; | 975 return false; |
| 973 #endif | 976 #endif |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1014 } | 1017 } |
| 1015 | 1018 |
| 1016 ProfileManager::ProfileInfo::ProfileInfo(Profile* profile, bool created) | 1019 ProfileManager::ProfileInfo::ProfileInfo(Profile* profile, bool created) |
| 1017 : profile(profile), | 1020 : profile(profile), |
| 1018 created(created) { | 1021 created(created) { |
| 1019 } | 1022 } |
| 1020 | 1023 |
| 1021 ProfileManager::ProfileInfo::~ProfileInfo() { | 1024 ProfileManager::ProfileInfo::~ProfileInfo() { |
| 1022 ProfileDestroyer::DestroyProfileWhenAppropriate(profile.release()); | 1025 ProfileDestroyer::DestroyProfileWhenAppropriate(profile.release()); |
| 1023 } | 1026 } |
| OLD | NEW |