Index: chrome/browser/configuration_policy_pref_store.cc |
diff --git a/chrome/browser/configuration_policy_pref_store.cc b/chrome/browser/configuration_policy_pref_store.cc |
index dc12e63ba156a8c2fdd4873a3309b153d3f06aee..57277d25e0bb9d92943dc682c8c21d163c379004 100644 |
--- a/chrome/browser/configuration_policy_pref_store.cc |
+++ b/chrome/browser/configuration_policy_pref_store.cc |
@@ -6,10 +6,20 @@ |
#include "base/command_line.h" |
#include "base/logging.h" |
+#include "base/path_service.h" |
#include "base/string16.h" |
#include "base/string_util.h" |
#include "base/values.h" |
#include "chrome/browser/configuration_policy_provider.h" |
+#if defined(OS_WIN) |
+#include "chrome/browser/configuration_policy_provider_win.h" |
+#elif defined(OS_MACOSX) |
+#include "chrome/browser/configuration_policy_provider_mac.h" |
+#elif defined(OS_POSIX) |
+#include "chrome/browser/config_dir_policy_provider.h" |
+#endif |
+#include "chrome/browser/dummy_configuration_policy_provider.h" |
+#include "chrome/common/chrome_paths.h" |
#include "chrome/common/chrome_switches.h" |
#include "chrome/common/pref_names.h" |
@@ -101,6 +111,48 @@ PrefStore::PrefReadError ConfigurationPolicyPrefStore::ReadPrefs() { |
PrefStore::PREF_READ_ERROR_NONE : PrefStore::PREF_READ_ERROR_OTHER; |
} |
+// static |
+ConfigurationPolicyPrefStore* |
+ConfigurationPolicyPrefStore::CreateManagedPolicyPrefStore() { |
+ ConfigurationPolicyProvider* provider; |
+#if defined(OS_WIN) |
+ provider = new ConfigurationPolicyProviderWin(); |
+#elif defined(OS_MACOSX) |
+ provider = new ConfigurationPolicyProviderMac(); |
+#elif defined(OS_POSIX) |
+ FilePath config_dir_path; |
+ if (PathService::Get(chrome::DIR_POLICY_FILES, &config_dir_path)) |
+ provider = new ConfigDirPolicyProvider( |
+ config_dir_path.Append(FILE_PATH_LITERAL("managed"))); |
+ else |
+ provider = new DummyConfigurationPolicyProvider(); |
+#else |
+ provider = new DummyConfigurationPolicyProvider(); |
+#endif |
+ |
+ return new ConfigurationPolicyPrefStore(CommandLine::ForCurrentProcess(), |
+ provider); |
+} |
+ |
+// static |
+ConfigurationPolicyPrefStore* |
+ConfigurationPolicyPrefStore::CreateRecommendedPolicyPrefStore() { |
+ ConfigurationPolicyProvider* provider; |
+#if defined(OS_POSIX) && !defined(OS_MACOSX) |
+ FilePath config_dir_path; |
+ if (PathService::Get(chrome::DIR_POLICY_FILES, &config_dir_path)) |
+ provider = new ConfigDirPolicyProvider( |
+ config_dir_path.Append(FILE_PATH_LITERAL("recommended"))); |
+ else |
+ provider = new DummyConfigurationPolicyProvider(); |
+#else |
+ provider = new DummyConfigurationPolicyProvider(); |
+#endif |
+ |
+ return new ConfigurationPolicyPrefStore(CommandLine::ForCurrentProcess(), |
+ provider); |
+} |
+ |
bool ConfigurationPolicyPrefStore::ApplyProxyPolicy(PolicyType policy, |
Value* value) { |
bool result = false; |