// Copyright (c) 2012 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_ADMIN_POLICY_H_ #define CHROME_BROWSER_EXTENSIONS_ADMIN_POLICY_H_ #include "base/values.h" #include "chrome/common/extensions/extension.h" namespace extensions { class Extension; } // Functions for providing information about the extension whitelist, // blacklist, and forcelist imposed by admin policy. namespace extensions { namespace admin_policy { // Checks if extensions are blacklisted by default, by policy. When true, this // means that even extensions without an ID should be blacklisted (e.g. // from the command line, or when loaded as an unpacked extension). bool BlacklistedByDefault(const base::ListValue* blacklist); // Returns true if the extension is allowed by the admin policy. bool UserMayLoad(const base::ListValue* blacklist, const base::ListValue* whitelist, const base::DictionaryValue* forcelist, const base::ListValue* allowed_types, const Extension* extension, string16* error); // Returns false if the extension is required to remain running. In practice // this enforces the admin policy forcelist. bool UserMayModifySettings(const Extension* extension, string16* error); // Returns false if the extension is required to remain running. In practice // this enforces the admin policy forcelist. bool MustRemainEnabled(const Extension* extension, string16* error); } // namespace } // namespace #endif // CHROME_BROWSER_EXTENSIONS_ADMIN_POLICY_H_