Index: chrome/browser/policy/async_policy_loader.h |
diff --git a/chrome/browser/policy/async_policy_loader.h b/chrome/browser/policy/async_policy_loader.h |
index 61529e71b6e7d287c2d7e642fd75e92e2bce1f47..f21b920caacb46e4af780e37370f1b10bbaf5dee 100644 |
--- a/chrome/browser/policy/async_policy_loader.h |
+++ b/chrome/browser/policy/async_policy_loader.h |
@@ -5,10 +5,14 @@ |
#ifndef CHROME_BROWSER_POLICY_ASYNC_POLICY_LOADER_H_ |
#define CHROME_BROWSER_POLICY_ASYNC_POLICY_LOADER_H_ |
+#include <map> |
+ |
#include "base/callback.h" |
+#include "base/memory/ref_counted.h" |
#include "base/memory/scoped_ptr.h" |
#include "base/memory/weak_ptr.h" |
#include "base/time.h" |
+#include "chrome/browser/policy/policy_domain_descriptor.h" |
namespace policy { |
@@ -52,6 +56,21 @@ class AsyncPolicyLoader { |
// makes sure the policies are reloaded if the update events aren't triggered. |
void Reload(bool force); |
+ // Passes the current |descriptor| for a domain, which is used to filter out |
+ // policies that aren't registered, or whose type doesn't match the expected |
+ // type. |
+ void RegisterPolicyDomain( |
+ scoped_refptr<const PolicyDomainDescriptor> descriptor); |
+ |
+ protected: |
+ typedef std::map<PolicyDomain, scoped_refptr<const PolicyDomainDescriptor> > |
+ DescriptorMap; |
+ |
+ // Returns the current DescriptorMap. This can be used by implementations to |
+ // determine the components registered for each domain, and to filter out |
+ // unknonwn policies. |
+ const DescriptorMap& descriptor_map() const { return descriptor_map_; } |
+ |
private: |
// Allow AsyncPolicyProvider to call Init(). |
friend class AsyncPolicyProvider; |
@@ -90,6 +109,9 @@ class AsyncPolicyLoader { |
// non-local filesystem involved. |
base::Time last_modification_clock_; |
+ // A map of the currently registered domains and their descriptors. |
+ DescriptorMap descriptor_map_; |
+ |
DISALLOW_COPY_AND_ASSIGN(AsyncPolicyLoader); |
}; |