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

Side by Side Diff: components/policy/core/browser/configuration_policy_handler.h

Issue 109743002: Move policy code into components/policy. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: moar fixes Created 7 years 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
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_POLICY_CONFIGURATION_POLICY_HANDLER_H_ 5 #ifndef COMPONENTS_POLICY_CORE_BROWSER_CONFIGURATION_POLICY_HANDLER_H_
6 #define CHROME_BROWSER_POLICY_CONFIGURATION_POLICY_HANDLER_H_ 6 #define COMPONENTS_POLICY_CORE_BROWSER_CONFIGURATION_POLICY_HANDLER_H_
7 7
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
11 #include "base/basictypes.h" 11 #include "base/basictypes.h"
12 #include "base/memory/scoped_ptr.h" 12 #include "base/memory/scoped_ptr.h"
13 #include "base/values.h" 13 #include "base/values.h"
14 #include "components/policy/policy_export.h"
14 15
15 class PrefValueMap; 16 class PrefValueMap;
16 17
17 namespace policy { 18 namespace policy {
18 19
19 class PolicyErrorMap; 20 class PolicyErrorMap;
20 class PolicyMap; 21 class PolicyMap;
21 22
22 // Maps a policy type to a preference path, and to the expected value type. 23 // Maps a policy type to a preference path, and to the expected value type.
23 struct PolicyToPreferenceMapEntry { 24 struct POLICY_EXPORT PolicyToPreferenceMapEntry {
24 const char* const policy_name; 25 const char* const policy_name;
25 const char* const preference_path; 26 const char* const preference_path;
26 const base::Value::Type value_type; 27 const base::Value::Type value_type;
27 }; 28 };
28 29
29 // An abstract super class that subclasses should implement to map policies to 30 // An abstract super class that subclasses should implement to map policies to
30 // their corresponding preferences, and to check whether the policies are valid. 31 // their corresponding preferences, and to check whether the policies are valid.
31 class ConfigurationPolicyHandler { 32 class POLICY_EXPORT ConfigurationPolicyHandler {
32 public: 33 public:
33 static std::string ValueTypeToString(Value::Type type); 34 static std::string ValueTypeToString(Value::Type type);
34 35
35 ConfigurationPolicyHandler(); 36 ConfigurationPolicyHandler();
36 virtual ~ConfigurationPolicyHandler(); 37 virtual ~ConfigurationPolicyHandler();
37 38
38 // Returns whether the policy settings handled by this 39 // Returns whether the policy settings handled by this
39 // ConfigurationPolicyHandler can be applied. Fills |errors| with error 40 // ConfigurationPolicyHandler can be applied. Fills |errors| with error
40 // messages or warnings. |errors| may contain error messages even when 41 // messages or warnings. |errors| may contain error messages even when
41 // |CheckPolicySettings()| returns true. 42 // |CheckPolicySettings()| returns true.
42 virtual bool CheckPolicySettings(const PolicyMap& policies, 43 virtual bool CheckPolicySettings(const PolicyMap& policies,
43 PolicyErrorMap* errors) = 0; 44 PolicyErrorMap* errors) = 0;
44 45
45 // Processes the policies handled by this ConfigurationPolicyHandler and sets 46 // Processes the policies handled by this ConfigurationPolicyHandler and sets
46 // the appropriate preferences in |prefs|. 47 // the appropriate preferences in |prefs|.
47 virtual void ApplyPolicySettings(const PolicyMap& policies, 48 virtual void ApplyPolicySettings(const PolicyMap& policies,
48 PrefValueMap* prefs) = 0; 49 PrefValueMap* prefs) = 0;
49 50
50 // Modifies the values of some of the policies in |policies| so that they 51 // Modifies the values of some of the policies in |policies| so that they
51 // are more suitable to display to the user. This can be used to remove 52 // are more suitable to display to the user. This can be used to remove
52 // sensitive values such as passwords, or to pretty-print values. 53 // sensitive values such as passwords, or to pretty-print values.
53 virtual void PrepareForDisplaying(PolicyMap* policies) const; 54 virtual void PrepareForDisplaying(PolicyMap* policies) const;
54 55
55 private: 56 private:
56 DISALLOW_COPY_AND_ASSIGN(ConfigurationPolicyHandler); 57 DISALLOW_COPY_AND_ASSIGN(ConfigurationPolicyHandler);
57 }; 58 };
58 59
59 // Abstract class derived from ConfigurationPolicyHandler that should be 60 // Abstract class derived from ConfigurationPolicyHandler that should be
60 // subclassed to handle a single policy (not a combination of policies). 61 // subclassed to handle a single policy (not a combination of policies).
61 class TypeCheckingPolicyHandler : public ConfigurationPolicyHandler { 62 class POLICY_EXPORT TypeCheckingPolicyHandler
63 : public ConfigurationPolicyHandler {
62 public: 64 public:
63 TypeCheckingPolicyHandler(const char* policy_name, 65 TypeCheckingPolicyHandler(const char* policy_name,
64 base::Value::Type value_type); 66 base::Value::Type value_type);
65 virtual ~TypeCheckingPolicyHandler(); 67 virtual ~TypeCheckingPolicyHandler();
66 68
67 // ConfigurationPolicyHandler methods: 69 // ConfigurationPolicyHandler methods:
68 virtual bool CheckPolicySettings(const PolicyMap& policies, 70 virtual bool CheckPolicySettings(const PolicyMap& policies,
69 PolicyErrorMap* errors) OVERRIDE; 71 PolicyErrorMap* errors) OVERRIDE;
70 72
71 const char* policy_name() const; 73 const char* policy_name() const;
(...skipping 10 matching lines...) Expand all
82 84
83 // The type the value of the policy should have. 85 // The type the value of the policy should have.
84 base::Value::Type value_type_; 86 base::Value::Type value_type_;
85 87
86 DISALLOW_COPY_AND_ASSIGN(TypeCheckingPolicyHandler); 88 DISALLOW_COPY_AND_ASSIGN(TypeCheckingPolicyHandler);
87 }; 89 };
88 90
89 // Abstract class derived from TypeCheckingPolicyHandler that ensures an int 91 // Abstract class derived from TypeCheckingPolicyHandler that ensures an int
90 // policy's value lies in an allowed range. Either clamps or rejects values 92 // policy's value lies in an allowed range. Either clamps or rejects values
91 // outside the range. 93 // outside the range.
92 class IntRangePolicyHandlerBase : public TypeCheckingPolicyHandler { 94 class POLICY_EXPORT IntRangePolicyHandlerBase
95 : public TypeCheckingPolicyHandler {
93 public: 96 public:
94 IntRangePolicyHandlerBase(const char* policy_name, 97 IntRangePolicyHandlerBase(const char* policy_name,
95 int min, 98 int min,
96 int max, 99 int max,
97 bool clamp); 100 bool clamp);
98 101
99 // ConfigurationPolicyHandler: 102 // ConfigurationPolicyHandler:
100 virtual bool CheckPolicySettings(const PolicyMap& policies, 103 virtual bool CheckPolicySettings(const PolicyMap& policies,
101 PolicyErrorMap* errors) OVERRIDE; 104 PolicyErrorMap* errors) OVERRIDE;
102 105
(...skipping 15 matching lines...) Expand all
118 int max_; 121 int max_;
119 122
120 // Whether to clamp values lying outside the allowed range instead of 123 // Whether to clamp values lying outside the allowed range instead of
121 // rejecting them. 124 // rejecting them.
122 bool clamp_; 125 bool clamp_;
123 126
124 DISALLOW_COPY_AND_ASSIGN(IntRangePolicyHandlerBase); 127 DISALLOW_COPY_AND_ASSIGN(IntRangePolicyHandlerBase);
125 }; 128 };
126 129
127 // ConfigurationPolicyHandler for policies that map directly to a preference. 130 // ConfigurationPolicyHandler for policies that map directly to a preference.
128 class SimplePolicyHandler : public TypeCheckingPolicyHandler { 131 class POLICY_EXPORT SimplePolicyHandler : public TypeCheckingPolicyHandler {
129 public: 132 public:
130 SimplePolicyHandler(const char* policy_name, 133 SimplePolicyHandler(const char* policy_name,
131 const char* pref_path, 134 const char* pref_path,
132 base::Value::Type value_type); 135 base::Value::Type value_type);
133 virtual ~SimplePolicyHandler(); 136 virtual ~SimplePolicyHandler();
134 137
135 // ConfigurationPolicyHandler methods: 138 // ConfigurationPolicyHandler methods:
136 virtual void ApplyPolicySettings(const PolicyMap& policies, 139 virtual void ApplyPolicySettings(const PolicyMap& policies,
137 PrefValueMap* prefs) OVERRIDE; 140 PrefValueMap* prefs) OVERRIDE;
138 141
139 private: 142 private:
140 // The DictionaryValue path of the preference the policy maps to. 143 // The DictionaryValue path of the preference the policy maps to.
141 const char* pref_path_; 144 const char* pref_path_;
142 145
143 DISALLOW_COPY_AND_ASSIGN(SimplePolicyHandler); 146 DISALLOW_COPY_AND_ASSIGN(SimplePolicyHandler);
144 }; 147 };
145 148
146 // A policy handler implementation that maps a string enum list to an int enum 149 // A policy handler implementation that maps a string enum list to an int enum
147 // list as specified by a mapping table. 150 // list as specified by a mapping table.
148 class StringToIntEnumListPolicyHandler : public TypeCheckingPolicyHandler { 151 class POLICY_EXPORT StringToIntEnumListPolicyHandler
152 : public TypeCheckingPolicyHandler {
149 public: 153 public:
150 struct MappingEntry { 154 struct POLICY_EXPORT MappingEntry {
151 const char* enum_value; 155 const char* enum_value;
152 int int_value; 156 int int_value;
153 }; 157 };
154 158
155 StringToIntEnumListPolicyHandler(const char* policy_name, 159 StringToIntEnumListPolicyHandler(const char* policy_name,
156 const char* pref_path, 160 const char* pref_path,
157 const MappingEntry* mapping_begin, 161 const MappingEntry* mapping_begin,
158 const MappingEntry* mapping_end); 162 const MappingEntry* mapping_end);
159 163
160 // ConfigurationPolicyHandler methods: 164 // ConfigurationPolicyHandler methods:
(...skipping 14 matching lines...) Expand all
175 179
176 // The mapping table. 180 // The mapping table.
177 const MappingEntry* mapping_begin_; 181 const MappingEntry* mapping_begin_;
178 const MappingEntry* mapping_end_; 182 const MappingEntry* mapping_end_;
179 183
180 DISALLOW_COPY_AND_ASSIGN(StringToIntEnumListPolicyHandler); 184 DISALLOW_COPY_AND_ASSIGN(StringToIntEnumListPolicyHandler);
181 }; 185 };
182 186
183 // A policy handler implementation that ensures an int policy's value lies in an 187 // A policy handler implementation that ensures an int policy's value lies in an
184 // allowed range. 188 // allowed range.
185 class IntRangePolicyHandler : public IntRangePolicyHandlerBase { 189 class POLICY_EXPORT IntRangePolicyHandler : public IntRangePolicyHandlerBase {
186 public: 190 public:
187 IntRangePolicyHandler(const char* policy_name, 191 IntRangePolicyHandler(const char* policy_name,
188 const char* pref_path, 192 const char* pref_path,
189 int min, 193 int min,
190 int max, 194 int max,
191 bool clamp); 195 bool clamp);
192 virtual ~IntRangePolicyHandler(); 196 virtual ~IntRangePolicyHandler();
193 197
194 // ConfigurationPolicyHandler: 198 // ConfigurationPolicyHandler:
195 virtual void ApplyPolicySettings(const PolicyMap& policies, 199 virtual void ApplyPolicySettings(const PolicyMap& policies,
196 PrefValueMap* prefs) OVERRIDE; 200 PrefValueMap* prefs) OVERRIDE;
197 201
198 private: 202 private:
199 // Name of the pref to write. 203 // Name of the pref to write.
200 const char* pref_path_; 204 const char* pref_path_;
201 205
202 DISALLOW_COPY_AND_ASSIGN(IntRangePolicyHandler); 206 DISALLOW_COPY_AND_ASSIGN(IntRangePolicyHandler);
203 }; 207 };
204 208
205 // A policy handler implementation that maps an int percentage value to a 209 // A policy handler implementation that maps an int percentage value to a
206 // double. 210 // double.
207 class IntPercentageToDoublePolicyHandler : public IntRangePolicyHandlerBase { 211 class POLICY_EXPORT IntPercentageToDoublePolicyHandler
212 : public IntRangePolicyHandlerBase {
208 public: 213 public:
209 IntPercentageToDoublePolicyHandler(const char* policy_name, 214 IntPercentageToDoublePolicyHandler(const char* policy_name,
210 const char* pref_path, 215 const char* pref_path,
211 int min, 216 int min,
212 int max, 217 int max,
213 bool clamp); 218 bool clamp);
214 virtual ~IntPercentageToDoublePolicyHandler(); 219 virtual ~IntPercentageToDoublePolicyHandler();
215 220
216 // ConfigurationPolicyHandler: 221 // ConfigurationPolicyHandler:
217 virtual void ApplyPolicySettings(const PolicyMap& policies, 222 virtual void ApplyPolicySettings(const PolicyMap& policies,
218 PrefValueMap* prefs) OVERRIDE; 223 PrefValueMap* prefs) OVERRIDE;
219 224
220 private: 225 private:
221 // Name of the pref to write. 226 // Name of the pref to write.
222 const char* pref_path_; 227 const char* pref_path_;
223 228
224 DISALLOW_COPY_AND_ASSIGN(IntPercentageToDoublePolicyHandler); 229 DISALLOW_COPY_AND_ASSIGN(IntPercentageToDoublePolicyHandler);
225 }; 230 };
226 231
227 } // namespace policy 232 } // namespace policy
228 233
229 #endif // CHROME_BROWSER_POLICY_CONFIGURATION_POLICY_HANDLER_H_ 234 #endif // COMPONENTS_POLICY_CORE_BROWSER_CONFIGURATION_POLICY_HANDLER_H_
OLDNEW
« no previous file with comments | « components/policy/core/browser/cloud/message_util.cc ('k') | components/policy/core/browser/configuration_policy_handler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698