Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(620)

Side by Side Diff: chrome/browser/extensions/permissions_based_management_policy_provider.cc

Issue 595363002: Add policy controlled permission block list for extensions (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@ext-fix
Patch Set: more minor format fix Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
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.
4
5 #include "chrome/browser/extensions/permissions_based_management_policy_provider .h"
6
7 #include "base/strings/string16.h"
8 #include "base/strings/utf_string_conversions.h"
9 #include "chrome/browser/extensions/extension_management.h"
10 #include "extensions/common/extension.h"
11 #include "extensions/common/manifest_handlers/permissions_parser.h"
12 #include "extensions/common/permissions/permission_set.h"
13 #include "grit/extensions_strings.h"
14 #include "ui/base/l10n/l10n_util.h"
15
16 namespace extensions {
17
18 PermissionsBasedManagementPolicyProvider::
19 PermissionsBasedManagementPolicyProvider(ExtensionManagement* settings)
20 : settings_(settings) {
21 }
22
23 PermissionsBasedManagementPolicyProvider::
24 ~PermissionsBasedManagementPolicyProvider() {
25 }
26
27 std::string
28 PermissionsBasedManagementPolicyProvider::GetDebugPolicyProviderName() const {
29 #ifdef NDEBUG
30 NOTREACHED();
31 return std::string();
32 #else
33 return "Controlled by enterprise policy, restricting extension permissions.";
34 #endif
35 }
36
37 bool PermissionsBasedManagementPolicyProvider::UserMayLoad(
38 const Extension* extension,
39 base::string16* error) const {
40 // Component extensions are always allowed.
41 if (Manifest::IsComponentLocation(extension->location()))
42 return true;
43
44 scoped_refptr<const PermissionSet> required_permissions =
45 PermissionsParser::GetRequiredPermissions(extension);
46
47 if (!settings_->IsPermissionSetAllowed(extension->id(),
48 required_permissions)) {
49 if (error) {
50 *error =
51 l10n_util::GetStringFUTF16(IDS_EXTENSION_CANT_INSTALL_POLICY_BLOCKED,
52 base::UTF8ToUTF16(extension->name()),
53 base::UTF8ToUTF16(extension->id()));
54 }
55 return false;
Joao da Silva 2014/10/15 14:39:26 What happens if a force-installed extension uses a
binjin 2014/10/16 18:13:58 It shouldn't be installed. Force installed extensi
56 }
57
58 return true;
59 }
60
61 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698