Index: chrome/browser/policy/configuration_policy_provider.h |
diff --git a/chrome/browser/policy/configuration_policy_provider.h b/chrome/browser/policy/configuration_policy_provider.h |
index 9ed150c2edcea4db27a7506dc6dec680188f4919..f12b285fafd47b112ae2c2d2320bdfab54c9fd5e 100644 |
--- a/chrome/browser/policy/configuration_policy_provider.h |
+++ b/chrome/browser/policy/configuration_policy_provider.h |
@@ -6,12 +6,10 @@ |
#define CHROME_BROWSER_POLICY_CONFIGURATION_POLICY_PROVIDER_H_ |
#pragma once |
-#include <map> |
-#include <string> |
- |
#include "base/basictypes.h" |
#include "base/memory/scoped_ptr.h" |
#include "base/observer_list.h" |
+#include "chrome/browser/policy/policy_bundle.h" |
namespace policy { |
@@ -37,8 +35,13 @@ class ConfigurationPolicyProvider { |
// Fills the given |result| with the current policy values. Returns true if |
// the policies were provided. This is used mainly by the |
// ConfigurationPolicyPrefStore, which retrieves policy values from here. |
+ // DEPRECATED: this call is going away, use policies() instead. |
+ // http://crbug.com/108993 |
bool Provide(PolicyMap* result); |
+ // Returns the current PolicyBundle. |
+ const PolicyBundle& policies() const { return policy_bundle_; } |
+ |
// Check whether this provider has completed initialization. This is used to |
// detect whether initialization is done in case providers implementations |
// need to do asynchronous operations for initialization. |
@@ -57,11 +60,10 @@ class ConfigurationPolicyProvider { |
static void FixDeprecatedPolicies(PolicyMap* policies); |
protected: |
- // Sends a policy update notification to observers. |
- void NotifyPolicyUpdated(); |
- |
- // Must be implemented by subclasses to provide their policy values. |
- virtual bool ProvideInternal(PolicyMap* result) = 0; |
+ // Subclasses must invoke this to update the policies currently served by |
+ // this provider. UpdatePolicy() takes ownership of |policies|. |
+ // The observers are notified after the policies are updated. |
+ void UpdatePolicy(scoped_ptr<PolicyBundle> bundle); |
const PolicyDefinitionList* policy_definition_list() const { |
return policy_definition_list_; |
@@ -73,6 +75,9 @@ class ConfigurationPolicyProvider { |
virtual void AddObserver(Observer* observer); |
virtual void RemoveObserver(Observer* observer); |
+ // The policies currently configured at this provider. |
+ PolicyBundle policy_bundle_; |
+ |
// Contains the default mapping from policy values to the actual names. |
const PolicyDefinitionList* policy_definition_list_; |