// Copyright 2013 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "chrome/browser/prefs/pref_service_syncable_factory.h" #include "base/debug/trace_event.h" #include "base/prefs/default_pref_store.h" #include "base/prefs/pref_notifier_impl.h" #include "base/prefs/pref_value_store.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/prefs/command_line_pref_store.h" #include "chrome/browser/prefs/pref_service_syncable.h" #include "components/user_prefs/pref_registry_syncable.h" #if defined(ENABLE_CONFIGURATION_POLICY) #include "components/policy/core/browser/browser_policy_connector.h" #include "components/policy/core/browser/configuration_policy_pref_store.h" #include "components/policy/core/common/policy_service.h" #include "components/policy/core/common/policy_types.h" #endif PrefServiceSyncableFactory::PrefServiceSyncableFactory() { } PrefServiceSyncableFactory::~PrefServiceSyncableFactory() { } #if defined(ENABLE_CONFIGURATION_POLICY) void PrefServiceSyncableFactory::SetManagedPolicies( policy::PolicyService* service) { set_managed_prefs( new policy::ConfigurationPolicyPrefStore( service, g_browser_process->browser_policy_connector()->GetHandlerList(), policy::POLICY_LEVEL_MANDATORY)); } void PrefServiceSyncableFactory::SetRecommendedPolicies( policy::PolicyService* service) { set_recommended_prefs( new policy::ConfigurationPolicyPrefStore( service, g_browser_process->browser_policy_connector()->GetHandlerList(), policy::POLICY_LEVEL_RECOMMENDED)); } #endif void PrefServiceSyncableFactory::SetCommandLine(CommandLine* command_line) { set_command_line_prefs(new CommandLinePrefStore(command_line)); } scoped_ptr PrefServiceSyncableFactory::CreateSyncable( user_prefs::PrefRegistrySyncable* pref_registry) { TRACE_EVENT0("browser", "PrefServiceSyncableFactory::CreateSyncable"); PrefNotifierImpl* pref_notifier = new PrefNotifierImpl(); scoped_ptr pref_service( new PrefServiceSyncable( pref_notifier, new PrefValueStore(managed_prefs_.get(), supervised_user_prefs_.get(), extension_prefs_.get(), command_line_prefs_.get(), user_prefs_.get(), recommended_prefs_.get(), pref_registry->defaults().get(), pref_notifier), user_prefs_.get(), pref_registry, read_error_callback_, async_)); return pref_service.Pass(); }