| 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 304 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 315 return profiles; | 315 return profiles; |
| 316 } | 316 } |
| 317 | 317 |
| 318 Profile* ProfileManager::GetProfile(const FilePath& profile_dir) { | 318 Profile* ProfileManager::GetProfile(const FilePath& profile_dir) { |
| 319 // If the profile is already loaded (e.g., chrome.exe launched twice), just | 319 // If the profile is already loaded (e.g., chrome.exe launched twice), just |
| 320 // return it. | 320 // return it. |
| 321 Profile* profile = GetProfileByPath(profile_dir); | 321 Profile* profile = GetProfileByPath(profile_dir); |
| 322 if (NULL != profile) | 322 if (NULL != profile) |
| 323 return profile; | 323 return profile; |
| 324 | 324 |
| 325 profile = CreateProfile(profile_dir); | 325 profile = CreateProfileHelper(profile_dir); |
| 326 DCHECK(profile); | 326 DCHECK(profile); |
| 327 if (profile) { | 327 if (profile) { |
| 328 bool result = AddProfile(profile); | 328 bool result = AddProfile(profile); |
| 329 DCHECK(result); | 329 DCHECK(result); |
| 330 } | 330 } |
| 331 return profile; | 331 return profile; |
| 332 } | 332 } |
| 333 | 333 |
| 334 void ProfileManager::CreateProfileAsync(const FilePath& user_data_dir, | 334 void ProfileManager::CreateProfileAsync(const FilePath& user_data_dir, |
| 335 ProfileManagerObserver* observer) { | 335 ProfileManagerObserver* observer) { |
| 336 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 336 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 337 ProfilesInfoMap::iterator iter = profiles_info_.find(user_data_dir); | 337 ProfilesInfoMap::iterator iter = profiles_info_.find(user_data_dir); |
| 338 if (iter != profiles_info_.end()) { | 338 if (iter != profiles_info_.end()) { |
| 339 ProfileInfo* info = iter->second.get(); | 339 ProfileInfo* info = iter->second.get(); |
| 340 if (info->created) { | 340 if (info->created) { |
| 341 // Profile has already been created. Call observer immediately. | 341 // Profile has already been created. Call observer immediately. |
| 342 observer->OnProfileCreated( | 342 observer->OnProfileCreated( |
| 343 info->profile.get(), ProfileManagerObserver::STATUS_INITIALIZED); | 343 info->profile.get(), ProfileManagerObserver::STATUS_INITIALIZED); |
| 344 if (observer->DeleteAfter()) | 344 if (observer->DeleteAfter()) |
| 345 delete observer; | 345 delete observer; |
| 346 } else { | 346 } else { |
| 347 // Profile is being created. Add observer to list. | 347 // Profile is being created. Add observer to list. |
| 348 info->observers.push_back(observer); | 348 info->observers.push_back(observer); |
| 349 } | 349 } |
| 350 } else { | 350 } else { |
| 351 // Initiate asynchronous creation process. | 351 // Initiate asynchronous creation process. |
| 352 ProfileInfo* info = | 352 ProfileInfo* info = |
| 353 RegisterProfile(Profile::CreateProfileAsync(user_data_dir, this), | 353 RegisterProfile(CreateProfileAsyncHelper(user_data_dir, this), |
| 354 false); | 354 false); |
| 355 info->observers.push_back(observer); | 355 info->observers.push_back(observer); |
| 356 } | 356 } |
| 357 } | 357 } |
| 358 | 358 |
| 359 // static | 359 // static |
| 360 void ProfileManager::CreateDefaultProfileAsync( | 360 void ProfileManager::CreateDefaultProfileAsync( |
| 361 ProfileManagerObserver* observer) { | 361 ProfileManagerObserver* observer) { |
| 362 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 362 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 363 ProfileManager* profile_manager = g_browser_process->profile_manager(); | 363 ProfileManager* profile_manager = g_browser_process->profile_manager(); |
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 479 if (!command_line.HasSwitch(switches::kDisableWebResources)) | 479 if (!command_line.HasSwitch(switches::kDisableWebResources)) |
| 480 profile->InitPromoResources(); | 480 profile->InitPromoResources(); |
| 481 } | 481 } |
| 482 | 482 |
| 483 void ProfileManager::DoFinalInitLogging(Profile* profile) { | 483 void ProfileManager::DoFinalInitLogging(Profile* profile) { |
| 484 // Log the profile size after a reasonable startup delay. | 484 // Log the profile size after a reasonable startup delay. |
| 485 BrowserThread::PostDelayedTask(BrowserThread::FILE, FROM_HERE, | 485 BrowserThread::PostDelayedTask(BrowserThread::FILE, FROM_HERE, |
| 486 new ProfileSizeTask(profile), 112000); | 486 new ProfileSizeTask(profile), 112000); |
| 487 } | 487 } |
| 488 | 488 |
| 489 Profile* ProfileManager::CreateProfile(const FilePath& path) { | 489 Profile* ProfileManager::CreateProfileHelper(const FilePath& path) { |
| 490 return Profile::CreateProfile(path); | 490 return Profile::CreateProfile(path); |
| 491 } | 491 } |
| 492 | 492 |
| 493 Profile* ProfileManager::CreateProfileAsyncHelper(const FilePath& path, |
| 494 Delegate* delegate) { |
| 495 return Profile::CreateProfileAsync(path, delegate); |
| 496 } |
| 497 |
| 493 void ProfileManager::OnProfileCreated(Profile* profile, bool success) { | 498 void ProfileManager::OnProfileCreated(Profile* profile, bool success) { |
| 494 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 499 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 495 | 500 |
| 496 ProfilesInfoMap::iterator iter = profiles_info_.find(profile->GetPath()); | 501 ProfilesInfoMap::iterator iter = profiles_info_.find(profile->GetPath()); |
| 497 DCHECK(iter != profiles_info_.end()); | 502 DCHECK(iter != profiles_info_.end()); |
| 498 ProfileInfo* info = iter->second.get(); | 503 ProfileInfo* info = iter->second.get(); |
| 499 | 504 |
| 500 std::vector<ProfileManagerObserver*> observers; | 505 std::vector<ProfileManagerObserver*> observers; |
| 501 info->observers.swap(observers); | 506 info->observers.swap(observers); |
| 502 | 507 |
| (...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 705 RegisterProfile(profile, true); | 710 RegisterProfile(profile, true); |
| 706 if (add_to_cache) | 711 if (add_to_cache) |
| 707 AddProfileToCache(profile); | 712 AddProfileToCache(profile); |
| 708 } | 713 } |
| 709 | 714 |
| 710 #if defined(OS_WIN) | 715 #if defined(OS_WIN) |
| 711 void ProfileManager::RemoveProfileShortcutManagerForTesting() { | 716 void ProfileManager::RemoveProfileShortcutManagerForTesting() { |
| 712 profile_info_cache_->RemoveObserver(profile_shortcut_manager_.get()); | 717 profile_info_cache_->RemoveObserver(profile_shortcut_manager_.get()); |
| 713 } | 718 } |
| 714 #endif | 719 #endif |
| OLD | NEW |