diff options
author | sergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-01-09 04:48:29 +0000 |
---|---|---|
committer | sergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-01-09 04:48:29 +0000 |
commit | 4c7d2cae0118b64f9e6f62e46a2d7212e9303b1d (patch) | |
tree | 901a88a579bbe2e07fe944601d8531573bee0845 /chrome/browser/extensions/api/messaging/native_messaging_policy_handler.h | |
parent | 93e8b2ebc4a826b3ba12a6d5065d3447cd446524 (diff) | |
download | chromium_src-4c7d2cae0118b64f9e6f62e46a2d7212e9303b1d.zip chromium_src-4c7d2cae0118b64f9e6f62e46a2d7212e9303b1d.tar.gz chromium_src-4c7d2cae0118b64f9e6f62e46a2d7212e9303b1d.tar.bz2 |
Add managed policies for Native Messaging
This adds two new policies that will allow to block all or some native
messaging hosts.
BUG=237882
Review URL: https://codereview.chromium.org/118253005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@243774 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/api/messaging/native_messaging_policy_handler.h')
-rw-r--r-- | chrome/browser/extensions/api/messaging/native_messaging_policy_handler.h | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/chrome/browser/extensions/api/messaging/native_messaging_policy_handler.h b/chrome/browser/extensions/api/messaging/native_messaging_policy_handler.h new file mode 100644 index 0000000..6cd3a8e --- /dev/null +++ b/chrome/browser/extensions/api/messaging/native_messaging_policy_handler.h @@ -0,0 +1,52 @@ +// Copyright 2014 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_EXTENSIONS_API_MESSAGING_NATIVE_MESSAGING_POLICY_HANDLER_H_ +#define CHROME_BROWSER_EXTENSIONS_API_MESSAGING_NATIVE_MESSAGING_POLICY_HANDLER_H_ + +#include "base/memory/scoped_ptr.h" +#include "base/values.h" +#include "components/policy/core/browser/configuration_policy_handler.h" + +namespace policy { +class PolicyMap; +class PolicyErrorMap; +} // namespace policy + +namespace extensions { + +// Implements additional checks for policies that are lists of Native Messaging +// Hosts. +class NativeMessagingHostListPolicyHandler + : public policy::TypeCheckingPolicyHandler { + public: + NativeMessagingHostListPolicyHandler(const char* policy_name, + const char* pref_path, + bool allow_wildcards); + virtual ~NativeMessagingHostListPolicyHandler(); + + // ConfigurationPolicyHandler methods: + virtual bool CheckPolicySettings(const policy::PolicyMap& policies, + policy::PolicyErrorMap* errors) OVERRIDE; + virtual void ApplyPolicySettings(const policy::PolicyMap& policies, + PrefValueMap* prefs) OVERRIDE; + + protected: + const char* pref_path() const; + + // Runs sanity checks on the policy value and returns it in |extension_ids|. + bool CheckAndGetList(const policy::PolicyMap& policies, + policy::PolicyErrorMap* errors, + scoped_ptr<base::ListValue>* extension_ids); + + private: + const char* pref_path_; + bool allow_wildcards_; + + DISALLOW_COPY_AND_ASSIGN(NativeMessagingHostListPolicyHandler); +}; + +} // namespace extensions + +#endif // CHROME_BROWSER_EXTENSIONS_API_MESSAGING_NATIVE_MESSAGING_POLICY_HANDLER_H_ |