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

Side by Side Diff: chrome/browser/policy/configuration_policy_provider_keeper.cc

Issue 6312121: Add initial device policy infrastructure. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix race condition and tests. Created 9 years, 10 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/browser/policy/configuration_policy_provider_keeper.h"
6
7 #include "base/path_service.h"
8 #include "chrome/browser/policy/configuration_policy_pref_store.h"
9 #include "chrome/browser/policy/configuration_policy_provider.h"
10 #if defined(OS_WIN)
11 #include "chrome/browser/policy/configuration_policy_provider_win.h"
12 #elif defined(OS_MACOSX)
13 #include "chrome/browser/policy/configuration_policy_provider_mac.h"
14 #elif defined(OS_POSIX)
15 #include "chrome/browser/policy/config_dir_policy_provider.h"
16 #endif
17 #include "chrome/browser/policy/dummy_configuration_policy_provider.h"
18 #include "chrome/common/chrome_paths.h"
19
20 namespace policy {
21
22 ConfigurationPolicyProviderKeeper::ConfigurationPolicyProviderKeeper()
23 : managed_platform_provider_(CreateManagedPlatformProvider()),
24 device_management_provider_(CreateDeviceManagementProvider()),
25 recommended_provider_(CreateRecommendedProvider()) {
26 }
27
28 ConfigurationPolicyProviderKeeper::ConfigurationPolicyProviderKeeper(
29 ConfigurationPolicyProvider* managed_platform_provider,
30 ConfigurationPolicyProvider* device_management_provider,
31 ConfigurationPolicyProvider* recommended_provider)
32 : managed_platform_provider_(managed_platform_provider),
33 device_management_provider_(device_management_provider),
34 recommended_provider_(recommended_provider) {
35 }
36
37 ConfigurationPolicyProviderKeeper::~ConfigurationPolicyProviderKeeper() {}
38
39 ConfigurationPolicyProvider*
40 ConfigurationPolicyProviderKeeper::managed_platform_provider() const {
41 return managed_platform_provider_.get();
42 }
43
44 ConfigurationPolicyProvider*
45 ConfigurationPolicyProviderKeeper::device_management_provider() const {
46 return device_management_provider_.get();
47 }
48
49 ConfigurationPolicyProvider*
50 ConfigurationPolicyProviderKeeper::recommended_provider() const {
51 return recommended_provider_.get();
52 }
53
54 ConfigurationPolicyProvider*
55 ConfigurationPolicyProviderKeeper::CreateManagedPlatformProvider() {
56 const ConfigurationPolicyProvider::PolicyDefinitionList* policy_list =
57 ConfigurationPolicyPrefStore::GetChromePolicyDefinitionList();
58 #if defined(OS_WIN)
59 return new ConfigurationPolicyProviderWin(policy_list);
60 #elif defined(OS_MACOSX)
61 return new ConfigurationPolicyProviderMac(policy_list);
62 #elif defined(OS_POSIX)
63 FilePath config_dir_path;
64 if (PathService::Get(chrome::DIR_POLICY_FILES, &config_dir_path)) {
65 return new ConfigDirPolicyProvider(
66 policy_list,
67 config_dir_path.Append(FILE_PATH_LITERAL("managed")));
68 } else {
69 return new DummyConfigurationPolicyProvider(policy_list);
70 }
71 #else
72 return new DummyConfigurationPolicyProvider(policy_list);
73 #endif
74 }
75
76 ConfigurationPolicyProvider*
77 ConfigurationPolicyProviderKeeper::CreateDeviceManagementProvider() {
78 return new DummyConfigurationPolicyProvider(
79 ConfigurationPolicyPrefStore::GetChromePolicyDefinitionList());
80 }
81
82 ConfigurationPolicyProvider*
83 ConfigurationPolicyProviderKeeper::CreateRecommendedProvider() {
84 const ConfigurationPolicyProvider::PolicyDefinitionList* policy_list =
85 ConfigurationPolicyPrefStore::GetChromePolicyDefinitionList();
86 #if defined(OS_POSIX) && !defined(OS_MACOSX)
87 FilePath config_dir_path;
88 if (PathService::Get(chrome::DIR_POLICY_FILES, &config_dir_path)) {
89 return new ConfigDirPolicyProvider(
90 policy_list,
91 config_dir_path.Append(FILE_PATH_LITERAL("recommended")));
92 } else {
93 return new DummyConfigurationPolicyProvider(policy_list);
94 }
95 #else
96 return new DummyConfigurationPolicyProvider(policy_list);
97 #endif
98 }
99
100 } // namespace
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698