diff options
| author | Ben Murdoch <benm@google.com> | 2010-11-18 18:32:45 +0000 |
|---|---|---|
| committer | Ben Murdoch <benm@google.com> | 2010-11-18 18:38:07 +0000 |
| commit | 513209b27ff55e2841eac0e4120199c23acce758 (patch) | |
| tree | aeba30bb08c5f47c57003544e378a377c297eee6 /chrome/browser/policy/configuration_policy_provider_mac.h | |
| parent | 164f7496de0fbee436b385a79ead9e3cb81a50c1 (diff) | |
| download | external_chromium-513209b27ff55e2841eac0e4120199c23acce758.zip external_chromium-513209b27ff55e2841eac0e4120199c23acce758.tar.gz external_chromium-513209b27ff55e2841eac0e4120199c23acce758.tar.bz2 | |
Merge Chromium at r65505: Initial merge by git.
Change-Id: I31d8f1d8cd33caaf7f47ffa7350aef42d5fbdb45
Diffstat (limited to 'chrome/browser/policy/configuration_policy_provider_mac.h')
| -rw-r--r-- | chrome/browser/policy/configuration_policy_provider_mac.h | 46 |
1 files changed, 34 insertions, 12 deletions
diff --git a/chrome/browser/policy/configuration_policy_provider_mac.h b/chrome/browser/policy/configuration_policy_provider_mac.h index 4f0c4b1..d804500 100644 --- a/chrome/browser/policy/configuration_policy_provider_mac.h +++ b/chrome/browser/policy/configuration_policy_provider_mac.h @@ -7,28 +7,50 @@ #pragma once #include "base/scoped_ptr.h" -#include "chrome/browser/policy/configuration_policy_store.h" -#include "chrome/browser/policy/configuration_policy_provider.h" +#include "chrome/browser/policy/configuration_policy_store_interface.h" +#include "chrome/browser/policy/file_based_policy_provider.h" #include "chrome/browser/preferences_mac.h" namespace policy { +// A policy loader implementation that read Mac OS X's managed preferences. +class MacPreferencesPolicyLoader : public FileBasedPolicyProvider::Delegate { + public: + // Takes ownership of |preferences|. + MacPreferencesPolicyLoader( + MacPreferences* preferences, + const ConfigurationPolicyProvider::PolicyDefinitionList* policy_list); + + // FileBasedPolicyLoader::Delegate implementation. + virtual DictionaryValue* Load(); + virtual base::Time GetLastModification(); + + private: + // In order to access the application preferences API, the names and values of + // the policies that are recognized must be known to the loader. + // Unfortunately, we cannot get the policy list at load time from the + // provider, because the loader may outlive the provider, so we store our own + // pointer to the list. + const ConfigurationPolicyProvider::PolicyDefinitionList* policy_list_; + + scoped_ptr<MacPreferences> preferences_; + + DISALLOW_COPY_AND_ASSIGN(MacPreferencesPolicyLoader); +}; + // An implementation of |ConfigurationPolicyProvider| using the mechanism // provided by Mac OS X's managed preferences. -class ConfigurationPolicyProviderMac : public ConfigurationPolicyProvider { +class ConfigurationPolicyProviderMac + : public FileBasedPolicyProvider { public: explicit ConfigurationPolicyProviderMac( - const StaticPolicyValueMap& policy_map); + const ConfigurationPolicyProvider::PolicyDefinitionList* policy_list); // For testing; takes ownership of |preferences|. - ConfigurationPolicyProviderMac(const StaticPolicyValueMap& policy_map, - MacPreferences* preferences); - virtual ~ConfigurationPolicyProviderMac() { } + ConfigurationPolicyProviderMac( + const ConfigurationPolicyProvider::PolicyDefinitionList* policy_list, + MacPreferences* preferences); - // ConfigurationPolicyProvider method overrides: - virtual bool Provide(ConfigurationPolicyStore* store); - - protected: - scoped_ptr<MacPreferences> preferences_; + DISALLOW_COPY_AND_ASSIGN(ConfigurationPolicyProviderMac); }; } // namespace policy |
