| Index: chrome/browser/extensions/management_policy.h
|
| diff --git a/chrome/browser/extensions/management_policy.h b/chrome/browser/extensions/management_policy.h
|
| deleted file mode 100644
|
| index 1aafc41ebd9ee6c7e40550722ef5644cd0e393ac..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/extensions/management_policy.h
|
| +++ /dev/null
|
| @@ -1,141 +0,0 @@
|
| -// 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_MANAGEMENT_POLICY_H_
|
| -#define CHROME_BROWSER_EXTENSIONS_MANAGEMENT_POLICY_H_
|
| -
|
| -#include <set>
|
| -#include <string>
|
| -
|
| -#include "base/basictypes.h"
|
| -#include "extensions/common/extension.h"
|
| -
|
| -namespace extensions {
|
| -
|
| -// This class registers providers that want to prohibit certain actions from
|
| -// being applied to extensions. It must be called, via the ExtensionService,
|
| -// before allowing a user or a user-level mechanism to perform the respective
|
| -// action. (That is, installing or otherwise modifying an extension in order
|
| -// to conform to enterprise administrator policy must be exempted from these
|
| -// checks.)
|
| -//
|
| -// This "policy" and its providers should not be confused with administrator
|
| -// policy, although admin policy is one of the sources ("Providers") of
|
| -// restrictions registered with and exposed by the ManagementPolicy.
|
| -class ManagementPolicy {
|
| - public:
|
| - // Each mechanism that wishes to limit users' ability to control extensions,
|
| - // whether one individual extension or the whole system, should implement
|
| - // the methods of this Provider interface that it needs. In each case, if the
|
| - // provider does not need to control a certain action, that method does not
|
| - // need to be implemented.
|
| - //
|
| - // It is not guaranteed that a particular Provider's methods will be called
|
| - // each time a user tries to perform one of the controlled actions (the list
|
| - // of providers is short-circuited as soon as a decision is possible), so
|
| - // implementations of these methods must have no side effects.
|
| - //
|
| - // For all of the Provider methods below, if |error| is not NULL and the
|
| - // method imposes a restriction on the desired action, |error| may be set
|
| - // to an applicable error message, but this is not required.
|
| - class Provider {
|
| - public:
|
| - Provider() {}
|
| - virtual ~Provider() {}
|
| -
|
| - // A human-readable name for this provider, for use in debug messages.
|
| - // Implementers should return an empty string in non-debug builds, to save
|
| - // executable size.
|
| - virtual std::string GetDebugPolicyProviderName() const = 0;
|
| -
|
| - // Providers should return false if a user may not install the |extension|,
|
| - // or load or run it if it has already been installed.
|
| - virtual bool UserMayLoad(const Extension* extension,
|
| - string16* error) const;
|
| -
|
| - // Providers should return false if a user may not enable, disable, or
|
| - // uninstall the |extension|, or change its usage options (incognito
|
| - // permission, file access, etc.).
|
| - virtual bool UserMayModifySettings(const Extension* extension,
|
| - string16* error) const;
|
| -
|
| - // Providers should return true if the |extension| must always remain
|
| - // enabled. This is distinct from UserMayModifySettings() in that the latter
|
| - // also prohibits enabling the extension if it is currently disabled.
|
| - // Providers implementing this method should also implement the others
|
| - // above, if they wish to completely lock in an extension.
|
| - virtual bool MustRemainEnabled(const Extension* extension,
|
| - string16* error) const;
|
| -
|
| - // Similar to MustRemainEnabled, but for whether an extension must remain
|
| - // disabled, and returns an error and/or reason if the caller needs it.
|
| - virtual bool MustRemainDisabled(const Extension* extension,
|
| - Extension::DisableReason* reason,
|
| - string16* error) const;
|
| -
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(Provider);
|
| - };
|
| -
|
| - ManagementPolicy();
|
| - ~ManagementPolicy();
|
| -
|
| - // Registers or unregisters a provider, causing it to be added to or removed
|
| - // from the list of providers queried. Ownership of the provider remains with
|
| - // the caller. Providers do not need to be unregistered on shutdown.
|
| - void RegisterProvider(Provider* provider);
|
| - void UnregisterProvider(Provider* provider);
|
| -
|
| - // Returns true if the user is permitted to install, load, and run the given
|
| - // extension. If not, |error| may be set to an appropriate message.
|
| - bool UserMayLoad(const Extension* extension, string16* error) const;
|
| -
|
| - // Returns true if the user is permitted to enable, disable, or uninstall the
|
| - // given extension, or change the extension's usage options (incognito mode,
|
| - // file access, etc.). If not, |error| may be set to an appropriate message.
|
| - bool UserMayModifySettings(const Extension* extension,
|
| - string16* error) const;
|
| -
|
| - // Returns true if the extension must remain enabled at all times (e.g. a
|
| - // compoment extension). In that case, |error| may be set to an appropriate
|
| - // message.
|
| - bool MustRemainEnabled(const Extension* extension,
|
| - string16* error) const;
|
| -
|
| - // Returns true immediately if any registered provider's MustRemainDisabled
|
| - // function returns true.
|
| - bool MustRemainDisabled(const Extension* extension,
|
| - Extension::DisableReason* reason,
|
| - string16* error) const;
|
| -
|
| - // For use in testing.
|
| - void UnregisterAllProviders();
|
| - int GetNumProviders() const;
|
| -
|
| - private:
|
| - // This is a pointer to a function in the Provider interface, used in
|
| - // ApplyToProviderList.
|
| - typedef bool (Provider::*ProviderFunction)(const Extension*, string16*) const;
|
| -
|
| - typedef std::set<Provider*> ProviderList;
|
| -
|
| - // This is a helper to apply a method in the Provider interface to each of
|
| - // the Provider objects in |providers_|. The return value of this function
|
| - // will be |normal_result|, unless any of the Provider calls to |function|
|
| - // return !normal_result, in which case this function will then early-return
|
| - // !normal_result.
|
| - bool ApplyToProviderList(ProviderFunction function,
|
| - const char* debug_operation_name,
|
| - bool normal_result,
|
| - const Extension* extension,
|
| - string16* error) const;
|
| -
|
| - ProviderList providers_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(ManagementPolicy);
|
| -};
|
| -
|
| -} // namespace extensions
|
| -
|
| -#endif // CHROME_BROWSER_EXTENSIONS_MANAGEMENT_POLICY_H_
|
|
|