Index: chrome/browser/policy/configuration_policy_provider_win.h |
diff --git a/chrome/browser/policy/configuration_policy_provider_win.h b/chrome/browser/policy/configuration_policy_provider_win.h |
index c2d5509d0d6a417f81591b4c1dcd8326180ba0f3..31e4a2bd8a68ea54f25073765f1a7996afdbc7ce 100644 |
--- a/chrome/browser/policy/configuration_policy_provider_win.h |
+++ b/chrome/browser/policy/configuration_policy_provider_win.h |
@@ -6,19 +6,7 @@ |
#define CHROME_BROWSER_POLICY_CONFIGURATION_POLICY_PROVIDER_WIN_H_ |
#pragma once |
-#include "base/object_watcher.h" |
-#include "base/ref_counted.h" |
-#include "base/scoped_ptr.h" |
-#include "base/waitable_event.h" |
-#include "base/weak_ptr.h" |
-#include "chrome/browser/policy/configuration_policy_store_interface.h" |
-#include "chrome/browser/policy/configuration_policy_provider.h" |
- |
-namespace base { |
-namespace win { |
-class RegKey; |
-} // namespace win |
-} // namespace base |
+#include "chrome/browser/policy/asynchronous_policy_provider.h" |
namespace policy { |
@@ -28,89 +16,14 @@ namespace policy { |
// 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 ConfigurationPolicyProviderWin |
- : public ConfigurationPolicyProvider, |
- public base::SupportsWeakPtr<ConfigurationPolicyProviderWin> { |
+class ConfigurationPolicyProviderWin : public AsynchronousPolicyProvider { |
public: |
- // Keeps watch on Windows Group Policy notification event to trigger a policy |
- // reload when Group Policy changes. This class is reference counted to |
- // facilitate timer-based reloads through the message loop. It is not safe to |
- // access GroupPolicyChangeWatcher concurrently from multiple threads. |
- class GroupPolicyChangeWatcher |
- : public base::ObjectWatcher::Delegate, |
- public MessageLoop::DestructionObserver, |
- public base::RefCountedThreadSafe<GroupPolicyChangeWatcher> { |
- public: |
- GroupPolicyChangeWatcher( |
- base::WeakPtr<ConfigurationPolicyProviderWin> provider, |
- int reload_interval_minutes); |
- virtual ~GroupPolicyChangeWatcher(); |
- |
- // Start watching. |
- void Start(); |
- |
- // Stop any pending watch activity in order to allow for timely shutdown. |
- void Stop(); |
- |
- private: |
- // Updates the watchers and schedules the reload task if appropriate. |
- void SetupWatches(); |
- |
- // Post a reload notification and update the watch machinery. |
- void Reload(); |
- |
- // Called for timer-based refresh from the message loop. |
- void ReloadFromTask(); |
- |
- // ObjectWatcher::Delegate implementation: |
- virtual void OnObjectSignaled(HANDLE object); |
- |
- // MessageLoop::DestructionObserver implementation: |
- virtual void WillDestroyCurrentMessageLoop(); |
- |
- base::WeakPtr<ConfigurationPolicyProviderWin> provider_; |
- base::WaitableEvent user_policy_changed_event_; |
- base::WaitableEvent machine_policy_changed_event_; |
- base::ObjectWatcher user_policy_watcher_; |
- base::ObjectWatcher machine_policy_watcher_; |
- bool user_policy_watcher_failed_; |
- bool machine_policy_watcher_failed_; |
- |
- // Period to schedule the reload task at. |
- int reload_interval_minutes_; |
- |
- // A reference to a delayed task for timer-based reloading. |
- CancelableTask* reload_task_; |
- }; |
- |
explicit ConfigurationPolicyProviderWin( |
const PolicyDefinitionList* policy_list); |
- virtual ~ConfigurationPolicyProviderWin(); |
- |
- // ConfigurationPolicyProvider method overrides: |
- virtual bool Provide(ConfigurationPolicyStoreInterface* store); |
- |
- protected: |
- // The sub key path for Chromium's Group Policy information in the |
- // Windows registry. |
- static const wchar_t kPolicyRegistrySubKey[]; |
+ virtual ~ConfigurationPolicyProviderWin() {} |
private: |
- scoped_refptr<GroupPolicyChangeWatcher> watcher_; |
- |
- // Methods to perform type-specific policy lookups in the registry. |
- // HKLM is checked first, then HKCU. |
- |
- // Reads a string registry value |name| at the specified |key| and puts the |
- // resulting string in |result|. |
- bool GetRegistryPolicyString(const string16& name, string16* result) const; |
- // Gets a list value contained under |key| one level below the policy root. |
- bool GetRegistryPolicyStringList(const string16& key, |
- ListValue* result) const; |
- bool GetRegistryPolicyBoolean(const string16& value_name, |
- bool* result) const; |
- bool GetRegistryPolicyInteger(const string16& value_name, |
- uint32* result) const; |
+ DISALLOW_COPY_AND_ASSIGN(ConfigurationPolicyProviderWin); |
}; |
} // namespace policy |