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 285 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
296 start_time_(Time::Now()), | 296 start_time_(Time::Now()), |
297 spellcheck_host_(NULL), | 297 spellcheck_host_(NULL), |
298 spellcheck_host_ready_(false), | 298 spellcheck_host_ready_(false), |
299 #if defined(OS_WIN) | 299 #if defined(OS_WIN) |
300 checked_instant_promo_(false), | 300 checked_instant_promo_(false), |
301 #endif | 301 #endif |
302 delegate_(delegate) { | 302 delegate_(delegate) { |
303 DCHECK(!path.empty()) << "Using an empty path will attempt to write " << | 303 DCHECK(!path.empty()) << "Using an empty path will attempt to write " << |
304 "profile files to the root directory!"; | 304 "profile files to the root directory!"; |
305 | 305 |
306 #ifndef NDEBUG | |
307 ProfileDependencyManager::GetInstance()->ProfileNowExists(this); | |
308 #endif | |
309 | |
310 create_session_service_timer_.Start( | 306 create_session_service_timer_.Start( |
311 TimeDelta::FromMilliseconds(kCreateSessionServiceDelayMS), this, | 307 TimeDelta::FromMilliseconds(kCreateSessionServiceDelayMS), this, |
312 &ProfileImpl::EnsureSessionServiceCreated); | 308 &ProfileImpl::EnsureSessionServiceCreated); |
313 | 309 |
314 if (delegate_) { | 310 if (delegate_) { |
315 prefs_.reset(PrefService::CreatePrefService( | 311 prefs_.reset(PrefService::CreatePrefService( |
316 GetPrefFilePath(), | 312 GetPrefFilePath(), |
317 new ExtensionPrefStore(GetExtensionPrefValueMap(), false), | 313 new ExtensionPrefStore(GetExtensionPrefValueMap(), false), |
318 true)); | 314 true)); |
319 // Wait for the notifcation that prefs has been loaded (successfully or | 315 // Wait for the notifcation that prefs has been loaded (successfully or |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
372 // Initialize the BackgroundModeManager - this has to be done here before | 368 // Initialize the BackgroundModeManager - this has to be done here before |
373 // InitExtensions() is called because it relies on receiving notifications | 369 // InitExtensions() is called because it relies on receiving notifications |
374 // when extensions are loaded. BackgroundModeManager is not needed under | 370 // when extensions are loaded. BackgroundModeManager is not needed under |
375 // ChromeOS because Chrome is always running (no need for special keep-alive | 371 // ChromeOS because Chrome is always running (no need for special keep-alive |
376 // or launch-on-startup support). | 372 // or launch-on-startup support). |
377 #if !defined(OS_CHROMEOS) | 373 #if !defined(OS_CHROMEOS) |
378 if (g_browser_process->background_mode_manager()) | 374 if (g_browser_process->background_mode_manager()) |
379 g_browser_process->background_mode_manager()->RegisterProfile(this); | 375 g_browser_process->background_mode_manager()->RegisterProfile(this); |
380 #endif | 376 #endif |
381 | 377 |
382 BackgroundContentsServiceFactory::GetForProfile(this); | |
383 | |
384 extension_info_map_ = new ExtensionInfoMap(); | 378 extension_info_map_ = new ExtensionInfoMap(); |
385 | 379 |
386 InitRegisteredProtocolHandlers(); | 380 InitRegisteredProtocolHandlers(); |
387 | 381 |
388 clear_local_state_on_exit_ = prefs->GetBoolean(prefs::kClearSiteDataOnExit); | 382 clear_local_state_on_exit_ = prefs->GetBoolean(prefs::kClearSiteDataOnExit); |
389 if (clear_local_state_on_exit_) { | 383 if (clear_local_state_on_exit_) { |
390 UserMetrics::RecordAction( | 384 UserMetrics::RecordAction( |
391 UserMetricsAction("ClearSiteDataOnExitEnabled")); | 385 UserMetricsAction("ClearSiteDataOnExitEnabled")); |
392 } else { | 386 } else { |
393 UserMetrics::RecordAction( | 387 UserMetrics::RecordAction( |
(...skipping 469 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
863 // Make sure we save to disk that the session has opened. | 857 // Make sure we save to disk that the session has opened. |
864 prefs_->ScheduleSavePersistentPrefs(); | 858 prefs_->ScheduleSavePersistentPrefs(); |
865 | 859 |
866 // Ensure that preferences set by extensions are restored in the profile | 860 // Ensure that preferences set by extensions are restored in the profile |
867 // as early as possible. The constructor takes care of that. | 861 // as early as possible. The constructor takes care of that. |
868 extension_prefs_.reset(new ExtensionPrefs( | 862 extension_prefs_.reset(new ExtensionPrefs( |
869 prefs_.get(), | 863 prefs_.get(), |
870 GetPath().AppendASCII(ExtensionService::kInstallDirectoryName), | 864 GetPath().AppendASCII(ExtensionService::kInstallDirectoryName), |
871 GetExtensionPrefValueMap())); | 865 GetExtensionPrefValueMap())); |
872 | 866 |
| 867 ProfileDependencyManager::GetInstance()->CreateProfileServices(this, false); |
| 868 |
873 DCHECK(!net_pref_observer_.get()); | 869 DCHECK(!net_pref_observer_.get()); |
874 net_pref_observer_.reset( | 870 net_pref_observer_.reset( |
875 new NetPrefObserver(prefs_.get(), GetPrerenderManager())); | 871 new NetPrefObserver(prefs_.get(), GetPrerenderManager())); |
876 | 872 |
877 DoFinalInit(); | 873 DoFinalInit(); |
878 } | 874 } |
879 | 875 |
880 PrefService* ProfileImpl::GetPrefs() { | 876 PrefService* ProfileImpl::GetPrefs() { |
881 DCHECK(prefs_.get()); // Should explicitly be initialized. | 877 DCHECK(prefs_.get()); // Should explicitly be initialized. |
882 return prefs_.get(); | 878 return prefs_.get(); |
(...skipping 834 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1717 if (!prerender::PrerenderManager::IsPrerenderingPossible()) | 1713 if (!prerender::PrerenderManager::IsPrerenderingPossible()) |
1718 return NULL; | 1714 return NULL; |
1719 if (!prerender_manager_.get()) { | 1715 if (!prerender_manager_.get()) { |
1720 CHECK(g_browser_process->prerender_tracker()); | 1716 CHECK(g_browser_process->prerender_tracker()); |
1721 prerender_manager_.reset( | 1717 prerender_manager_.reset( |
1722 new prerender::PrerenderManager( | 1718 new prerender::PrerenderManager( |
1723 this, g_browser_process->prerender_tracker())); | 1719 this, g_browser_process->prerender_tracker())); |
1724 } | 1720 } |
1725 return prerender_manager_.get(); | 1721 return prerender_manager_.get(); |
1726 } | 1722 } |
OLD | NEW |