| Index: chrome/browser/policy/cloud_policy_provider_impl.h
|
| diff --git a/chrome/browser/policy/cloud_policy_provider_impl.h b/chrome/browser/policy/cloud_policy_provider_impl.h
|
| index 71ef32c109b80d3415c7a8c305a52fd0939b4489..06f2b9c3b970caa78f30ce81c3426d25c92f5a64 100644
|
| --- a/chrome/browser/policy/cloud_policy_provider_impl.h
|
| +++ b/chrome/browser/policy/cloud_policy_provider_impl.h
|
| @@ -14,16 +14,20 @@
|
|
|
| namespace policy {
|
|
|
| +class BrowserPolicyConnector;
|
| +
|
| class CloudPolicyProviderImpl : public CloudPolicyProvider,
|
| public CloudPolicyCacheBase::Observer {
|
| public:
|
| - CloudPolicyProviderImpl(const PolicyDefinitionList* policy_list,
|
| + CloudPolicyProviderImpl(BrowserPolicyConnector* browser_policy_connector,
|
| + const PolicyDefinitionList* policy_list,
|
| CloudPolicyCacheBase::PolicyLevel level);
|
| virtual ~CloudPolicyProviderImpl();
|
|
|
| // ConfigurationPolicyProvider implementation.
|
| virtual bool ProvideInternal(PolicyMap* result) OVERRIDE;
|
| virtual bool IsInitializationComplete() const OVERRIDE;
|
| + virtual void RefreshPolicies() OVERRIDE;
|
|
|
| // CloudPolicyCacheBase::Observer implementation.
|
| virtual void OnCacheUpdate(CloudPolicyCacheBase* cache) OVERRIDE;
|
| @@ -34,6 +38,8 @@ class CloudPolicyProviderImpl : public CloudPolicyProvider,
|
| private:
|
| friend class CloudPolicyProviderTest;
|
|
|
| + typedef std::vector<CloudPolicyCacheBase*> ListType;
|
| +
|
| // Combines two PolicyMap and stores the result in out_map. The policies in
|
| // |base| take precedence over the policies in |overlay|. Proxy policies are
|
| // only applied in groups, that is if at least one proxy policy is present in
|
| @@ -50,10 +56,19 @@ class CloudPolicyProviderImpl : public CloudPolicyProvider,
|
| // groups.
|
| void RecombineCachesAndTriggerUpdate();
|
|
|
| + // Removes |cache| from |caches|, if contained therein.
|
| + static void RemoveCache(CloudPolicyCacheBase* cache, ListType* caches);
|
| +
|
| + // Weak pointer to the connector. Guaranteed to outlive |this|.
|
| + BrowserPolicyConnector* browser_policy_connector_;
|
| +
|
| // The underlying policy caches.
|
| - typedef std::vector<CloudPolicyCacheBase*> ListType;
|
| ListType caches_;
|
|
|
| + // Caches with pending updates. Used by RefreshPolicies to determine if a
|
| + // refresh has fully completed.
|
| + ListType pending_update_caches_;
|
| +
|
| // Policy level this provider will handle.
|
| CloudPolicyCacheBase::PolicyLevel level_;
|
|
|
|
|