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 5a52ff0e5f58dd7d80361813b054922f7ff9bb34..95abfb65a1d73301d1cf7df0e185bafc63e6f992 100644 |
--- a/chrome/browser/policy/configuration_policy_provider.h |
+++ b/chrome/browser/policy/configuration_policy_provider.h |
@@ -28,8 +28,8 @@ class ConfigurationPolicyProvider { |
class Observer { |
public: |
virtual ~Observer(); |
- virtual void OnUpdatePolicy() = 0; |
- virtual void OnProviderGoingAway(); |
+ virtual void OnUpdatePolicy(ConfigurationPolicyProvider* provider) = 0; |
+ virtual void OnProviderGoingAway(ConfigurationPolicyProvider* provider); |
}; |
explicit ConfigurationPolicyProvider(const PolicyDefinitionList* policy_list); |
@@ -54,6 +54,13 @@ class ConfigurationPolicyProvider { |
void OverridePolicies(PolicyMap* policies); |
#endif |
+ // Asks the provider to refresh its policies. All the updates caused by this |
+ // call will be visible on the next call of OnUpdatePolicy on the observers, |
+ // which are guaranteed to happen even if the refresh fails. |
+ // It is possible that OnProviderGoingAway is called first though, and |
+ // OnUpdatePolicy won't be called if that happens. |
+ virtual void RefreshPolicies() = 0; |
+ |
protected: |
// Sends a policy update notification to observers. |
void NotifyPolicyUpdated(); |
@@ -100,8 +107,9 @@ class ConfigurationPolicyObserverRegistrar |
ConfigurationPolicyProvider::Observer* observer); |
// ConfigurationPolicyProvider::Observer implementation: |
- virtual void OnUpdatePolicy() OVERRIDE; |
- virtual void OnProviderGoingAway() OVERRIDE; |
+ virtual void OnUpdatePolicy(ConfigurationPolicyProvider* provider) OVERRIDE; |
+ virtual void OnProviderGoingAway( |
+ ConfigurationPolicyProvider* provider) OVERRIDE; |
ConfigurationPolicyProvider* provider() { return provider_; } |