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

Unified Diff: chrome/browser/policy/configuration_policy_provider_mac.h

Issue 4062002: Dynamic policy refresh support for the Mac. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: s/map/list/, nits. Created 10 years, 2 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 side-by-side diff with in-line comments
Download patch
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
« no previous file with comments | « chrome/browser/policy/configuration_policy_provider.cc ('k') | chrome/browser/policy/configuration_policy_provider_mac.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698