1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CHROME_BROWSER_EXTENSIONS_API_MESSAGING_NATIVE_MESSAGING_POLICY_HANDLER_H_
6 #define CHROME_BROWSER_EXTENSIONS_API_MESSAGING_NATIVE_MESSAGING_POLICY_HANDLER_H_
8 #include "base/memory/scoped_ptr.h"
9 #include "base/values.h"
10 #include "components/policy/core/browser/configuration_policy_handler.h"
17 namespace extensions
{
19 // Implements additional checks for policies that are lists of Native Messaging
21 class NativeMessagingHostListPolicyHandler
22 : public policy::TypeCheckingPolicyHandler
{
24 NativeMessagingHostListPolicyHandler(const char* policy_name
,
25 const char* pref_path
,
26 bool allow_wildcards
);
27 virtual ~NativeMessagingHostListPolicyHandler();
29 // ConfigurationPolicyHandler methods:
30 virtual bool CheckPolicySettings(const policy::PolicyMap
& policies
,
31 policy::PolicyErrorMap
* errors
) OVERRIDE
;
32 virtual void ApplyPolicySettings(const policy::PolicyMap
& policies
,
33 PrefValueMap
* prefs
) OVERRIDE
;
36 const char* pref_path() const;
38 // Runs sanity checks on the policy value and returns it in |extension_ids|.
39 bool CheckAndGetList(const policy::PolicyMap
& policies
,
40 policy::PolicyErrorMap
* errors
,
41 scoped_ptr
<base::ListValue
>* extension_ids
);
44 const char* pref_path_
;
45 bool allow_wildcards_
;
47 DISALLOW_COPY_AND_ASSIGN(NativeMessagingHostListPolicyHandler
);
50 } // namespace extensions
52 #endif // CHROME_BROWSER_EXTENSIONS_API_MESSAGING_NATIVE_MESSAGING_POLICY_HANDLER_H_