Chromium Code Reviews| OLD | NEW |
|---|---|
| (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 #ifndef CHROME_BROWSER_POLICY_CONFIGURATION_POLICY_HANDLER_H_ | |
| 6 #define CHROME_BROWSER_POLICY_CONFIGURATION_POLICY_HANDLER_H_ | |
| 7 #pragma once | |
| 8 | |
| 9 #include "base/memory/scoped_ptr.h" | |
| 10 #include "base/values.h" | |
| 11 #include "chrome/browser/policy/configuration_policy_handler_interface.h" | |
| 12 #include "chrome/browser/prefs/incognito_mode_prefs.h" | |
| 13 #include "policy/configuration_policy_type.h" | |
| 14 | |
| 15 namespace policy { | |
| 16 | |
| 17 // Abstract class derived from ConfigurationPolicyHandlerInterface that should | |
| 18 // be subclassed to handle a single policy (not a combination of policies). | |
| 19 class CheckPolicyValueType : public ConfigurationPolicyHandlerInterface { | |
|
Mattias Nissler (ping if slow)
2011/09/20 13:12:25
Maybe rename to TypeCheckingPolicyHandler?
simo
2011/09/22 11:43:26
Done.
| |
| 20 public: | |
| 21 CheckPolicyValueType(ConfigurationPolicyType policy, | |
| 22 base::Value::Type value_type, | |
| 23 const char* pref_path); | |
|
Mattias Nissler (ping if slow)
2011/09/20 13:12:25
Why do you have the pref_path as a constructor arg
simo
2011/09/22 11:43:26
I've removed it and I'm using PolicyStatus::GetPol
| |
| 24 | |
| 25 // ConfigurationPolicyHandlerInterface method. Returns true if the value of | |
| 26 // the policy is of the correct type and false otherwise. | |
| 27 virtual bool CheckPolicySettings(PolicyMap* policies, | |
| 28 PolicyErrorMap* errors) OVERRIDE; | |
| 29 | |
| 30 protected: | |
| 31 virtual ~CheckPolicyValueType(); | |
| 32 | |
| 33 // Returns a weak reference to the value pointed to by policy_value_.get(). | |
|
Mattias Nissler (ping if slow)
2011/09/20 13:12:25
Comment doesn't apply?
simo
2011/09/22 11:43:26
Done.
| |
| 34 ConfigurationPolicyType policy_type() const; | |
| 35 const char* pref_path() const; | |
| 36 | |
| 37 private: | |
| 38 static std::string ValueTypeToString(Value::Type type); | |
| 39 | |
| 40 // The ConfigurationPolicyType of the policy. | |
| 41 ConfigurationPolicyType policy_type_; | |
| 42 | |
| 43 // The type the value of the policy should have. | |
| 44 base::Value::Type value_type_; | |
| 45 | |
| 46 // The DictionaryValue path of the preference the policy maps to. | |
| 47 const char* pref_path_; | |
| 48 | |
| 49 DISALLOW_COPY_AND_ASSIGN(CheckPolicyValueType); | |
| 50 }; | |
| 51 | |
| 52 // ConfigurationPolicyHandlerInterface implementation for policies that map | |
| 53 // directly to a preference. | |
| 54 class SimplePolicyHandler : public CheckPolicyValueType { | |
| 55 public: | |
| 56 // SimplePolicyHandler takes ownership of |value|.|value| must be non-NULL. | |
| 57 SimplePolicyHandler(ConfigurationPolicyType policy, | |
| 58 base::Value::Type value_type, | |
| 59 const char* pref_path); | |
| 60 | |
| 61 virtual ~SimplePolicyHandler(); | |
| 62 | |
| 63 // ConfigurationPolicyHandlerInterface method: | |
| 64 virtual void ApplyPolicySettings(PolicyMap* policies, | |
| 65 PrefValueMap* prefs) OVERRIDE; | |
| 66 | |
| 67 private: | |
| 68 DISALLOW_COPY_AND_ASSIGN(SimplePolicyHandler); | |
| 69 }; | |
| 70 | |
| 71 // ConfigurationPolicyHandlerInterface implementation for the SyncDisabled | |
| 72 // policy. | |
| 73 class SyncPolicyHandler : public CheckPolicyValueType { | |
| 74 public: | |
| 75 // SyncPolicyHandler takes ownership of |value|. |value| must be non-NULL. | |
| 76 SyncPolicyHandler(); | |
| 77 virtual ~SyncPolicyHandler(); | |
| 78 | |
| 79 // ConfigurationPolicyHandlerInterface method: | |
| 80 virtual void ApplyPolicySettings(PolicyMap* policies, | |
| 81 PrefValueMap* prefs) OVERRIDE; | |
| 82 | |
| 83 private: | |
| 84 DISALLOW_COPY_AND_ASSIGN(SyncPolicyHandler); | |
| 85 }; | |
| 86 | |
| 87 // ConfigurationPolicyHandlerInterface implementation for the AutofillEnabled | |
| 88 // policy. | |
| 89 class AutofillPolicyHandler : public CheckPolicyValueType { | |
| 90 public: | |
| 91 // AutofillPolicyHandler takes ownership of |value|. |value| must be non-NULL. | |
| 92 AutofillPolicyHandler(); | |
| 93 virtual ~AutofillPolicyHandler(); | |
| 94 | |
| 95 // ConfigurationPolicyHandlerInterface method: | |
| 96 virtual void ApplyPolicySettings(PolicyMap* policies, | |
| 97 PrefValueMap* prefs) OVERRIDE; | |
| 98 | |
| 99 private: | |
| 100 DISALLOW_COPY_AND_ASSIGN(AutofillPolicyHandler); | |
| 101 }; | |
| 102 | |
| 103 // ConfigurationPolicyHandlerInterface implementation for the DownloadDirectory | |
| 104 // policy. | |
| 105 class DownloadDirPolicyHandler : public CheckPolicyValueType { | |
| 106 public: | |
| 107 // DownloadDirPolicyHandler takes ownership of |value|. |value| must be | |
| 108 // non-NULL. | |
| 109 DownloadDirPolicyHandler(); | |
| 110 virtual ~DownloadDirPolicyHandler(); | |
| 111 | |
| 112 // CheckPolicyValueType method: | |
| 113 virtual bool CheckPolicySettings(PolicyMap* map, | |
| 114 PolicyErrorMap* errors) OVERRIDE; | |
| 115 | |
| 116 // ConfigurationPolicyHandlerInterface method: | |
| 117 virtual void ApplyPolicySettings(PolicyMap* policies, | |
| 118 PrefValueMap* prefs) OVERRIDE; | |
| 119 | |
| 120 private: | |
| 121 DISALLOW_COPY_AND_ASSIGN(DownloadDirPolicyHandler); | |
| 122 }; | |
| 123 | |
| 124 // ConfigurationPolicyHandlerInterface implementation for the DiskCacheDir | |
| 125 // policy. | |
| 126 class DiskCacheDirPolicyHandler : public CheckPolicyValueType { | |
| 127 public: | |
| 128 // DiskCacheDirPolicyHandler takes ownership of |value|. |value| must be | |
| 129 // non-NULL. | |
| 130 explicit DiskCacheDirPolicyHandler(); | |
| 131 virtual ~DiskCacheDirPolicyHandler(); | |
| 132 | |
| 133 // ConfigurationPolicyHandlerInterface method: | |
| 134 virtual void ApplyPolicySettings(PolicyMap* policies, | |
| 135 PrefValueMap* prefs) OVERRIDE; | |
| 136 | |
| 137 private: | |
| 138 DISALLOW_COPY_AND_ASSIGN(DiskCacheDirPolicyHandler); | |
| 139 }; | |
| 140 | |
| 141 // ConfigurationPolicyHandlerInterface implementation for the | |
| 142 // FileSelectionDialogsHandler policy. | |
| 143 class FileSelectionDialogsHandler : public CheckPolicyValueType { | |
| 144 public: | |
| 145 // FileSelectionDialogsHandler takes ownership of |value|. |value| must be | |
| 146 // non-NULL. | |
| 147 FileSelectionDialogsHandler(); | |
| 148 virtual ~FileSelectionDialogsHandler(); | |
| 149 | |
| 150 // ConfigurationPolicyHandlerInterface method: | |
| 151 virtual void ApplyPolicySettings(PolicyMap* policies, | |
| 152 PrefValueMap* prefs) OVERRIDE; | |
| 153 | |
| 154 private: | |
| 155 DISALLOW_COPY_AND_ASSIGN(FileSelectionDialogsHandler); | |
| 156 }; | |
| 157 | |
| 158 // ConfigurationPolicyHandlerInterface implementation for the BookmarkBarEnabled | |
| 159 // policy. | |
| 160 class BookmarksPolicyHandler : public CheckPolicyValueType { | |
| 161 public: | |
| 162 // BookmarksPolicyHandler takes ownership of |value|. |value| must be | |
| 163 // non-NULL. | |
| 164 BookmarksPolicyHandler(); | |
| 165 virtual ~BookmarksPolicyHandler(); | |
| 166 | |
| 167 // ConfigurationPolicyHandlerInterface method: | |
| 168 virtual void ApplyPolicySettings(PolicyMap* policies, | |
| 169 PrefValueMap* prefs) OVERRIDE; | |
| 170 | |
| 171 private: | |
| 172 DISALLOW_COPY_AND_ASSIGN(BookmarksPolicyHandler); | |
| 173 }; | |
| 174 | |
| 175 // ConfigurationPolicyHandlerInterface implementation for the incognito mode | |
| 176 // policies. | |
| 177 class IncognitoModePolicyHandler : public ConfigurationPolicyHandlerInterface { | |
| 178 public: | |
| 179 // IncognitoModePolicyHandler takes ownership of |incognito_mode_availability| | |
| 180 // and |incognito_enabled_value|.Set |incognito_mode_availability| or | |
| 181 // |incognito_enabled_value| to NULL if there is no value for the | |
| 182 // corresponding policy. | |
| 183 IncognitoModePolicyHandler(); | |
| 184 virtual ~IncognitoModePolicyHandler(); | |
| 185 | |
| 186 // ConfigurationPolicyHandlerInterface methods: | |
| 187 virtual bool CheckPolicySettings(PolicyMap* policies, | |
| 188 PolicyErrorMap* errors) OVERRIDE; | |
| 189 virtual void ApplyPolicySettings(PolicyMap* policies, | |
| 190 PrefValueMap* prefs) OVERRIDE; | |
| 191 | |
| 192 private: | |
| 193 // The value of kPolicyIncognitoModeAvailability as an enum. | |
| 194 IncognitoModePrefs::Availability availability_enum_value_; | |
| 195 | |
| 196 DISALLOW_COPY_AND_ASSIGN(IncognitoModePolicyHandler); | |
| 197 }; | |
| 198 | |
| 199 // ConfigurationPolicyHandlerInterface implementation for the | |
| 200 // DefaultSearchEncodings policy. | |
| 201 class DefaultSearchEncodingsPolicyHandler : public CheckPolicyValueType { | |
| 202 public: | |
| 203 DefaultSearchEncodingsPolicyHandler(); | |
| 204 virtual ~DefaultSearchEncodingsPolicyHandler(); | |
| 205 | |
| 206 // ConfigurationPolicyHandlerInterface method: | |
| 207 virtual void ApplyPolicySettings(PolicyMap* policies, | |
| 208 PrefValueMap* prefs) OVERRIDE; | |
| 209 | |
| 210 private: | |
| 211 DISALLOW_COPY_AND_ASSIGN(DefaultSearchEncodingsPolicyHandler); | |
| 212 }; | |
| 213 | |
| 214 // ConfigurationPolicyHandlerInterface implementation for the default search | |
| 215 // policies. | |
| 216 class DefaultSearchPolicyHandler : public ConfigurationPolicyHandlerInterface { | |
| 217 public: | |
| 218 DefaultSearchPolicyHandler(); | |
| 219 virtual ~DefaultSearchPolicyHandler(); | |
| 220 | |
| 221 // ConfigurationPolicyHandlerInterface methods: | |
| 222 virtual bool CheckPolicySettings(PolicyMap* policies, | |
| 223 PolicyErrorMap* errors) OVERRIDE; | |
| 224 virtual void ApplyPolicySettings(PolicyMap* policies, | |
| 225 PrefValueMap* prefs) OVERRIDE; | |
| 226 | |
| 227 private: | |
| 228 typedef std::vector<ConfigurationPolicyHandlerInterface*> HandlerList; | |
| 229 | |
| 230 // Calls |CheckPolicySettings()| on each of the handlers in |handlers_| and | |
| 231 // returns true if all of the calls return true and false otherwise. | |
| 232 bool CheckIndividualPolicies(PolicyMap* policies, PolicyErrorMap* errors); | |
| 233 | |
| 234 // Returns true if the default search provider is disabled and false | |
| 235 // otherwise. | |
| 236 bool DefaultSearchProviderIsDisabled(PolicyMap* policies); | |
| 237 | |
| 238 // Returns true if the default search URL was set and is valid and false | |
| 239 // otherwise. | |
| 240 bool DefaultSearchURLIsPresentAndValid(PolicyMap* policies); | |
| 241 | |
| 242 // Make sure that the |path| if present in |prefs_|. If not, set it to | |
| 243 // a blank string. | |
| 244 void EnsureStringPrefExists(PrefValueMap* prefs, const std::string& path); | |
| 245 | |
| 246 // Clears all default search preferences in |prefs|. | |
| 247 void ClearDefaultSearchPreferences(PrefValueMap* prefs); | |
| 248 | |
| 249 // The ConfigurationPolicyHandlerInterface handlers for each of default search | |
| 250 // policies. | |
| 251 HandlerList handlers_; | |
| 252 | |
| 253 DISALLOW_COPY_AND_ASSIGN(DefaultSearchPolicyHandler); | |
| 254 }; | |
| 255 | |
| 256 // ConfigurationPolicyHandlerInterface implementation for the proxy policies. | |
| 257 class ProxyPolicyHandler : public ConfigurationPolicyHandlerInterface { | |
| 258 public: | |
| 259 ProxyPolicyHandler(); | |
| 260 virtual ~ProxyPolicyHandler(); | |
| 261 | |
| 262 // ConfigurationPolicyHandlerInterface methods: | |
| 263 virtual bool CheckPolicySettings(PolicyMap* map, | |
| 264 PolicyErrorMap* errors) OVERRIDE; | |
| 265 virtual void ApplyPolicySettings(PolicyMap* policies, | |
| 266 PrefValueMap* prefs) OVERRIDE; | |
| 267 | |
| 268 private: | |
| 269 DISALLOW_COPY_AND_ASSIGN(ProxyPolicyHandler); | |
| 270 }; | |
| 271 | |
| 272 } // namespace policy | |
| 273 | |
| 274 #endif // CHROME_BROWSER_POLICY_CONFIGURATION_POLICY_HANDLER_H_ | |
| OLD | NEW |