| Index: chrome/browser/pref_service.cc
|
| diff --git a/chrome/browser/pref_service.cc b/chrome/browser/pref_service.cc
|
| index bb80c90d6bb17e287fed6734c62c820cd2f6413e..7ca8ae1326f57ccb8ef7a825193097103753949e 100644
|
| --- a/chrome/browser/pref_service.cc
|
| +++ b/chrome/browser/pref_service.cc
|
| @@ -12,6 +12,7 @@
|
| #include "base/histogram.h"
|
| #include "base/logging.h"
|
| #include "base/message_loop.h"
|
| +#include "base/path_service.h"
|
| #include "base/stl_util-inl.h"
|
| #include "base/string_util.h"
|
| #include "base/sys_string_conversions.h"
|
| @@ -24,10 +25,12 @@
|
| #elif defined(OS_MACOSX)
|
| #include "chrome/browser/configuration_policy_provider_mac.h"
|
| #elif defined(OS_POSIX)
|
| -#include "chrome/browser/dummy_configuration_policy_provider.h"
|
| +#include "chrome/browser/config_dir_policy_provider.h"
|
| #endif
|
| +#include "chrome/browser/dummy_configuration_policy_provider.h"
|
|
|
| #include "chrome/browser/configuration_policy_pref_store.h"
|
| +#include "chrome/common/chrome_paths.h"
|
| #include "chrome/common/json_pref_store.h"
|
| #include "chrome/common/notification_service.h"
|
| #include "grit/chromium_strings.h"
|
| @@ -94,20 +97,35 @@ PrefService* PrefService::CreatePrefService(const FilePath& pref_filename) {
|
| PrefStore* recommended_prefs = NULL;
|
|
|
| ConfigurationPolicyProvider* managed_prefs_provider = NULL;
|
| + ConfigurationPolicyProvider* recommended_prefs_provider = NULL;
|
| +
|
| #if defined(OS_WIN)
|
| managed_prefs_provider = new ConfigurationPolicyProviderWin();
|
| + recommended_prefs_provider = new DummyConfigurationPolicyProvider();
|
| #elif defined(OS_MACOSX)
|
| managed_prefs_provider = new ConfigurationPolicyProviderMac();
|
| + recommended_prefs_provider = new DummyConfigurationPolicyProvider();
|
| #elif defined(OS_POSIX)
|
| - // TODO(markusheintz): Will be replaced by the Linux implementation.
|
| - managed_prefs_provider = new DummyConfigurationPolicyProvider();
|
| + FilePath config_dir_path;
|
| + if (PathService::Get(chrome::DIR_POLICY_FILES, &config_dir_path)) {
|
| + managed_prefs_provider = new ConfigDirPolicyProvider(
|
| + config_dir_path.Append(FILE_PATH_LITERAL("managed")));
|
| + recommended_prefs_provider = new ConfigDirPolicyProvider(
|
| + config_dir_path.Append(FILE_PATH_LITERAL("recommended")));
|
| + } else {
|
| + managed_prefs_provider = new DummyConfigurationPolicyProvider();
|
| + recommended_prefs_provider = new DummyConfigurationPolicyProvider();
|
| + }
|
| #endif
|
|
|
| - // The ConfigurationPolicyPrefStore take the ownership of the passed
|
| + // The ConfigurationPolicyPrefStore takes ownership of the passed
|
| // |provider|.
|
| managed_prefs = new ConfigurationPolicyPrefStore(
|
| CommandLine::ForCurrentProcess(),
|
| managed_prefs_provider);
|
| + recommended_prefs = new ConfigurationPolicyPrefStore(
|
| + CommandLine::ForCurrentProcess(),
|
| + recommended_prefs_provider);
|
|
|
| // The PrefValueStore takes to ownership of the parameters.
|
| PrefValueStore* value_store = new PrefValueStore(
|
|
|