diff options
author | joaodasilva@chromium.org <joaodasilva@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-04-17 12:00:52 +0000 |
---|---|---|
committer | joaodasilva@chromium.org <joaodasilva@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-04-17 12:00:52 +0000 |
commit | 1f1a16e1437c22ababfd25009a77125686620c61 (patch) | |
tree | a1a8308fc2636df617ad3c3e77e60ec480e3a1ac /chrome/browser/policy/configuration_policy_store_interface.h | |
parent | 570ef55fa9156a6f985584eed809e4366c1a7e57 (diff) | |
download | chromium_src-1f1a16e1437c22ababfd25009a77125686620c61.zip chromium_src-1f1a16e1437c22ababfd25009a77125686620c61.tar.gz chromium_src-1f1a16e1437c22ababfd25009a77125686620c61.tar.bz2 |
Merge proxy settings from device into profile preferences, when provided by cloud policy.
Some cleanups too.
BUG=None
TEST=None
Review URL: http://codereview.chromium.org/6853021
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@81909 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/policy/configuration_policy_store_interface.h')
-rw-r--r-- | chrome/browser/policy/configuration_policy_store_interface.h | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/chrome/browser/policy/configuration_policy_store_interface.h b/chrome/browser/policy/configuration_policy_store_interface.h index 1d3bf43..b05fab4 100644 --- a/chrome/browser/policy/configuration_policy_store_interface.h +++ b/chrome/browser/policy/configuration_policy_store_interface.h @@ -7,6 +7,7 @@ #pragma once #include "base/basictypes.h" +#include "base/compiler_specific.h" #include "policy/configuration_policy_type.h" class Value; @@ -49,6 +50,48 @@ class ConfigurationPolicyStoreInterface { DISALLOW_COPY_AND_ASSIGN(ConfigurationPolicyStoreInterface); }; +// Helper class. A pass-through ConfigurationPolicyStoreInterface, that observes +// the application of well-known policies. +class ObservingPolicyStoreInterface: public ConfigurationPolicyStoreInterface { + public: + explicit ObservingPolicyStoreInterface( + ConfigurationPolicyStoreInterface* next) + : next_(next), + proxy_policy_applied_(false) {} + + // ConfigurationPolicyStoreInterface methods: + virtual void Apply(ConfigurationPolicyType policy, Value* value) OVERRIDE; + + bool IsProxyPolicyApplied() const { + return proxy_policy_applied_; + } + + private: + ConfigurationPolicyStoreInterface* next_; + bool proxy_policy_applied_; + + DISALLOW_COPY_AND_ASSIGN(ObservingPolicyStoreInterface); +}; + +// Helper class. A ConfigurationPolicyStoreInterface that filters out most +// policies, and only applies well-known policies. +class FilteringPolicyStoreInterface: public ConfigurationPolicyStoreInterface { + public: + FilteringPolicyStoreInterface(ConfigurationPolicyStoreInterface* next, + bool apply_proxy_policies) + : next_(next), + apply_proxy_policies_(apply_proxy_policies) {} + + // ConfigurationPolicyStoreInterface methods: + virtual void Apply(ConfigurationPolicyType policy, Value* value) OVERRIDE; + + private: + ConfigurationPolicyStoreInterface* next_; + bool apply_proxy_policies_; + + DISALLOW_COPY_AND_ASSIGN(FilteringPolicyStoreInterface); +}; + } // namespace policy #endif // CHROME_BROWSER_POLICY_CONFIGURATION_POLICY_STORE_INTERFACE_H_ |