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 "chrome/browser/profiles/profile_impl.h" | 5 #include "chrome/browser/profiles/profile_impl.h" |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/compiler_specific.h" | 8 #include "base/compiler_specific.h" |
9 #include "base/environment.h" | 9 #include "base/environment.h" |
10 #include "base/file_path.h" | 10 #include "base/file_path.h" |
(...skipping 277 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
288 start_time_(Time::Now()), | 288 start_time_(Time::Now()), |
289 spellcheck_host_(NULL), | 289 spellcheck_host_(NULL), |
290 spellcheck_host_ready_(false), | 290 spellcheck_host_ready_(false), |
291 #if defined(OS_WIN) | 291 #if defined(OS_WIN) |
292 checked_instant_promo_(false), | 292 checked_instant_promo_(false), |
293 #endif | 293 #endif |
294 delegate_(delegate) { | 294 delegate_(delegate) { |
295 DCHECK(!path.empty()) << "Using an empty path will attempt to write " << | 295 DCHECK(!path.empty()) << "Using an empty path will attempt to write " << |
296 "profile files to the root directory!"; | 296 "profile files to the root directory!"; |
297 | 297 |
298 #ifndef NDEBUG | |
299 ProfileDependencyManager::GetInstance()->ProfileNowExists(this); | |
300 #endif | |
301 | |
302 create_session_service_timer_.Start( | 298 create_session_service_timer_.Start( |
303 TimeDelta::FromMilliseconds(kCreateSessionServiceDelayMS), this, | 299 TimeDelta::FromMilliseconds(kCreateSessionServiceDelayMS), this, |
304 &ProfileImpl::EnsureSessionServiceCreated); | 300 &ProfileImpl::EnsureSessionServiceCreated); |
Elliot Glaysher
2011/06/30 23:55:03
Why do we do this? Things seem to work if I leave
Miranda Callahan
2011/07/01 15:20:24
Good question. I tracked through the code and saw
| |
305 | 301 |
306 if (delegate_) { | 302 if (delegate_) { |
307 prefs_.reset(PrefService::CreatePrefService( | 303 prefs_.reset(PrefService::CreatePrefService( |
308 GetPrefFilePath(), | 304 GetPrefFilePath(), |
309 new ExtensionPrefStore(GetExtensionPrefValueMap(), false), | 305 new ExtensionPrefStore(GetExtensionPrefValueMap(), false), |
310 true)); | 306 true)); |
311 // Wait for the notifcation that prefs has been loaded (successfully or | 307 // Wait for the notifcation that prefs has been loaded (successfully or |
312 // not). | 308 // not). |
313 registrar_.Add(this, NotificationType::PREF_INITIALIZATION_COMPLETED, | 309 registrar_.Add(this, NotificationType::PREF_INITIALIZATION_COMPLETED, |
314 Source<PrefService>(prefs_.get())); | 310 Source<PrefService>(prefs_.get())); |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
364 // Initialize the BackgroundModeManager - this has to be done here before | 360 // Initialize the BackgroundModeManager - this has to be done here before |
365 // InitExtensions() is called because it relies on receiving notifications | 361 // InitExtensions() is called because it relies on receiving notifications |
366 // when extensions are loaded. BackgroundModeManager is not needed under | 362 // when extensions are loaded. BackgroundModeManager is not needed under |
367 // ChromeOS because Chrome is always running (no need for special keep-alive | 363 // ChromeOS because Chrome is always running (no need for special keep-alive |
368 // or launch-on-startup support). | 364 // or launch-on-startup support). |
369 #if !defined(OS_CHROMEOS) | 365 #if !defined(OS_CHROMEOS) |
370 if (g_browser_process->background_mode_manager()) | 366 if (g_browser_process->background_mode_manager()) |
371 g_browser_process->background_mode_manager()->RegisterProfile(this); | 367 g_browser_process->background_mode_manager()->RegisterProfile(this); |
372 #endif | 368 #endif |
373 | 369 |
374 BackgroundContentsServiceFactory::GetForProfile(this); | 370 BackgroundContentsServiceFactory::GetForProfile(this); |
Miranda Callahan
2011/07/01 15:20:24
Should be removed, along with a few other factory
Elliot Glaysher
2011/07/01 17:29:45
I'm going to ignore the PinnedTabServiceFactory ca
| |
375 | 371 |
376 extension_info_map_ = new ExtensionInfoMap(); | 372 extension_info_map_ = new ExtensionInfoMap(); |
377 | 373 |
378 InitRegisteredProtocolHandlers(); | 374 InitRegisteredProtocolHandlers(); |
379 | 375 |
380 clear_local_state_on_exit_ = prefs->GetBoolean(prefs::kClearSiteDataOnExit); | 376 clear_local_state_on_exit_ = prefs->GetBoolean(prefs::kClearSiteDataOnExit); |
381 if (clear_local_state_on_exit_) { | 377 if (clear_local_state_on_exit_) { |
382 UserMetrics::RecordAction( | 378 UserMetrics::RecordAction( |
383 UserMetricsAction("ClearSiteDataOnExitEnabled")); | 379 UserMetricsAction("ClearSiteDataOnExitEnabled")); |
384 } else { | 380 } else { |
(...skipping 427 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
812 | 808 |
813 // The last session exited cleanly if there is no pref for | 809 // The last session exited cleanly if there is no pref for |
814 // kSessionExitedCleanly or the value for kSessionExitedCleanly is true. | 810 // kSessionExitedCleanly or the value for kSessionExitedCleanly is true. |
815 last_session_exited_cleanly_ = | 811 last_session_exited_cleanly_ = |
816 prefs_->GetBoolean(prefs::kSessionExitedCleanly); | 812 prefs_->GetBoolean(prefs::kSessionExitedCleanly); |
817 // Mark the session as open. | 813 // Mark the session as open. |
818 prefs_->SetBoolean(prefs::kSessionExitedCleanly, false); | 814 prefs_->SetBoolean(prefs::kSessionExitedCleanly, false); |
819 // Make sure we save to disk that the session has opened. | 815 // Make sure we save to disk that the session has opened. |
820 prefs_->ScheduleSavePersistentPrefs(); | 816 prefs_->ScheduleSavePersistentPrefs(); |
821 | 817 |
818 ProfileDependencyManager::GetInstance()->CreateProfileServices(this, false); | |
819 | |
822 // Ensure that preferences set by extensions are restored in the profile | 820 // Ensure that preferences set by extensions are restored in the profile |
823 // as early as possible. The constructor takes care of that. | 821 // as early as possible. The constructor takes care of that. |
824 extension_prefs_.reset(new ExtensionPrefs( | 822 extension_prefs_.reset(new ExtensionPrefs( |
825 prefs_.get(), | 823 prefs_.get(), |
826 GetPath().AppendASCII(ExtensionService::kInstallDirectoryName), | 824 GetPath().AppendASCII(ExtensionService::kInstallDirectoryName), |
827 GetExtensionPrefValueMap())); | 825 GetExtensionPrefValueMap())); |
828 | 826 |
829 DCHECK(!net_pref_observer_.get()); | 827 DCHECK(!net_pref_observer_.get()); |
830 net_pref_observer_.reset( | 828 net_pref_observer_.reset( |
831 new NetPrefObserver(prefs_.get(), GetPrerenderManager())); | 829 new NetPrefObserver(prefs_.get(), GetPrerenderManager())); |
(...skipping 810 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1642 if (!prerender::PrerenderManager::IsPrerenderingPossible()) | 1640 if (!prerender::PrerenderManager::IsPrerenderingPossible()) |
1643 return NULL; | 1641 return NULL; |
1644 if (!prerender_manager_.get()) { | 1642 if (!prerender_manager_.get()) { |
1645 CHECK(g_browser_process->prerender_tracker()); | 1643 CHECK(g_browser_process->prerender_tracker()); |
1646 prerender_manager_.reset( | 1644 prerender_manager_.reset( |
1647 new prerender::PrerenderManager( | 1645 new prerender::PrerenderManager( |
1648 this, g_browser_process->prerender_tracker())); | 1646 this, g_browser_process->prerender_tracker())); |
1649 } | 1647 } |
1650 return prerender_manager_.get(); | 1648 return prerender_manager_.get(); |
1651 } | 1649 } |
OLD | NEW |