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/callback.h" | 8 #include "base/callback.h" |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/compiler_specific.h" | 10 #include "base/compiler_specific.h" |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
46 #include "chrome/browser/history/top_sites.h" | 46 #include "chrome/browser/history/top_sites.h" |
47 #include "chrome/browser/metrics/metrics_service.h" | 47 #include "chrome/browser/metrics/metrics_service.h" |
48 #include "chrome/browser/net/chrome_url_request_context.h" | 48 #include "chrome/browser/net/chrome_url_request_context.h" |
49 #include "chrome/browser/net/net_pref_observer.h" | 49 #include "chrome/browser/net/net_pref_observer.h" |
50 #include "chrome/browser/net/predictor.h" | 50 #include "chrome/browser/net/predictor.h" |
51 #include "chrome/browser/net/proxy_service_factory.h" | 51 #include "chrome/browser/net/proxy_service_factory.h" |
52 #include "chrome/browser/net/ssl_config_service_manager.h" | 52 #include "chrome/browser/net/ssl_config_service_manager.h" |
53 #include "chrome/browser/net/url_fixer_upper.h" | 53 #include "chrome/browser/net/url_fixer_upper.h" |
54 #include "chrome/browser/plugins/plugin_prefs.h" | 54 #include "chrome/browser/plugins/plugin_prefs.h" |
55 #include "chrome/browser/prefs/browser_prefs.h" | 55 #include "chrome/browser/prefs/browser_prefs.h" |
56 #include "chrome/browser/prefs/chrome_pref_service_builder.h" | 56 #include "chrome/browser/prefs/chrome_pref_service_factory.h" |
57 #include "chrome/browser/prefs/scoped_user_pref_update.h" | 57 #include "chrome/browser/prefs/scoped_user_pref_update.h" |
58 #include "chrome/browser/prerender/prerender_manager_factory.h" | 58 #include "chrome/browser/prerender/prerender_manager_factory.h" |
59 #include "chrome/browser/profiles/chrome_version_service.h" | 59 #include "chrome/browser/profiles/chrome_version_service.h" |
60 #include "chrome/browser/profiles/gaia_info_update_service.h" | 60 #include "chrome/browser/profiles/gaia_info_update_service.h" |
61 #include "chrome/browser/profiles/profile_dependency_manager.h" | 61 #include "chrome/browser/profiles/profile_dependency_manager.h" |
62 #include "chrome/browser/profiles/profile_destroyer.h" | 62 #include "chrome/browser/profiles/profile_destroyer.h" |
63 #include "chrome/browser/profiles/profile_info_cache.h" | 63 #include "chrome/browser/profiles/profile_info_cache.h" |
64 #include "chrome/browser/profiles/profile_manager.h" | 64 #include "chrome/browser/profiles/profile_manager.h" |
65 #include "chrome/browser/search_engines/template_url_fetcher.h" | 65 #include "chrome/browser/search_engines/template_url_fetcher.h" |
66 #include "chrome/browser/sessions/session_service_factory.h" | 66 #include "chrome/browser/sessions/session_service_factory.h" |
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
262 return new ProfileImpl(path, delegate, create_mode, sequenced_task_runner); | 262 return new ProfileImpl(path, delegate, create_mode, sequenced_task_runner); |
263 } | 263 } |
264 | 264 |
265 // static | 265 // static |
266 int ProfileImpl::create_readme_delay_ms = 60000; | 266 int ProfileImpl::create_readme_delay_ms = 60000; |
267 | 267 |
268 // static | 268 // static |
269 const char* const ProfileImpl::kPrefExitTypeNormal = "Normal"; | 269 const char* const ProfileImpl::kPrefExitTypeNormal = "Normal"; |
270 | 270 |
271 // static | 271 // static |
272 void ProfileImpl::RegisterUserPrefs(PrefService* prefs) { | 272 void ProfileImpl::RegisterUserPrefs(PrefServiceSyncable* prefs) { |
273 prefs->RegisterBooleanPref(prefs::kSavingBrowserHistoryDisabled, | 273 prefs->RegisterBooleanPref(prefs::kSavingBrowserHistoryDisabled, |
274 false, | 274 false, |
275 PrefService::UNSYNCABLE_PREF); | 275 PrefServiceSyncable::UNSYNCABLE_PREF); |
276 prefs->RegisterBooleanPref(prefs::kForceSafeSearch, | 276 prefs->RegisterBooleanPref(prefs::kForceSafeSearch, |
277 false, | 277 false, |
278 PrefService::UNSYNCABLE_PREF); | 278 PrefServiceSyncable::UNSYNCABLE_PREF); |
279 prefs->RegisterIntegerPref(prefs::kProfileAvatarIndex, | 279 prefs->RegisterIntegerPref(prefs::kProfileAvatarIndex, |
280 -1, | 280 -1, |
281 PrefService::SYNCABLE_PREF); | 281 PrefServiceSyncable::SYNCABLE_PREF); |
282 prefs->RegisterStringPref(prefs::kProfileName, | 282 prefs->RegisterStringPref(prefs::kProfileName, |
283 "", | 283 "", |
284 PrefService::SYNCABLE_PREF); | 284 PrefServiceSyncable::SYNCABLE_PREF); |
285 prefs->RegisterStringPref(prefs::kHomePage, | 285 prefs->RegisterStringPref(prefs::kHomePage, |
286 std::string(), | 286 std::string(), |
287 PrefService::SYNCABLE_PREF); | 287 PrefServiceSyncable::SYNCABLE_PREF); |
288 #if defined(ENABLE_PRINTING) | 288 #if defined(ENABLE_PRINTING) |
289 prefs->RegisterBooleanPref(prefs::kPrintingEnabled, | 289 prefs->RegisterBooleanPref(prefs::kPrintingEnabled, |
290 true, | 290 true, |
291 PrefService::UNSYNCABLE_PREF); | 291 PrefServiceSyncable::UNSYNCABLE_PREF); |
292 #endif | 292 #endif |
293 prefs->RegisterBooleanPref(prefs::kPrintPreviewDisabled, | 293 prefs->RegisterBooleanPref(prefs::kPrintPreviewDisabled, |
294 #if defined(GOOGLE_CHROME_BUILD) | 294 #if defined(GOOGLE_CHROME_BUILD) |
295 false, | 295 false, |
296 #else | 296 #else |
297 true, | 297 true, |
298 #endif | 298 #endif |
299 PrefService::UNSYNCABLE_PREF); | 299 PrefServiceSyncable::UNSYNCABLE_PREF); |
300 | 300 |
301 // Initialize the cache prefs. | 301 // Initialize the cache prefs. |
302 prefs->RegisterFilePathPref(prefs::kDiskCacheDir, | 302 prefs->RegisterFilePathPref(prefs::kDiskCacheDir, |
303 FilePath(), | 303 FilePath(), |
304 PrefService::UNSYNCABLE_PREF); | 304 PrefServiceSyncable::UNSYNCABLE_PREF); |
305 prefs->RegisterIntegerPref(prefs::kDiskCacheSize, | 305 prefs->RegisterIntegerPref(prefs::kDiskCacheSize, |
306 0, | 306 0, |
307 PrefService::UNSYNCABLE_PREF); | 307 PrefServiceSyncable::UNSYNCABLE_PREF); |
308 prefs->RegisterIntegerPref(prefs::kMediaCacheSize, | 308 prefs->RegisterIntegerPref(prefs::kMediaCacheSize, |
309 0, | 309 0, |
310 PrefService::UNSYNCABLE_PREF); | 310 PrefServiceSyncable::UNSYNCABLE_PREF); |
311 | 311 |
312 // Deprecated. Kept around for migration. | 312 // Deprecated. Kept around for migration. |
313 prefs->RegisterBooleanPref(prefs::kClearSiteDataOnExit, | 313 prefs->RegisterBooleanPref(prefs::kClearSiteDataOnExit, |
314 false, | 314 false, |
315 PrefService::SYNCABLE_PREF); | 315 PrefServiceSyncable::SYNCABLE_PREF); |
316 } | 316 } |
317 | 317 |
318 ProfileImpl::ProfileImpl( | 318 ProfileImpl::ProfileImpl( |
319 const FilePath& path, | 319 const FilePath& path, |
320 Delegate* delegate, | 320 Delegate* delegate, |
321 CreateMode create_mode, | 321 CreateMode create_mode, |
322 base::SequencedTaskRunner* sequenced_task_runner) | 322 base::SequencedTaskRunner* sequenced_task_runner) |
323 : path_(path), | 323 : path_(path), |
324 ALLOW_THIS_IN_INITIALIZER_LIST(io_data_(this)), | 324 ALLOW_THIS_IN_INITIALIZER_LIST(io_data_(this)), |
325 host_content_settings_map_(NULL), | 325 host_content_settings_map_(NULL), |
(...skipping 17 matching lines...) Expand all Loading... |
343 !command_line->HasSwitch(switches::kDisablePreconnect), | 343 !command_line->HasSwitch(switches::kDisablePreconnect), |
344 g_browser_process->profile_manager() == NULL); | 344 g_browser_process->profile_manager() == NULL); |
345 | 345 |
346 #if defined(ENABLE_CONFIGURATION_POLICY) | 346 #if defined(ENABLE_CONFIGURATION_POLICY) |
347 // If we are creating the profile synchronously, then we should load the | 347 // If we are creating the profile synchronously, then we should load the |
348 // policy data immediately. | 348 // policy data immediately. |
349 bool force_immediate_policy_load = (create_mode == CREATE_MODE_SYNCHRONOUS); | 349 bool force_immediate_policy_load = (create_mode == CREATE_MODE_SYNCHRONOUS); |
350 | 350 |
351 // TODO(atwilson): Change |cloud_policy_manager_| and | 351 // TODO(atwilson): Change |cloud_policy_manager_| and |
352 // |managed_mode_policy_provider_| to proper ProfileKeyedServices once | 352 // |managed_mode_policy_provider_| to proper ProfileKeyedServices once |
353 // PrefService is a ProfileKeyedService (policy must be initialized before | 353 // PrefServiceSyncable is a ProfileKeyedService (policy must be initialized |
354 // PrefService because PrefService depends on policy loading to get overridden | 354 // before PrefServiceSyncable because PrefServiceSyncable depends on policy |
355 // pref values). | 355 // loading to get overridden pref values). |
356 #if !defined(OS_CHROMEOS) | 356 #if !defined(OS_CHROMEOS) |
357 if (command_line->HasSwitch(switches::kLoadCloudPolicyOnSignin)) { | 357 if (command_line->HasSwitch(switches::kLoadCloudPolicyOnSignin)) { |
358 cloud_policy_manager_ = | 358 cloud_policy_manager_ = |
359 policy::UserCloudPolicyManagerFactory::CreateForProfile( | 359 policy::UserCloudPolicyManagerFactory::CreateForProfile( |
360 this, force_immediate_policy_load); | 360 this, force_immediate_policy_load); |
361 cloud_policy_manager_->Init(); | 361 cloud_policy_manager_->Init(); |
362 } | 362 } |
363 #endif | 363 #endif |
364 managed_mode_policy_provider_ = | 364 managed_mode_policy_provider_ = |
365 policy::ManagedModePolicyProvider::Create(this, | 365 policy::ManagedModePolicyProvider::Create(this, |
366 sequenced_task_runner, | 366 sequenced_task_runner, |
367 force_immediate_policy_load); | 367 force_immediate_policy_load); |
368 managed_mode_policy_provider_->Init(); | 368 managed_mode_policy_provider_->Init(); |
369 policy_service_ = | 369 policy_service_ = |
370 g_browser_process->browser_policy_connector()->CreatePolicyService(this); | 370 g_browser_process->browser_policy_connector()->CreatePolicyService(this); |
371 #else | 371 #else |
372 policy_service_.reset(new policy::PolicyServiceStub()); | 372 policy_service_.reset(new policy::PolicyServiceStub()); |
373 #endif | 373 #endif |
374 | 374 |
375 if (create_mode == CREATE_MODE_ASYNCHRONOUS) { | 375 if (create_mode == CREATE_MODE_ASYNCHRONOUS) { |
376 prefs_.reset(ChromePrefServiceBuilder().CreateChromePrefs( | 376 prefs_.reset(ChromePrefServiceFactory().CreateProfilePrefs( |
377 GetPrefFilePath(), | 377 GetPrefFilePath(), |
378 sequenced_task_runner, | 378 sequenced_task_runner, |
379 policy_service_.get(), | 379 policy_service_.get(), |
380 new ExtensionPrefStore( | 380 new ExtensionPrefStore( |
381 ExtensionPrefValueMapFactory::GetForProfile(this), false), | 381 ExtensionPrefValueMapFactory::GetForProfile(this), false), |
382 true)); | 382 true)); |
383 // Wait for the notification that prefs has been loaded | 383 // Wait for the notification that prefs has been loaded |
384 // (successfully or not). Note that we can use base::Unretained | 384 // (successfully or not). Note that we can use base::Unretained |
385 // because the PrefService is owned by this class and lives on | 385 // because the PrefService is owned by this class and lives on |
386 // the same thread. | 386 // the same thread. |
387 prefs_->AddPrefInitObserver(base::Bind(&ProfileImpl::OnPrefsLoaded, | 387 prefs_->AddPrefInitObserver(base::Bind(&ProfileImpl::OnPrefsLoaded, |
388 base::Unretained(this))); | 388 base::Unretained(this))); |
389 } else if (create_mode == CREATE_MODE_SYNCHRONOUS) { | 389 } else if (create_mode == CREATE_MODE_SYNCHRONOUS) { |
390 // Load prefs synchronously. | 390 // Load prefs synchronously. |
391 prefs_.reset(ChromePrefServiceBuilder().CreateChromePrefs( | 391 prefs_.reset(ChromePrefServiceFactory().CreateProfilePrefs( |
392 GetPrefFilePath(), | 392 GetPrefFilePath(), |
393 sequenced_task_runner, | 393 sequenced_task_runner, |
394 policy_service_.get(), | 394 policy_service_.get(), |
395 new ExtensionPrefStore( | 395 new ExtensionPrefStore( |
396 ExtensionPrefValueMapFactory::GetForProfile(this), false), | 396 ExtensionPrefValueMapFactory::GetForProfile(this), false), |
397 false)); | 397 false)); |
398 OnPrefsLoaded(true); | 398 OnPrefsLoaded(true); |
399 } else { | 399 } else { |
400 NOTREACHED(); | 400 NOTREACHED(); |
401 } | 401 } |
(...skipping 365 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
767 #else | 767 #else |
768 return NULL; | 768 return NULL; |
769 #endif | 769 #endif |
770 } | 770 } |
771 | 771 |
772 policy::PolicyService* ProfileImpl::GetPolicyService() { | 772 policy::PolicyService* ProfileImpl::GetPolicyService() { |
773 DCHECK(policy_service_.get()); // Should explicitly be initialized. | 773 DCHECK(policy_service_.get()); // Should explicitly be initialized. |
774 return policy_service_.get(); | 774 return policy_service_.get(); |
775 } | 775 } |
776 | 776 |
777 PrefService* ProfileImpl::GetPrefs() { | 777 PrefServiceSyncable* ProfileImpl::GetPrefs() { |
778 DCHECK(prefs_.get()); // Should explicitly be initialized. | 778 DCHECK(prefs_.get()); // Should explicitly be initialized. |
779 return prefs_.get(); | 779 return prefs_.get(); |
780 } | 780 } |
781 | 781 |
782 PrefService* ProfileImpl::GetOffTheRecordPrefs() { | 782 PrefServiceSyncable* ProfileImpl::GetOffTheRecordPrefs() { |
783 if (!otr_prefs_.get()) { | 783 if (!otr_prefs_.get()) { |
784 // The new ExtensionPrefStore is ref_counted and the new PrefService | 784 // The new ExtensionPrefStore is ref_counted and the new PrefService |
785 // stores a reference so that we do not leak memory here. | 785 // stores a reference so that we do not leak memory here. |
786 otr_prefs_.reset(GetPrefs()->CreateIncognitoPrefService( | 786 otr_prefs_.reset(GetPrefs()->CreateIncognitoPrefService( |
787 new ExtensionPrefStore( | 787 new ExtensionPrefStore( |
788 ExtensionPrefValueMapFactory::GetForProfile(this), true))); | 788 ExtensionPrefValueMapFactory::GetForProfile(this), true))); |
789 } | 789 } |
790 return otr_prefs_.get(); | 790 return otr_prefs_.get(); |
791 } | 791 } |
792 | 792 |
(...skipping 361 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1154 if (!path.empty()) | 1154 if (!path.empty()) |
1155 *cache_path = path; | 1155 *cache_path = path; |
1156 *max_size = is_media_context ? prefs_->GetInteger(prefs::kMediaCacheSize) : | 1156 *max_size = is_media_context ? prefs_->GetInteger(prefs::kMediaCacheSize) : |
1157 prefs_->GetInteger(prefs::kDiskCacheSize); | 1157 prefs_->GetInteger(prefs::kDiskCacheSize); |
1158 } | 1158 } |
1159 | 1159 |
1160 base::Callback<ChromeURLDataManagerBackend*(void)> | 1160 base::Callback<ChromeURLDataManagerBackend*(void)> |
1161 ProfileImpl::GetChromeURLDataManagerBackendGetter() const { | 1161 ProfileImpl::GetChromeURLDataManagerBackendGetter() const { |
1162 return io_data_.GetChromeURLDataManagerBackendGetter(); | 1162 return io_data_.GetChromeURLDataManagerBackendGetter(); |
1163 } | 1163 } |
OLD | NEW |