| Index: chrome/browser/policy/configuration_policy_provider_mac.h
|
| diff --git a/chrome/browser/policy/configuration_policy_provider_mac.h b/chrome/browser/policy/configuration_policy_provider_mac.h
|
| index 4f0c4b10825d9522b6c85880a84e8d3e299ad924..0d6d15be73e5d6cf1a25b08fef258c70c7e08ee4 100644
|
| --- a/chrome/browser/policy/configuration_policy_provider_mac.h
|
| +++ b/chrome/browser/policy/configuration_policy_provider_mac.h
|
| @@ -7,28 +7,49 @@
|
| #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/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
|
|
|