| Index: chrome/browser/extensions/api/permissions/permissions_api.cc
|
| diff --git a/chrome/browser/extensions/api/permissions/permissions_api.cc b/chrome/browser/extensions/api/permissions/permissions_api.cc
|
| index 0f23d4c5209464b42d62675d67aca68561f4c511..2b0b6a0eb12b719d368da52875b60712bb4c2c3d 100644
|
| --- a/chrome/browser/extensions/api/permissions/permissions_api.cc
|
| +++ b/chrome/browser/extensions/api/permissions/permissions_api.cc
|
| @@ -7,6 +7,7 @@
|
| #include "base/memory/scoped_ptr.h"
|
| #include "chrome/browser/chrome_notification_types.h"
|
| #include "chrome/browser/extensions/api/permissions/permissions_api_helpers.h"
|
| +#include "chrome/browser/extensions/extension_management.h"
|
| #include "chrome/browser/extensions/permissions_updater.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| #include "chrome/common/extensions/api/permissions.h"
|
| @@ -30,6 +31,8 @@ namespace helpers = permissions_api_helpers;
|
|
|
| namespace {
|
|
|
| +const char kBlockedByEnterprisePolicy[] =
|
| + "Permissions are blocked by enterprise policy.";
|
| const char kCantRemoveRequiredPermissionsError[] =
|
| "You cannot remove required permissions.";
|
| const char kNotInOptionalPermissionsError[] =
|
| @@ -180,6 +183,15 @@ bool PermissionsRequestFunction::RunAsync() {
|
| return false;
|
| }
|
|
|
| + // Automatically declines api permissions requests, which are blocked by
|
| + // enterprise policy.
|
| + if (!ExtensionManagementFactory::GetForBrowserContext(GetProfile())
|
| + ->IsPermissionSetAllowed(extension()->id(),
|
| + requested_permissions_)) {
|
| + error_ = kBlockedByEnterprisePolicy;
|
| + return false;
|
| + }
|
| +
|
| // We don't need to prompt the user if the requested permissions are a subset
|
| // of the granted permissions set.
|
| scoped_refptr<const PermissionSet> granted =
|
|
|