Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/file_path.h" | 10 #include "base/file_path.h" |
| (...skipping 23 matching lines...) Expand all Loading... | |
| 34 #include "net/url_request/url_request_context.h" | 34 #include "net/url_request/url_request_context.h" |
| 35 #include "net/url_request/url_request_context_getter.h" | 35 #include "net/url_request/url_request_context_getter.h" |
| 36 #include "net/url_request/url_request_job.h" | 36 #include "net/url_request/url_request_job.h" |
| 37 #include "ui/base/l10n/l10n_util.h" | 37 #include "ui/base/l10n/l10n_util.h" |
| 38 | 38 |
| 39 #if defined(OS_CHROMEOS) | 39 #if defined(OS_CHROMEOS) |
| 40 #include "chrome/browser/chromeos/cros/cros_library.h" | 40 #include "chrome/browser/chromeos/cros/cros_library.h" |
| 41 #include "chrome/browser/chromeos/cros/cryptohome_library.h" | 41 #include "chrome/browser/chromeos/cros/cryptohome_library.h" |
| 42 #endif | 42 #endif |
| 43 | 43 |
| 44 namespace { | |
| 45 | |
| 46 void DeleteProfileDirectories(std::vector<FilePath> paths) { | |
|
willchan no longer on Chromium
2011/07/07 17:36:27
const std::vector<FilePath>&
sail
2011/07/07 18:00:19
To make it thread safe I want this to be a copy of
willchan no longer on Chromium
2011/07/08 08:33:17
NewRunnableFunction() will take the parameters and
sail
2011/07/08 16:04:33
Thanks for the explanation! Sent out fix in a sepa
| |
| 47 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); | |
| 48 for (std::vector<FilePath>::iterator it = paths.begin(); | |
| 49 it != paths.end(); ++it) { | |
| 50 file_util::Delete(*it, true); | |
| 51 } | |
| 52 } | |
| 53 | |
| 54 } // namespace | |
| 55 | |
| 44 bool ProfileManagerObserver::DeleteAfterCreation() { | 56 bool ProfileManagerObserver::DeleteAfterCreation() { |
| 45 return false; | 57 return false; |
| 46 } | 58 } |
| 47 | 59 |
| 48 // The NewProfileLauncher class is created when to wait for a multi-profile | 60 // The NewProfileLauncher class is created when to wait for a multi-profile |
| 49 // to be created asynchronously. Upon completion of profile creation, the | 61 // to be created asynchronously. Upon completion of profile creation, the |
| 50 // NPL takes care of launching a new browser window and signing the user | 62 // NPL takes care of launching a new browser window and signing the user |
| 51 // in to their Google account. | 63 // in to their Google account. |
| 52 class NewProfileLauncher : public ProfileManagerObserver { | 64 class NewProfileLauncher : public ProfileManagerObserver { |
| 53 public: | 65 public: |
| 54 virtual void OnProfileCreated(Profile* profile) { | 66 virtual void OnProfileCreated(Profile* profile) { |
| 55 Browser* browser = Browser::Create(profile); | 67 Browser* browser = Browser::Create(profile); |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 92 #if defined(OS_CHROMEOS) | 104 #if defined(OS_CHROMEOS) |
| 93 registrar_.Add( | 105 registrar_.Add( |
| 94 this, | 106 this, |
| 95 NotificationType::LOGIN_USER_CHANGED, | 107 NotificationType::LOGIN_USER_CHANGED, |
| 96 NotificationService::AllSources()); | 108 NotificationService::AllSources()); |
| 97 #endif | 109 #endif |
| 98 } | 110 } |
| 99 | 111 |
| 100 ProfileManager::~ProfileManager() { | 112 ProfileManager::~ProfileManager() { |
| 101 BrowserList::RemoveObserver(this); | 113 BrowserList::RemoveObserver(this); |
| 114 | |
| 115 if (profiles_to_delete_.size()) { | |
|
willchan no longer on Chromium
2011/07/07 17:36:27
Perhaps we should tag this with TODO: fix crbug.co
Miranda Callahan
2011/07/07 17:45:55
Agreed wholeheartedly about tagging; another reaso
sail
2011/07/07 18:00:19
Done.
| |
| 116 BrowserThread::PostTask( | |
| 117 BrowserThread::FILE, FROM_HERE, | |
| 118 NewRunnableFunction(&DeleteProfileDirectories, profiles_to_delete_)); | |
| 119 profiles_to_delete_.clear(); | |
| 120 } | |
| 102 } | 121 } |
| 103 | 122 |
| 104 FilePath ProfileManager::GetDefaultProfileDir( | 123 FilePath ProfileManager::GetDefaultProfileDir( |
| 105 const FilePath& user_data_dir) { | 124 const FilePath& user_data_dir) { |
| 106 FilePath default_profile_dir(user_data_dir); | 125 FilePath default_profile_dir(user_data_dir); |
| 107 default_profile_dir = | 126 default_profile_dir = |
| 108 default_profile_dir.AppendASCII(chrome::kNotSignedInProfile); | 127 default_profile_dir.AppendASCII(chrome::kNotSignedInProfile); |
| 109 return default_profile_dir; | 128 return default_profile_dir; |
| 110 } | 129 } |
| 111 | 130 |
| (...skipping 416 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 528 cache.AddProfileToCache( | 547 cache.AddProfileToCache( |
| 529 profile->GetPath(), | 548 profile->GetPath(), |
| 530 l10n_util::GetStringUTF16(IDS_DEFAULT_PROFILE_NAME), 0); | 549 l10n_util::GetStringUTF16(IDS_DEFAULT_PROFILE_NAME), 0); |
| 531 } else { | 550 } else { |
| 532 cache.AddProfileToCache( | 551 cache.AddProfileToCache( |
| 533 profile->GetPath(), | 552 profile->GetPath(), |
| 534 cache.ChooseNameForNewProfile(), | 553 cache.ChooseNameForNewProfile(), |
| 535 cache.ChooseAvatarIconIndexForNewProfile()); | 554 cache.ChooseAvatarIconIndexForNewProfile()); |
| 536 } | 555 } |
| 537 } | 556 } |
| 557 | |
| 558 void ProfileManager::ScheduleProfileForDeletion(const FilePath& profile_dir) { | |
| 559 Profile* profile = GetProfileByPath(profile_dir); | |
| 560 if (profile) | |
| 561 BrowserList::CloseAllBrowsersWithProfile(profile); | |
|
Miranda Callahan
2011/07/07 17:43:02
Is there any issue with BackgroundApps that we hav
sail
2011/07/07 18:00:19
No idea. Would rachel know?
Miranda Callahan
2011/07/07 18:24:16
I can imagine that she would -- adding her in.
rpetterson
2011/07/07 18:24:30
This particular call shouldn't affect BackgroundAp
| |
| 562 profiles_to_delete_.push_back(profile_dir); | |
| 563 GetProfileInfoCache().DeleteProfileFromCache(profile_dir); | |
| 564 } | |
| OLD | NEW |