Index: chrome/browser/configuration_policy_provider_win.h |
diff --git a/chrome/browser/configuration_policy_provider_win.h b/chrome/browser/configuration_policy_provider_win.h |
new file mode 100755 |
index 0000000000000000000000000000000000000000..ccf8a247d6f27b7c1e57d6fad0bafb3e25fac110 |
--- /dev/null |
+++ b/chrome/browser/configuration_policy_provider_win.h |
@@ -0,0 +1,57 @@ |
+// Copyright (c) 2010 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef CHROME_BROWSER_CONFIGURATION_POLICY_PROVIDER_WIN_H_ |
+#define CHROME_BROWSER_CONFIGURATION_POLICY_PROVIDER_WIN_H_ |
+ |
+#include "chrome/browser/configuration_policy_store.h" |
+#include "chrome/browser/configuration_policy_provider.h" |
+ |
+// An implementation of |ConfigurationPolicyProvider| using the |
+// mechanism provided by Windows Groups Policy. Policy decisions are |
+// stored as values in a special section of the Windows Registry. |
+// On a managed machine in a domain, this portion of the registry is |
+// periodically updated by the Windows Group Policy machinery to contain |
+// the latest version of the policy set by administrators. |
+class WinConfigurationPolicyProvider : public ConfigurationPolicyProvider { |
+ public: |
+ WinConfigurationPolicyProvider(); |
+ virtual ~WinConfigurationPolicyProvider() { } |
+ |
+ // ConfigurationPolicyProvider method overrides: |
+ virtual bool Provide(ConfigurationPolicyStore* store); |
+ |
+ protected: |
+ // The sub key path for Chromiums's Group Policy information in the |
+ // Windows registry. |
+ static const wchar_t kPolicyRegistrySubKey[]; |
+ |
+ // Constants specifying the names of policy-specifying registry values |
+ // in |kChromiumPolicySubKey|. |
+ static const wchar_t kHomepageRegistryValueName[]; |
+ static const wchar_t kHomepageIsNewTabPageRegistryValueName[]; |
+ static const wchar_t kCookiesModeRegistryValueName[]; |
+ |
+ private: |
+ // For each Group Policy registry value that maps to a browser policy, there |
+ // is an entry in |registry_to_policy_map_| of type |RegistryPolicyMapEntry| |
+ // that specifies the registry value name and the browser policy that it |
+ // maps to. |
+ struct RegistryPolicyMapEntry { |
+ Value::ValueType value_type; |
+ ConfigurationPolicyStore::PolicyType policy_type; |
+ const wchar_t* registry_value_name; |
+ }; |
+ |
+ static const RegistryPolicyMapEntry registry_to_policy_map_[]; |
+ |
+ // Methods to perfrom type-specific policy lookups in the registry |
+ // HKLM is checked fist, then HKLM. |
+ bool GetRegistryPolicyString(const wchar_t* value_name, string16* result); |
+ bool GetRegistryPolicyBoolean(const wchar_t* value_name, bool* result); |
+ bool GetRegistryPolicyInteger(const wchar_t* value_name, uint32* result); |
+}; |
+ |
+#endif // CHROME_BROWSER_CONFIGURATION_POLICY_PROVIDER_WIN_H_ |
+ |