Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4836)

Unified Diff: chrome/browser/configuration_policy_pref_store.cc

Issue 3046023: Create factories for policy pref stores. (Closed) Base URL: http://src.chromium.org/git/chromium.git
Patch Set: fix mac compile failure Created 10 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/configuration_policy_pref_store.h ('k') | chrome/browser/pref_service.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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;
« no previous file with comments | « chrome/browser/configuration_policy_pref_store.h ('k') | chrome/browser/pref_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698