Chromium Code Reviews| Index: remoting/host/policy_watcher.h |
| diff --git a/remoting/host/policy_watcher.h b/remoting/host/policy_watcher.h |
| index e3f54f6916bfd80c6a5dbdfc74722198e76472a8..facf7f31711e8f58ef0c52d5d6b10b55fa679c89 100644 |
| --- a/remoting/host/policy_watcher.h |
| +++ b/remoting/host/policy_watcher.h |
| @@ -20,16 +20,13 @@ class SingleThreadTaskRunner; |
| namespace policy { |
| class AsyncPolicyLoader; |
| -class ConfigurationPolicyProvider; |
| class Schema; |
| -class SchemaRegistry; |
| } // namespace policy |
| namespace remoting { |
| // Watches for changes to the managed remote access host policies. |
| -class PolicyWatcher : public policy::PolicyService::Observer, |
| - public base::NonThreadSafe { |
| +class PolicyWatcher : public base::NonThreadSafe { |
| public: |
| // Called first with all policies, and subsequently with any changed policies. |
| typedef base::Callback<void(std::unique_ptr<base::DictionaryValue>)> |
| @@ -38,7 +35,7 @@ class PolicyWatcher : public policy::PolicyService::Observer, |
| // Called after detecting malformed policies. |
| typedef base::Callback<void()> PolicyErrorCallback; |
| - ~PolicyWatcher() override; |
| + virtual ~PolicyWatcher() = 0; |
|
Sergey Ulanov
2017/02/23 19:18:55
s/=0/{}/
I didn't know destructor can be pure virt
rkjnsn
2017/02/23 22:28:10
Pure virtual destructors are interesting beasts. U
|
| // This guarantees that the |policy_updated_callback| is called at least once |
| // with the current policies. After that, |policy_updated_callback| will be |
| @@ -57,7 +54,7 @@ class PolicyWatcher : public policy::PolicyService::Observer, |
| // found. |
| virtual void StartWatching( |
| const PolicyUpdatedCallback& policy_updated_callback, |
| - const PolicyErrorCallback& policy_error_callback); |
| + const PolicyErrorCallback& policy_error_callback) = 0; |
| // Specify a |policy_service| to borrow (on Chrome OS, from the browser |
| // process) or specify nullptr to internally construct and use a new |
| @@ -78,35 +75,12 @@ class PolicyWatcher : public policy::PolicyService::Observer, |
| policy::PolicyService* policy_service, |
| const scoped_refptr<base::SingleThreadTaskRunner>& file_task_runner); |
| + protected: |
| + PolicyWatcher(); |
|
Sergey Ulanov
2017/02/23 19:18:55
Usually for interfaces the constructor should have
rkjnsn
2017/02/23 22:28:10
Okay, I'll move it inline.
|
| + |
| private: |
| friend class PolicyWatcherTest; |
| - // Gets Chromoting schema stored inside |owned_schema_registry_|. |
| - const policy::Schema* GetPolicySchema() const; |
| - |
| - // Simplifying wrapper around Schema::Normalize. |
| - // - Returns false if |dict| is invalid (i.e. contains mistyped policy |
| - // values). |
| - // - Returns true if |dict| was valid or got normalized. |
| - bool NormalizePolicies(base::DictionaryValue* dict); |
| - |
| - // Stores |new_policies| into |old_policies_|. Returns dictionary with items |
| - // from |new_policies| that are different from the old |old_policies_|. |
| - std::unique_ptr<base::DictionaryValue> StoreNewAndReturnChangedPolicies( |
| - std::unique_ptr<base::DictionaryValue> new_policies); |
| - |
| - // Signals policy error to the registered |PolicyErrorCallback|. |
| - void SignalPolicyError(); |
| - |
| - // |policy_service_task_runner| is the task runner where it is safe |
| - // to call |policy_service_| methods and where we expect to get callbacks |
| - // from |policy_service_|. |
| - PolicyWatcher(policy::PolicyService* policy_service, |
| - std::unique_ptr<policy::PolicyService> owned_policy_service, |
| - std::unique_ptr<policy::ConfigurationPolicyProvider> |
| - owned_policy_provider, |
| - std::unique_ptr<policy::SchemaRegistry> owned_schema_registry); |
| - |
| // Creates PolicyWatcher that wraps the owned |async_policy_loader| with an |
| // appropriate PolicySchema. |
| // |
| @@ -115,27 +89,11 @@ class PolicyWatcher : public policy::PolicyService::Observer, |
| static std::unique_ptr<PolicyWatcher> CreateFromPolicyLoader( |
| std::unique_ptr<policy::AsyncPolicyLoader> async_policy_loader); |
| - // PolicyService::Observer interface. |
| - void OnPolicyUpdated(const policy::PolicyNamespace& ns, |
| - const policy::PolicyMap& previous, |
| - const policy::PolicyMap& current) override; |
| - void OnPolicyServiceInitialized(policy::PolicyDomain domain) override; |
| - |
| - PolicyUpdatedCallback policy_updated_callback_; |
| - PolicyErrorCallback policy_error_callback_; |
| - |
| - std::unique_ptr<base::DictionaryValue> old_policies_; |
| - std::unique_ptr<base::DictionaryValue> default_values_; |
| - |
| - policy::PolicyService* policy_service_; |
| + // Gets Chromoting schema stored inside |owned_schema_registry_|. |
| + virtual const policy::Schema* GetPolicySchema() const = 0; |
| - // Order of fields below is important to ensure destruction takes object |
| - // dependencies into account: |
| - // - |owned_policy_service_| uses |owned_policy_provider_| |
| - // - |owned_policy_provider_| uses |owned_schema_registry_| |
| - std::unique_ptr<policy::SchemaRegistry> owned_schema_registry_; |
| - std::unique_ptr<policy::ConfigurationPolicyProvider> owned_policy_provider_; |
| - std::unique_ptr<policy::PolicyService> owned_policy_service_; |
| + // Gets default policy values. |
| + virtual const base::DictionaryValue* GetDefaultValues() const = 0; |
|
Sergey Ulanov
2017/02/23 19:18:55
I don't think these private methods need to be her
|
| DISALLOW_COPY_AND_ASSIGN(PolicyWatcher); |
| }; |