blob: 631456f6e0812e33a4410d3641fa649f93227e75 [file] [log] [blame]
[email protected]fdd679b2012-11-15 20:49:391// Copyright 2012 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.
4
5#ifndef CHROME_BROWSER_EXTENSIONS_STANDARD_MANAGEMENT_POLICY_PROVIDER_H_
6#define CHROME_BROWSER_EXTENSIONS_STANDARD_MANAGEMENT_POLICY_PROVIDER_H_
7
binjin8e3d0182014-12-04 16:44:288#include <string>
9
10#include "base/strings/string16.h"
[email protected]301116c62013-11-26 10:37:4511#include "extensions/browser/management_policy.h"
[email protected]fdd679b2012-11-15 20:49:3912
13namespace extensions {
14
[email protected]fdd679b2012-11-15 20:49:3915class Extension;
binjin1569c9b2014-09-05 13:33:1816class ExtensionManagement;
[email protected]fdd679b2012-11-15 20:49:3917
18// The standard management policy provider, which takes into account the
Alex Daniloa8ed6172020-09-15 12:03:0419// extension block/allowlists and admin block/allowlists.
[email protected]fdd679b2012-11-15 20:49:3920class StandardManagementPolicyProvider : public ManagementPolicy::Provider {
21 public:
binjin1569c9b2014-09-05 13:33:1822 explicit StandardManagementPolicyProvider(
23 const ExtensionManagement* settings);
[email protected]fdd679b2012-11-15 20:49:3924
dchengae36a4a2014-10-21 12:36:3625 ~StandardManagementPolicyProvider() override;
[email protected]fdd679b2012-11-15 20:49:3926
27 // ManagementPolicy::Provider implementation.
dchengae36a4a2014-10-21 12:36:3628 std::string GetDebugPolicyProviderName() const override;
29 bool UserMayLoad(const Extension* extension,
30 base::string16* error) const override;
Devlin Croninae9baf562018-11-15 22:10:0431 bool UserMayInstall(const Extension* extension,
32 base::string16* error) const override;
dchengae36a4a2014-10-21 12:36:3633 bool UserMayModifySettings(const Extension* extension,
34 base::string16* error) const override;
Ivan Sandrk4a55dc22018-05-17 18:14:4835 bool ExtensionMayModifySettings(const Extension* source_extension,
36 const Extension* extension,
37 base::string16* error) const override;
dchengae36a4a2014-10-21 12:36:3638 bool MustRemainEnabled(const Extension* extension,
39 base::string16* error) const override;
binjin8e3d0182014-12-04 16:44:2840 bool MustRemainDisabled(const Extension* extension,
Minh X. Nguyen45479012017-08-18 21:35:3641 disable_reason::DisableReason* reason,
binjin8e3d0182014-12-04 16:44:2842 base::string16* error) const override;
dchengae36a4a2014-10-21 12:36:3643 bool MustRemainInstalled(const Extension* extension,
mostynba15bee12014-10-04 00:40:3244 base::string16* error) const override;
Alexander Nohe2c5402882019-04-11 21:56:3345 bool ShouldForceUninstall(const Extension* extension,
46 base::string16* error) const override;
[email protected]fdd679b2012-11-15 20:49:3947
48 private:
binjin1569c9b2014-09-05 13:33:1849 const ExtensionManagement* settings_;
nrpeter2362e7e2017-05-10 17:21:2650 bool ReturnLoadError(const extensions::Extension* extension,
51 base::string16* error) const;
[email protected]fdd679b2012-11-15 20:49:3952};
53
54} // namespace extensions
55
56#endif // CHROME_BROWSER_EXTENSIONS_STANDARD_MANAGEMENT_POLICY_PROVIDER_H_