summaryrefslogtreecommitdiffstats
path: root/chrome/browser/policy/configuration_policy_store_interface.h
diff options
context:
space:
mode:
authorjoaodasilva@chromium.org <joaodasilva@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-17 12:00:52 +0000
committerjoaodasilva@chromium.org <joaodasilva@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-17 12:00:52 +0000
commit1f1a16e1437c22ababfd25009a77125686620c61 (patch)
treea1a8308fc2636df617ad3c3e77e60ec480e3a1ac /chrome/browser/policy/configuration_policy_store_interface.h
parent570ef55fa9156a6f985584eed809e4366c1a7e57 (diff)
downloadchromium_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.h43
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_