| 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
|
| index 874a9ccca5b74a01d5da003eb35064a688f0515c..522b53883fc77fcb7d97d060a0484f5b43e764d3 100644
|
| --- a/chrome/browser/configuration_policy_provider_win.h
|
| +++ b/chrome/browser/configuration_policy_provider_win.h
|
| @@ -6,6 +6,9 @@
|
| #define CHROME_BROWSER_CONFIGURATION_POLICY_PROVIDER_WIN_H_
|
| #pragma once
|
|
|
| +#include "base/object_watcher.h"
|
| +#include "base/scoped_ptr.h"
|
| +#include "base/waitable_event.h"
|
| #include "chrome/browser/configuration_policy_store.h"
|
| #include "chrome/browser/configuration_policy_provider.h"
|
|
|
| @@ -17,6 +20,23 @@
|
| // the latest version of the policy set by administrators.
|
| class ConfigurationPolicyProviderWin : public ConfigurationPolicyProvider {
|
| public:
|
| + // Keeps watch on Windows Group Policy notification event to trigger
|
| + // a policy reload when Group Policy changes.
|
| + class GroupPolicyChangeWatcher : public base::ObjectWatcher::Delegate {
|
| + public:
|
| + explicit GroupPolicyChangeWatcher(ConfigurationPolicyProvider* provider);
|
| + virtual ~GroupPolicyChangeWatcher() {}
|
| +
|
| + virtual void OnObjectSignaled(HANDLE object);
|
| +
|
| + private:
|
| + ConfigurationPolicyProvider* provider_;
|
| + base::WaitableEvent user_policy_changed_event_;
|
| + base::WaitableEvent machine_policy_changed_event_;
|
| + base::ObjectWatcher user_policy_watcher_;
|
| + base::ObjectWatcher machine_policy_watcher_;
|
| + };
|
| +
|
| ConfigurationPolicyProviderWin();
|
| virtual ~ConfigurationPolicyProviderWin() { }
|
|
|
| @@ -29,6 +49,8 @@ class ConfigurationPolicyProviderWin : public ConfigurationPolicyProvider {
|
| static const wchar_t kPolicyRegistrySubKey[];
|
|
|
| private:
|
| + scoped_ptr<GroupPolicyChangeWatcher> watcher_;
|
| +
|
| // Methods to perfrom type-specific policy lookups in the registry.
|
| // HKLM is checked first, then HKCU.
|
| bool GetRegistryPolicyString(const wchar_t* value_name, string16* result);
|
|
|