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 "chrome/browser/profiles/profile_impl.h" | 5 #include "chrome/browser/profiles/profile_impl.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
| 9 #include "base/compiler_specific.h" | 9 #include "base/compiler_specific.h" |
| 10 #include "base/environment.h" | 10 #include "base/environment.h" |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 49 #include "chrome/browser/instant/instant_controller.h" | 49 #include "chrome/browser/instant/instant_controller.h" |
| 50 #include "chrome/browser/metrics/metrics_service.h" | 50 #include "chrome/browser/metrics/metrics_service.h" |
| 51 #include "chrome/browser/net/chrome_url_request_context.h" | 51 #include "chrome/browser/net/chrome_url_request_context.h" |
| 52 #include "chrome/browser/net/net_pref_observer.h" | 52 #include "chrome/browser/net/net_pref_observer.h" |
| 53 #include "chrome/browser/net/predictor.h" | 53 #include "chrome/browser/net/predictor.h" |
| 54 #include "chrome/browser/net/proxy_service_factory.h" | 54 #include "chrome/browser/net/proxy_service_factory.h" |
| 55 #include "chrome/browser/net/ssl_config_service_manager.h" | 55 #include "chrome/browser/net/ssl_config_service_manager.h" |
| 56 #include "chrome/browser/net/url_fixer_upper.h" | 56 #include "chrome/browser/net/url_fixer_upper.h" |
| 57 #include "chrome/browser/plugin_prefs.h" | 57 #include "chrome/browser/plugin_prefs.h" |
| 58 #include "chrome/browser/policy/policy_service.h" | 58 #include "chrome/browser/policy/policy_service.h" |
| 59 #include "chrome/browser/policy/user_cloud_policy_manager.h" | |
| 59 #include "chrome/browser/prefs/browser_prefs.h" | 60 #include "chrome/browser/prefs/browser_prefs.h" |
| 60 #include "chrome/browser/prefs/scoped_user_pref_update.h" | 61 #include "chrome/browser/prefs/scoped_user_pref_update.h" |
| 61 #include "chrome/browser/prerender/prerender_manager_factory.h" | 62 #include "chrome/browser/prerender/prerender_manager_factory.h" |
| 62 #include "chrome/browser/profiles/chrome_version_service.h" | 63 #include "chrome/browser/profiles/chrome_version_service.h" |
| 63 #include "chrome/browser/profiles/gaia_info_update_service.h" | 64 #include "chrome/browser/profiles/gaia_info_update_service.h" |
| 64 #include "chrome/browser/profiles/profile_dependency_manager.h" | 65 #include "chrome/browser/profiles/profile_dependency_manager.h" |
| 65 #include "chrome/browser/profiles/profile_destroyer.h" | 66 #include "chrome/browser/profiles/profile_destroyer.h" |
| 66 #include "chrome/browser/profiles/profile_info_cache.h" | 67 #include "chrome/browser/profiles/profile_info_cache.h" |
| 67 #include "chrome/browser/profiles/profile_manager.h" | 68 #include "chrome/browser/profiles/profile_manager.h" |
| 68 #include "chrome/browser/search_engines/template_url_fetcher.h" | 69 #include "chrome/browser/search_engines/template_url_fetcher.h" |
| (...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 278 // Determine if prefetch is enabled for this profile. | 279 // Determine if prefetch is enabled for this profile. |
| 279 // If not profile_manager is present, it means we are in a unittest. | 280 // If not profile_manager is present, it means we are in a unittest. |
| 280 const CommandLine* command_line = CommandLine::ForCurrentProcess(); | 281 const CommandLine* command_line = CommandLine::ForCurrentProcess(); |
| 281 predictor_ = chrome_browser_net::Predictor::CreatePredictor( | 282 predictor_ = chrome_browser_net::Predictor::CreatePredictor( |
| 282 !command_line->HasSwitch(switches::kDisablePreconnect), | 283 !command_line->HasSwitch(switches::kDisablePreconnect), |
| 283 g_browser_process->profile_manager() == NULL); | 284 g_browser_process->profile_manager() == NULL); |
| 284 | 285 |
| 285 session_restore_enabled_ = | 286 session_restore_enabled_ = |
| 286 !command_line->HasSwitch(switches::kDisableRestoreSessionState); | 287 !command_line->HasSwitch(switches::kDisableRestoreSessionState); |
| 287 #if defined(ENABLE_CONFIGURATION_POLICY) | 288 #if defined(ENABLE_CONFIGURATION_POLICY) |
| 288 policy_service_.reset( | 289 if (command_line->HasSwitch(switches::kEnableCloudPolicyService)) { |
| 289 g_browser_process->browser_policy_connector()->CreatePolicyService(this)); | 290 bool wait_for_policy_fetch = false; |
| 291 #if defined(OS_CHROMEOS) | |
| 292 // TODO(mnissler): Revisit once Chrome OS gains multi-profiles support. | |
| 293 // Don't wait for a policy fetch if there's no logged in user. | |
| 294 if (chromeos::UserManager::Get()->IsUserLoggedIn()) { | |
| 295 wait_for_policy_fetch = | |
| 296 g_browser_process->browser_policy_connector()->GetUserAffiliation( | |
| 297 chromeos::UserManager::Get()->GetLoggedInUser().email()) == | |
| 298 policy::USER_AFFILIATION_MANAGED; | |
|
Mattias Nissler (ping if slow)
2012/08/03 12:19:08
Ah, I still feel bad for this hack. It would be ni
Andrew T Wilson (Slow)
2012/08/04 00:54:41
Well, ultimately PolicyService and UserCloudPolicy
| |
| 299 } | |
| 290 #else | 300 #else |
| 291 policy_service_.reset(new policy::PolicyServiceStub()); | 301 // On desktop, there's no way to figure out if a user is logged in yet |
| 302 // because prefs are not yet initialized. So we do not block waiting for | |
| 303 // the policy fetch to happen (because that would inhibit startup for | |
| 304 // non-signed-in users) and instead rely on the fact that a signed-in | |
| 305 // profile will already have policy downloaded. If no policy is available | |
| 306 // (due to a previous fetch failing), the normal policy refresh mechanism | |
| 307 // will cause it to get downloaded eventually. | |
|
Mattias Nissler (ping if slow)
2012/08/03 12:19:08
Not sure this is going to fly long term. If we for
Andrew T Wilson (Slow)
2012/08/04 00:54:41
Yeah, what we do here is very dependent on what ki
Mattias Nissler (ping if slow)
2012/08/06 08:33:52
Reapplying policy when it changes is generally our
| |
| 308 #endif | |
| 309 cloud_policy_manager_ = policy::UserCloudPolicyManager::Create( | |
| 310 this, wait_for_policy_fetch); | |
| 311 } | |
| 312 policy_service_ = | |
| 313 g_browser_process->browser_policy_connector()->CreatePolicyService(this); | |
| 314 #else | |
| 315 policy_service_.reset(new policy::PolicyServiceStub()); | |
| 292 #endif | 316 #endif |
| 293 if (create_mode == CREATE_MODE_ASYNCHRONOUS) { | 317 if (create_mode == CREATE_MODE_ASYNCHRONOUS) { |
| 294 prefs_.reset(PrefService::CreatePrefService( | 318 prefs_.reset(PrefService::CreatePrefService( |
| 295 GetPrefFilePath(), | 319 GetPrefFilePath(), |
| 296 policy_service_.get(), | 320 policy_service_.get(), |
| 297 new ExtensionPrefStore( | 321 new ExtensionPrefStore( |
| 298 ExtensionPrefValueMapFactory::GetForProfile(this), false), | 322 ExtensionPrefValueMapFactory::GetForProfile(this), false), |
| 299 true)); | 323 true)); |
| 300 // Wait for the notification that prefs has been loaded (successfully or | 324 // Wait for the notification that prefs has been loaded (successfully or |
| 301 // not). | 325 // not). |
| (...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 636 ChromeVersionService::OnProfileLoaded(prefs_.get(), is_new_profile); | 660 ChromeVersionService::OnProfileLoaded(prefs_.get(), is_new_profile); |
| 637 DoFinalInit(is_new_profile); | 661 DoFinalInit(is_new_profile); |
| 638 } | 662 } |
| 639 | 663 |
| 640 bool ProfileImpl::WasCreatedByVersionOrLater(const std::string& version) { | 664 bool ProfileImpl::WasCreatedByVersionOrLater(const std::string& version) { |
| 641 Version profile_version(ChromeVersionService::GetVersion(prefs_.get())); | 665 Version profile_version(ChromeVersionService::GetVersion(prefs_.get())); |
| 642 Version arg_version(version); | 666 Version arg_version(version); |
| 643 return (profile_version.CompareTo(arg_version) >= 0); | 667 return (profile_version.CompareTo(arg_version) >= 0); |
| 644 } | 668 } |
| 645 | 669 |
| 670 policy::UserCloudPolicyManager* ProfileImpl::GetUserCloudPolicyManager() { | |
| 671 return cloud_policy_manager_.get(); | |
| 672 } | |
| 673 | |
| 646 policy::PolicyService* ProfileImpl::GetPolicyService() { | 674 policy::PolicyService* ProfileImpl::GetPolicyService() { |
| 647 DCHECK(policy_service_.get()); // Should explicitly be initialized. | 675 DCHECK(policy_service_.get()); // Should explicitly be initialized. |
| 648 return policy_service_.get(); | 676 return policy_service_.get(); |
| 649 } | 677 } |
| 650 | 678 |
| 651 PrefService* ProfileImpl::GetPrefs() { | 679 PrefService* ProfileImpl::GetPrefs() { |
| 652 DCHECK(prefs_.get()); // Should explicitly be initialized. | 680 DCHECK(prefs_.get()); // Should explicitly be initialized. |
| 653 return prefs_.get(); | 681 return prefs_.get(); |
| 654 } | 682 } |
| 655 | 683 |
| (...skipping 429 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1085 if (!path.empty()) | 1113 if (!path.empty()) |
| 1086 *cache_path = path; | 1114 *cache_path = path; |
| 1087 *max_size = is_media_context ? prefs_->GetInteger(prefs::kMediaCacheSize) : | 1115 *max_size = is_media_context ? prefs_->GetInteger(prefs::kMediaCacheSize) : |
| 1088 prefs_->GetInteger(prefs::kDiskCacheSize); | 1116 prefs_->GetInteger(prefs::kDiskCacheSize); |
| 1089 } | 1117 } |
| 1090 | 1118 |
| 1091 base::Callback<ChromeURLDataManagerBackend*(void)> | 1119 base::Callback<ChromeURLDataManagerBackend*(void)> |
| 1092 ProfileImpl::GetChromeURLDataManagerBackendGetter() const { | 1120 ProfileImpl::GetChromeURLDataManagerBackendGetter() const { |
| 1093 return io_data_.GetChromeURLDataManagerBackendGetter(); | 1121 return io_data_.GetChromeURLDataManagerBackendGetter(); |
| 1094 } | 1122 } |
| OLD | NEW |